Prévia do material em texto
CCE0067 - LÓGICA DE
PROGRAMAÇÃO
Pablo Jabor
Pablo.jabor@estacio.br
Conceitos sobre organização de
computadores
• Componentes funcionais básicos e as formas
de representação/armazenamento de
informações, além do funcionamento básico
dos sistemas de computação.
Funcionamento básico dos sistemas
de computação
• Os computadores executam quatro funções
distintas sendo elas:
• (a) Entrada;
• (b) Processamento;
• (c) Armazenamento/recuperação de dados;
• (d) Saída.
Modelo de Von Neumann (1945)
Para que um computador trabalhe é
necessário:
– Inserção de informações (entrada).
– Seguindo as instruções fornecidas pelos programas, o
computador processa os dados oriundos da entrada
(processamento)
– Armazenando-os logo em seguida para posterior
utilização.
– As informações produzidas ficam disponíveis para
utilização (saída) e a menos que se deseje as informar
e produzir novamente, elas devem ser armazenadas
em um dispositivo de armazenamento estável.
Bits, bytes & Cia.
• Todas as informações manipuladas pelos
computadores devem ser entendidas pela
máquina.
• Computador = dispositivo eletrônico
• Como representar todos os símbolos da
linguagem humana??
– Seriam necessárias mais de 100 diferentes
voltagens (corrente).
Bits, bytes & Cia.
• Computador = dispositivo eletrônico BINÁRIO
• Trabalham apenas com dois valores:
(Sim/Não, Verdadeiro/ Falso,
Aberto/Fechado,...), tanto na construção de
componentes quanto como base para a
escrita de programas (programação).
Bits, bytes & Cia.
• Convencionou-se chamar os dois níveis
elétricos de 0 e 1 sendo que cada algarismo da
representação numérica binária é
denominado de bit, correspondente a
abreviatura de binary digit (dígito binário).
Bits, bytes & Cia.
• 1 bit isolado pode-se representar muito pouca
coisa (apenas 2 valores);
– A menor informação inteligível aos seres humanos
é o caractere;
• Byte - agrupamentos de bits para representar
caracteres;
• byte é uma seqüência ordenada de 8 bits;
Bits, bytes & Cia.
• Qualquer seqüência binária pode ser
convertida para um número na base decimal,
sendo utilizado este valor para encontrar o
caractere correspondente, utilizando uma
tabela de caracteres.
• As memórias geralmente armazenam e
recuperam informações byte a byte, ou ainda
em múltiplos de bytes.
Bits, bytes & Cia.
• Os dispositivos de memória atuais utilizam
agrupamentos de bytes para representar sua
capacidade de armazenamento.
• Uma vez que tais agrupamentos são oriundos
de uma base binária o fator de multiplicação
utilizado é 1024 (210).
Bits, bytes & Cia.
Agrupamento Símbolo Representa
Byte B 8 bits
Kilo K 1024 Bbytes
Mega M 1024 KBytes
Giga G 1024 MBytes
Tera T 1024 GBytes
Peta P 1024 TBytes
Registradores e memória
• Dispositivos que armazenam valores temporários
principalmente dentro dos processadores.
• Como a CPU não consegue manter todos os
valores manipulados por um programa apenas
em registradores, necessita de uma memória
para o armazenamento das informações.
• Memória = conjunto de células com o mesmo
número de bits, cada célula é identificada por
um número único que é seu endereço.
CPU
• O processador (CPU) é o componente vital de
um sistema de computação, responsável pela
realização das operações de processamento e
de controle durante a execução de um
programa.
• Um programa, para ser efetivamente
executado por um processador, deve ser
constituído de uma série de instruções (em
linguagem de máquina).
CPU - Função Processamento
• Processar o dado é executar com ele uma ação
que produza algum tipo de resultado.
• ATIVIDADE-FIM do sistema computacional:
– Ele existe para processar dados.
CPU - Função Processamento
– Entre as tarefas comuns a esta função podem ser
citadas as que realizam:
• Operações aritméticas: somar, subtrair, multiplicar,
dividir, ...;
• Operações lógicas: and, or, not,... ;
• Movimentação de dados: memória-CPU, CPU-
memória, registrador-registrador, ...;
• Desvios: alteração da seqüência de execução das
instruções;
• Operações de entrada ou saída;
CPU - Função de Controle
• A área de controle de uma CPU é a parte funcional
que realiza as atividades de:
– Busca da instrução que será executada, armazenando-a
em um registrador especialmente projetado para esta
atividade (RI);
– Interpretação das ações a serem desencadeadas com a
execução da instrução (se é uma soma ou subtração,
por exemplo, como realizá-las);
– Geração de sinais de controle apropriados para
realização das atividades requeridas para a execução da
instrução identificada.
Memória
• O processador apenas recebe dados e os
processa segundo alguma pré-programação,
logo após devolvendo-os, não importando de
onde vem e para onde vão.
• Os programas a serem executados e os dados
a serem processados (inclusive os que já o
foram) ficam na memória.
tipos de memória:
• ROM (Read-Only Memory): Só permitem a
leitura de dados e são lentas; em
compensação não perdem seu conteúdo
quando desligadas;
• RAM (Random Access Memory): São rápidas,
permitem leitura e escrita, porém, seu
conteúdo é perdido quando são desligadas
Unidades de discos e discos
removíveis
• Como a memória RAM se apaga quando
desligamos o micro, devemos ter outros meios
de armazenar dados e programas, de forma
que eles possam ser utilizados no futuro
Unidades de discos e discos
removíveis
• Dados e programas devem estar armazenados
em memória secundária, geralmente discos
magnéticos (disquetes e H.D.) ou ainda meios
óticos, disponíveis em CD ou DVD. Somente
assim, com as informações armazenadas em
um meio não-volátil poderão ser recuperadas.
Memórias Flash – Pendrives e Cartões
de Memória
• Flash: as memórias Flash são consideradas um
tipo especial de memoria ROM.
– EEPROMs ("Electrically Erasable Programmable
Read-Only Memory"): O conteúdo pode ser apagado
aplicando-se uma voltagem específica aos pinos de
programação. Portanto, pode ter seu conteúdo
modificado eletricamente.
• São duráveis e podem guardar um volume
elevado de dados.
http://www.pendriveprice.in/chili-pepper-shaped-usb-pen-drive-flash-memory/chili-pepper-pen-drive/
Entrada e Saída
• Para que se possa desfrutar da rapidez e
flexibilidade de um computador, não basta saber
que ele pode armazenar na memória os
programas e dados que desejamos processar e
nem que ele pode executar mais de um milhão
de instruções por segundo.
• Como inserir no sistema os dados e programas?
• Como obter os resultados dos processamentos?
Entrada e Saída
• Para realizar estas tarefas é necessário um
meio qualquer que faça esta comunicação
homem-máquina.
• também é preciso comunicação no sentido
contrário (máquina-homem).
Entrada e Saída
• Os dispositivos responsáveis pela entrada/saída
são também denominados de periféricos.
Lógica e Lógica de Programação
• Lógica: Ciência que estuda as formas do pensamento
• Sempre que pensamos a lógica nos acompanha
– Um bebê sabe que precisa chorar para receber atenção
– Um casal com 3 filhos notou que um vaso estava quebrado, enquanto
2 das crianças estavam na escola. Quem é o culpado? O
pensamento (e a lógica) pode ser expresso através
da palavra falada ou da palavra escrita
• Um mesmo pensamento pode ser expresso em
inúmeros idiomas, tanto oralmente quanto por
escrito
• Vamos estudar uma forma única de representação
Algoritmo
• É o pensamento descrito como uma sequência de
passos que visam atingir um objetivo
• Algoritmos no dia-a-dia: Receita de bolo, orientação
para se chegar em algum endereço
• Qual sua importância na programação?
– Representar o raciocínio, independentemente de detalhes computacionais,
que podem ser acrescentados mais tarde
– Focalizar primeiro na resolução algorítmica do problema, possibilitando depois
codificá-la em qualquerlinguagem
Exemplos
• Trocar uma lâmpada
– Sequência
Algoritmo 1.1:
– pegar uma escada;
– posicionar a escada embaixo da lâmpada;
– buscar uma lâmpada nova;
– subir na escada;
– retirar lâmpada velha;
– colocar lâmpada nova.
Exemplos
• Trocar uma lâmpada SE estiver queimada
– Seleção (Decisão)
Algoritmo 1.2:
– pegar uma escada;
– posicionar a escada embaixo da lâmpada;
– buscar uma lâmpada nova;
– acionar o interruptor;
– se a lâmpada não acender, então
• subir na escada;
• retirar lâmpada queimada;
• colocar lâmpada nova.
• Trocar uma lâmpada SE estiver queimada (v. 2)
– Seleção (Decisão)
Algoritmo 1.3: Evita buscar a escada e lâmpada
– acionar o interruptor;
– se a lâmpada não acender, então
• pegar uma escada;
• posicionar a escada embaixo da lâmpada;
• buscar uma lâmpada nova;
• subir na escada;
• retirar lâmpada queimada;
• colocar lâmpada nova.
• Trocar uma lâmpada SE estiver queimada (v. 3)
– Seleção (Decisão)
Algoritmo 1.4: Re-teste depois da troca
acionar o interruptor;
se a lâmpada não acender, então
pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar lâmpada queimada;
colocar lâmpada nova;
acionar o interruptor;
se a lâmpada não acender, então
retirar lâmpada queimada;
colocar lâmpada nova;
se a lâmpada não acender, então
. . .
• Trocar uma lâmpada SE estiver queimada (v. 4)
– Repetição
Algoritmo 1.5: Re-teste depois da troca (por repetição)
acionar o interruptor;
se a lâmpada não acender, então
pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar lâmpada queimada;
colocar lâmpada nova;
acionar o interruptor;
enquanto a lâmpada não acender, faça
retirar lâmpada queimada;
colocar lâmpada nova;
acionar o interruptor;
• Trocar 10 lâmpadas SE estiverem queimadas
– Repetição
Algoritmo 1.6: Escrever 10 vezes
acionar o interruptor do primeiro soquete;
se a lâmpada não acender, então
pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar lâmpada queimada;
colocar lâmpada nova;
acionar o interruptor;
enquanto a lâmpada não acender, faça
retirar lâmpada queimada;
colocar lâmpada nova;
acionar o interruptor;
acionar o interruptor do segundo soquete;
. . .
• Trocar 10 lâmpadas SE estiverem queimadas
(v. 2)
– Repetição
Algoritmo 1.7: Contagem de trocas
ir até o interruptor do primeiro soquete;
enquanto a quantidade de soquetes testados for menor que 10, faça
acionar o interruptor;
se a lâmpada não acender, então
pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar lâmpada queimada;
colocar lâmpada nova;
acionar o interruptor;
enquanto a lâmpada não acender, faça
retirar lâmpada queimada;
colocar lâmpada nova;
acionar o interruptor;
ir até o interruptor do próximo soquete;
Formas de Representação
• Algoritmo 1.7 em Fluxograma
início
ir para o primeiro soquete
soquetes
restantes < 10
acionar o interruptor
pegar uma escada
posicionar escada
buscar lâmpada nova
acionar o interruptor
não
acendeu?
subir na escada
retirar a lâmpada queimada
colocar lâmpada nova
acionar o interruptor
não
acendeu?
retirar a lâmpada queimada
colocar lâmpada nova
ir ao próximo soquete
fim
F
F
F
V
V
V
Formas de Representação
• Algoritmo 1.7 em Chapin
ir para o primeiro soquete
soquetes testados < 10
acionar o interruptor
pegar uma escada
colocar a escada embaixo do soquete
buscar lâmpada nova
acionar o interruptor
subir na escada
retirar lâmpada queimada
colocar lâmpada nova
lâmpada não acendeu
retirar lâmpada queimada
colocar lâmpada nova
ir para o próximo soquete
lâmpada não acendeu
Formas de Representação
• Gráficas (Fluxograma e Chapin)
– Características
• Maior clareza no fluxo de execução
• Linguagem visual
• Requer conhecimento de convenções gráficas
• Textuais (Português Estruturado)
– Apresenta mais vantagens, desde que se tomem alguns cuidados:
• Riqueza gramatical de nossa língua pode levar a
ambiguidades
• A frase “O pregador foi grampeado durante o conserto” tem
8 sentidos diferentes quando pronunciada
• Para resolver, utilizaremos um conjunto restrito de regras,
conhecido como Português Estruturado
Tipos Primitivos
– São os tipos básicos de informação dos algoritmos
• Inteiro: informação pertencente ao conjunto dos números inteiros
relativos (positiva ou negativa)
– Ele tem 15 irmãos
• Real: informação pertencente ao conjunto dos números reais
– Meu saldo bancário é de $ 215,20
• Caracter: informação alfanumérica (caracteres alfabéticos, numéricos e
especiais)
– Constava na prova: “Use somente caneta!”
• Lógico: informação biestável (admite apenas 2 valores)
– A porta pode estar aberta ou fechada
Tipos Primitivos
• Determine qual é o tipo de informação presente nas
sentenças
– A placa “Pare!” tinha 2 furos de bala
– Josefina subiu 5 degraus para pegar uma “maçã” boa
– Alberta levou 3,5 horas para chegar ao hospital
– Astrogilda pintou em sua camisa: “Preserve o meio ambiente”, e ficou
devendo R$ 100,59 ao vendedor de tintas
Constantes
– São valores que não sofrem nenhuma variação no decorrer do tempo
– Exemplos:
• o valor de PI
• a velocidade da luz
• 5
• “Não fume”
Variáveis
• São valores que podem sofrer alteração no decorrer do tempo
• Exemplos
– Cotação do dólar
– Peso de uma pessoa
– Preço da gasolina
Variáveis
• São como gavetas que podem receber diversos tipos de objetos
– Identificadores: São os nomes escolhidos para as informações variáveis
• Deve iniciar por caracter alfabético
• Pode ser seguido por mais caracteres alfabéticos ou numéricos
• Não devem ser usados caracteres especiais
– Declaração: processo de reservar e etiquetar gavetas
Identificador
letra
letra
dígito
identificador
Identificadore válidos: Alpha, X, BJ153, K7, ABC
Identificadores inválidos: 5X, E(13), A:B, X-Y, P&AA
Declaração de Variáveis
tipo identificador
Declaração de
variáveis : ;
,
tipo inteiro
real
caracter
lógico
Exemplos
inteiro: X;
caracter: Nome;
real: Peso, Dolar;
lógico: Resposta;
Exercício
• Supondo que as variáveis NB, NA, NMat e SX
sejam utilizadas para armazenar a nota do(a)
aluno(a), o nome do(a) aluno(a), o número de
matrícula e o sexo, declare-as corretamente,
associando o tipo primitivo adequado ao dado
que será armazenado
Exercício
1. Supondo que as variáveis NB, NA, NMat e SX
sejam utilizadas para armazenar a nota do(a)
aluno(a), o nome do(a) aluno(a), o número de
matrícula e o sexo, declare-as corretamente,
associando o tipo primitivo adequado ao dado
que será armazenado
real: NB;
caracter: NA;
inteiro: Nmat;
lógico: SX;
Expressões
Operador Função Exemplos
+ Adição 2 + 3, X + Y
- Subtração 4 - 2, N – M
* Multiplicação 3 * 4, A * B
/ Divisão 10 / 2, C / D
pot(x,y) Potenciação (x elevado a y) pot(2, 3)
rad(x) Raiz quadrada (de x) rad(9)
Mod Resto da divisão 9 mod 4 resulta 1
Div Quociente da divisão inteira 9 div 4 resulta 2
Expressões Aritméticas
Operadores aritméticos: utilizados para a realização de cálculos
matemáticos
Expressões
Expressões Lógicas
Operadores relacionais: utilizados para a estabelecer relação de
comparação entre valores
Operador Função Exemplos
= Igual a 3 = 3, X = Y
> Maior que 5 > 4, X > Y
< Menor que 3 < 6, X < Y
>= Maior ou igual a 5 >= 3, X >= Y
<= Menor ou igual a 3 <= 5, X <= Y
<> Diferente de 8<> 9, X <> Y
Exercício
2. Sejam A, B e C variáveis de tipo inteiro, com
valores iguais a 5, 10 e –8, respectivamente, e
uma variável real D, com valor de 1,5, quais os
resultados das expressões aritméticas a seguir?
(a) ((2 * A) mod 3) – C
(b) rad(-2 * C) div 4
(c) ((20 div 3) div 3) + pot(8,2)/2
(d) ((30 mod 4) * pot(3,3)) * -1
(e) rad(pot(A,(B/A))) + C * D
Atribuição
• Processo de associar um valor a uma variável (guardar um
objeto na gaveta)
– O tipo de dado deve ser compatível com a variável (objeto precisa
caber na gaveta)
– Cada variável pode receber apenas um valor. O segundo valor
sobrepõe-se ao anterior
– Podem ser atribuídos:
• Constantes
• Variáveis
• Expressões (aritméticas, relacionais ou lógicas)
– Comando de atribuição :
Atribuição
atribuição identificador expressão
;
expressão expressão aritmética
expressão lógica
expressão literal
Ex.: B 7; A B; X B + (13 div 5);
Entrada e Saída
• Algoritmos objetivam transformar informações
• Algoritmo = Entrada + Processamento + Saída
• Entrada: obtenção de dados provenientes do meio externo
– Comando: leia
– Exemplos:
• leia (X);
• leia (A, NOTA);
entrada de
dados
leia ( identificador ) ;
,
Entrada e Saída
• Saída: entrega dos resultados ao meio externo
– Comando: escreva
– Exemplos:
• escreva (X);
• escreva (B, MEDIA, 2+2);
• escreva (“Você pesa ”, P, “ quilos”);
saída de
dados
escreva ( identificador
expressão
) ;
,
Blocos
• Um Bloco é um conjunto de ações com uma
função definida
• O algoritmo pode ser visto como um Bloco
• O algoritmo pode conter vários Blocos
• Exemplo:
início // início do bloco (algoritmo)
// declaração de variáveis
// sequência de ações (eventualmente mais blocos)
fim. // fim do bloco (algoritmo)
blocos início identificador ;
;
fim
Exercício
Utilizando o seguinte trecho de algoritmo
.
.
inteiro: X, Y;
real: Z;
leia (X);
escreva (X, “elevado ao cubo = ”, pot(X,3));
leia (Y);
escreva (X + Y);
Z X/Y;
escreva (Z);
Z Z + 1;
X (Y + X) mod 2;
escreva (X);
.
.
explique o que está acontecendo em cada linha e qual é o resultado de cada ação
inteiro: X, Y;
// declaração de duas variáveis inteiras identificadas por X e Y
real: Z;
// declaração de uma variável real identificada por Z
leia (X);
// entrada de dados de um valor inteiro em X
// supondo que seja fornecido 3, X valerá 3
escreva (X, “elevado ao cubo = ”, pot(X,3));
// saída de dados:
// valor de X, seqüência de caracteres, resultado da função pot
// resultado do escreva: 3 elevado ao cubo = 27
leia (Y);
// entrada de dados de um valor inteiro em Y
// supondo que seja fornecido 2, Y valerá 2
escreva (X + Y);
// saída de dados: 5
Z X/Y;
// comando de atribuição, Z 3/2; ou seja, Z valerá 1,5
escreva (Z);
// saída de dados: 1,5
Z Z + 1;
// comando de atribuição incrementando o atual valor de Z
de 1
// Z 0,5 + 1; ou seja, Z valerá 1,5
X (Y + X) mod 2;
// comando de atribuição com uma expressão aritmética
// X (Y + X) mod 2;
// X (2 + 3) mod 2;
// X (5) mod 2; ou seja, X valerá 1
escreva (X);
// saída de dados: 1
Estruturas de Controle
• Estrutura Sequencial
– O Fluxo de Controle segue a mesma sequência linear da nossa escrita,
ou seja:
• De cima para baixo;
• Da esquerda para direita
– Cada ação é seguida de um ;
• Objetiva separar uma ação da outra
• Indica que a próxima ação da sequência deve ser executada
Estrutura Sequêncial
Algoritmo 3.1 – Modelo geral
início
// declaração de variáveis
// corpo do algoritmo
ação 1;
ação 2;
ação 3;
.
.
.
ação n;
fim. // fim do algoritmo
Estrutura Sequêncial
início
// declaração de variáveis
real: N1, N2, N3, N4, // notas bimestrais
MA; // média anual
// entrada de dados
leia (N1, N2, N3, N4);
// processamento
MA (N1 + N2 + N3 + N4) / 4;
// saída de dados
escreva (MA);
fim.
Algoritmo 3.2 - Média Aritmética
Estruturas de Seleção
• São aquelas que permitem alterar o Fluxo de
Execução, de forma a selecionar qual parte deve
ser executada
• Essa “decisão” de execução é tomada a partir de
uma condição, que pode resultar apenas em
Verdade ou Falsidade
• Uma condição é representada por expressões
relacionais ou lógicas
• As estruturas de seleção podem ser classificadas
em simples, compostas ou encadeadas
Seleção Simples
• Quando a <condição> for verdadeira o “bloco
verdade” é executado
• Quando a <condição> for falsa o “bloco
verdade” não é executado
se <condição> então
início // início do bloco verdade
comando 1;
comando 2;
...
comando n;
fim; // fim do bloco verdade
fimse;
Seleção Simples
início
// declaração de variáveis
real: N1, N2, N3, N4, // notas bimestrais
MA; // média anual
// entrada de dados
leia (N1, N2, N3, N4);
// processamento
MA (N1 + N2 + N3 + N4) / 4;
// saída de dados
escreva (MA);
se (MA >= 7) então
escreva (“Aluno Aprovado !”);
fimse;
fim.
Algoritmo 3.3 - Média Aritmética com Aprovação
Seleção Composta
• Quando a <condição> for verdadeira o “bloco
verdade” é executado
• Quando a <condição> for falsa o “bloco falsidade”
é executado
se <condição> então
início // início do bloco verdade
comando 1;
comando n;
fim; // fim do bloco verdade
senão
início // início do bloco falsidade
comando 1;
comando n;
fim; // fim do bloco falsidade
fimse;
Seleção Composta
início
// declaração de variáveis
real: N1, N2, N3, N4, // notas bimestrais
MA; // média anual
leia (N1, N2, N3, N4);
MA (N1 + N2 + N3 + N4) / 4;
escreva (MA);
se (MA >= 7) então
início
escreva (“Aluno Aprovado !”);
escreva (“Parabéns !”);
fim;
senão
início
escreva (“Aluno Reprovado !”);
escreva (“Estude mais !”);
fim;
fimse;
fim.
Algoritmo 3.4 - Média Aritmética com aprovação e reprovação
Seleção Encadeada
• Ocorre quando uma seleção tem como ação uma
outra seleção
• Uma seleção encadeada pode ser:
– Heterogênea: Quando não é possível identificar
padrão de comportamento
– Homogênea: Quando é possível identificar padrão de
comportamento
• se – então – se: quando depois de cada então ocorre outro
se
• se – senão – se: quando depois de cada senão ocorre outro
se
Seleção Encadeada
• Dados três valores A, B, C, verificar se eles
podem ser os comprimentos dos lados de um
triângulo
• Caso positivo, verificar se compõem
– Triângulo equilátero
– Triângulo isósceles
– Triângulo escaleno
A B
C
Seleção Encadeada
• Dados três valores A, B, C, verificar se eles
podem ser os comprimentos dos lados de um
triângulo
• Caso positivo, verificar se compõem
– Triângulo equilátero – três lados iguais
– Triângulo isósceles – dois lados iguais
– Triângulo escaleno – todos os lados diferentes
A B
C
Seleção Encadeada
• Triângulo: (A<B+C) e (B<A+C) e (C<A+B)
• Equilátero: (A=B) e (B=C)
• Isósceles: (A=B) ou (B=C) ou (A=C)
• Escaleno: (A<>B) e (B<>C) e (A<>C)
É triângulo? É equilátero? É isósceles? É escaleno? Ações
V V F F “Equilátero”
V F V - “Isósceles”
V F F V “Escaleno”
F - - - “Não é triângulo”
Seleção Encadeada Heterogênea
início
inteiro: A, B, C; // tamanho dos lados
leia (A, B, C);
se (A<B+C) e (B<A+C) e (C<A+B) então
se (A=B) e (B=C) então
escreva (“Triangulo Equilátero”);
senão
se (A=B) ou (B=C) ou (A=C) então
escreva (“Triângulo Isósceles”);
senão
escreva (“Triangulo Escaleno”);
fimse;
fimse;
senão
escreva (“Estes valores não formam um triângulo”);
fimse;
fim.Algoritmo 3.5 – Tipos de Triângulo
Seleção Encadeada Homogênea
se – então – se
se <Cond1> então
se <Cond2> então
se <Cond3> então
se <Cond4> então W;
fimse;
fimse;
fimse;
fimse;
É equivalente a:
se <Cond1> e <Cond2> e <Cond3> e <Cond4> então W;
fimse;
Cond1 Cond2 Cond3 Cond4 Ação
V V V V W
Seleção de Múltipla Escolha
• Seleções encadeadas homogêneas se-senão-se são bastante
frequentes para o tratamento de listas de valor
• Para simplificar a escrita, pode-se utilizar o comando escolha.
• Adaptando o algoritmo anterior:
escolha X
caso V1: C1;
caso V2: C2;
caso V3: C3;
caso V4: C4;
fimescolha;
Seleção de Múltipla Escolha
• Construa um algoritmo que, tendo como dados de entrada o preço de um
produto e seu código de origem, mostre o preço junto de sua procedência
• Caso o código não seja nenhum dos especificados, o produto deve ser encarado
como importado
• Siga a tabela de códigos abaixo
Código de origem Procedência
1 Sul
2 Norte
3 Leste
4 Oeste
5 ou 6 Nordeste
7, 8 ou 9 Sudeste
10 até 20 Centro-oeste
25 até 30 Nordeste
Seleção de Múltipla Escolha
início
real: Preço;
inteiro: Origem;
leia (Preço, Origem);
escolha Origem
caso 1: escreva (Preço, “ – produto do Sul”);
caso 2: escreva (Preço, “ – produto do Norte”);
caso 3: escreva (Preço, “ – produto do Leste”);
caso 4: escreva (Preço, “ – produto do Oeste”);
caso 7, 8, 9: escreva (Preço, “ – produto do Sudeste”);
caso 10..20: escreva (Preço, “ – produto do Centro-Oeste”);
caso 5, 6, 25..30: escreva (Preço, “ – produto do Nordeste”);
caso contrário: escreva (Preço, “ – produto importado”);
fimescolha;
fim.
Algoritmo 3.6 – Múltipla Escolha
Exercício
1. Escreva um algoritmo que, a partir de um
mês fornecido (número inteiro de 1 a 12),
apresente o nome dele por extenso ou uma
mensagem de mês inválido.