Estruturas sequenciais e
condicionais
IF61A/ IF71A - Computação 1
Prof. Leonelo Almeida
Universidade Tecnológica Federal do Paraná
Aula passada
• Introdução à computação
• Algoritmos
▫ Variáveis
▫ Operadores
▫ Expressões
Agenda de hoje
• Estruturas de controle
▫ Estruturas sequenciais
▫ Estruturas condicionais (ou de decisão)
▫ Estruturas de repetição
Estruturas de controle
• Estabelecem os passos que devem ser
executados e a ordem deles
• Definem se um comando deve ser executado ou
não
• Definem se um comando deve ser executado
repetidamente
Exemplo
1. Nome: obterMenorValor
2. início
3.
inteiro: MenorValor, ValorLido;
4.
5.
imprima(“Informe o valor.”);
6.
leia (ValorLido);
7.
MenorValor <- ValorLido;
8.
9.
enquanto ValorLido <> -1 faça
10.
se ValorLido < MenorValor então
11.
MenorValor <- ValorLido;
12.
fim se
Usa-se “;” ao final
13.
leia(ValorLido);
de cada comando.
14.
fim enquanto
15.
16.
imprima(“O menor valor é ”, MenorValor);
17.fim
Ordem de execução.
Exemplo
1. Nome: obterMenorValor
2. início
3.
inteiro: MenorValor, ValorLido;
4.
5.
imprima(“Informe o valor.”);
6.
leia (ValorLido);
Não se usa “;” ao final
7.
MenorValor <- ValorLido;
de estruturas.
8.
9.
enquanto ValorLido <> -1 faça
10.
se ValorLido < MenorValor então
11.
MenorValor <- ValorLido;
12.
fim se
Usa-se “;” ao final
13.
leia(ValorLido);
de cada comando.
14.
fim enquanto
15.
16.
imprima(“O menor valor é ”, MenorValor);
17.fim
Ordem de execução.
Exemplo
1. Nome: obterMenorValor
2. início
3.
inteiro: MenorValor, ValorLido;
4.
Esta é uma
5.
imprima(“Informe o valor.”);
estrutura
6.
leia (ValorLido);
condicional (ou
7.
MenorValor <- ValorLido;
de decisão)
8.
9.
enquanto ValorLido <> -1 faça
10.
se ValorLido < MenorValor então
11.
MenorValor <- ValorLido;
12.
fim se
13.
leia(ValorLido);
Essa atribuição
14.
fim enquanto
somente é executada
15.
caso a condição da
16.
imprima(“O menor valor é ”,
MenorValor);
estrutura seja
17.fim
verdadeira.
Exemplo
1. Nome: obterMenorValor
2. início
3.
inteiro: MenorValor, ValorLido;
4.
Esta é uma
5.
imprima(“Informe o valor.”);
estrutura de
6.
leia (ValorLido);
repetição
7.
MenorValor <- ValorLido;
8.
9.
enquanto ValorLido <> -1 faça
10.
se ValorLido < MenorValor então
11.
MenorValor <- ValorLido;
12.
fim se
13.
leia(ValorLido);
14.
fim enquanto
Esse bloco somente é
15.
executado caso a
16.
imprima(“O menor valor é condição
”, MenorValor);
da estrutura
17.fim
seja verdadeira.
Estruturas condicionais (ou de decisão)
• Podem ser usadas de diversas maneiras:
▫ Simples
▫ Composta
▫ Encadeada
 Homogênea
 Heterogênea
▫ Múltipla escolha
Simples
• Estrutura
se ( condição for verdadeira ) então
comando ou {bloco de comandos}
fim se
• Exemplo
leia(A);
se (A > 0) então
imprima(“OK”);
fim se
Composta
• Estrutura
se ( condição for verdadeira ) então
comando ou {bloco de comandos}
senão
comando ou {bloco de comandos}
fim se
• Exemplo
leia(A);
se (A > 0) então
imprima(“OK”);
senão
imprima(“Erro”);
fim se
Atividade
• O algoritmo a seguir calcula as raízes de uma equação do
2o. grau, sendo A,B, e C fornecidos pelo usuário :
início
real : A, B, C, R1, R2;
imprima(“Forneça os coeficientes da equação de
2º grau”);
leia(A,B,C);
R1 <-(-B+(raiz(B**2 - 4*A*C)))/(2*A);
R2 <-(-B-(raiz(B**2 - 4*A*C)))/(2*A);
imprima(“Coef. 1: ”, R1, “Coef. 2: ”, R2);
fim
• Refazer o algoritmo acima de modo a imprimir mensagem
de erro no caso de raiz quadrada de número negativo
Encadeada
• Pode ser:
▫ Homogênea
▫ Heterogênea
Encadeada homogênea
• Formada por condições simples
se ( condição1 for V ) então
se ( condição2 for V ) então
...
se ( condiçãoN for V ) então
comando
{ou bloco de comandos};
fim se
fim se
Quando o comando
fim se
será executado?
Encadeada homogênea
• É equivalente a:
se ( condição1 for V ) e ( condição2 for V )
e ... e ( condiçãoN for V ) então
comando
{ou bloco de comandos};
fim se
Encadeada homogênea
• Formada por condições compostas
se ( condição1 for V ) então
comando1 {ou bloco de comandos};
senão
Quando o comandoN
se ( condição2 for V ) então
será executado?
...
senão
se ( condiçãoN for V ) então
comandoN {ou bloco de comandos};
senão
comandoM {ou bloco de comandos};
fim se
fim se
fim se
Atividade
• O algoritmo a seguir calcula a média final de 3
parciais fornecidas pelo usuário
início
real : P1, P2, P3,MF;
leia(P1,P2,P3);
MF <-(P1+P2+P3)/3.0;
imprima(MF);
se MF >= 7.0 então
imprima(“Aprovado”);
fim se
fim
• Refazer o algoritmo acima para a regra de
aprovação, exame ou reprovação usada nesta
universidade
se <Condição1 forV> então
se <Condição2 for V> então
{inicio do bloco verdade A}
C1;
...
Cn;
fim se
senão
se <Condição3 forV> então
{inicio do bloco verdade B}
C1;
...
Cn;
senão
se <Condição4 for V> então
se <Condição 5=V> então
ComandoX;
fim se
senão
Comando Y;
fim se
fim se
fim se
Encadeada
heterogênea
se <Condição1 forV> então
se <Condição2 for V> então
{inicio do bloco verdade A}
C1;
...
Cn;
fim se
senão
se <Condição3 forV> então
{inicio do bloco verdade B}
C1;
...
Cn;
senão
se <Condição4 for V> então
se <Condição 5=V> então
ComandoX;
fim se
senão
Comando Y;
fim se
fim se
fim se
Encadeada
heterogênea
se <Condição1 forV> então
se <Condição2 for V> então
{inicio do bloco verdade A}
C1;
...
Cn;
Quando o bloco A
fim se
é executado?
senão
se <Condição3 forV> então
{inicio do bloco verdade B}
C1;
...
Quando o bloco B
Cn;
é executado?
senão
se <Condição4 for V> então
se <Condição 5=V> então
ComandoX;
fim se
senão
Quando o
Comando Y;
comando X é
fim se
executado?
fim se
fim se
Encadeada
heterogênea
Atividade
• Suponha o algoritmo
início
lógico: A,B,C;
se A então
C1;
senão
se B então
se C então
C2;
senão
C3;
C4;
fim se
fim se
C5;
fim se
C6;
fim
Quais os comandos executados
considerando-se:
i.
ii.
iii.
iv.
AV;
BV;
CF;
AF;
BV;
CF;
AF;
BV;
CV;
Quais valores de A, B e C
para que somente o
comando C6 seja
executado?
Atividade
• Elabore um algoritmo para o cálculo do total
de latas de tinta necessárias para se pintar
um muro considerando-se as seguintes
informações:
▫ O tamanho do muro a ser pintado é fornecido
pelo usuário.
▫ 1 litro de tinta é suficiente para se pintar R m2
do muro , onde o valor de R (rendimento)
também é fornecido pelo usuário
▫ 1 lata contém 5 litros de tinta
▫ O total de latas deve ser um valor inteiro
Múltipla escolha
• Estrutura
escolha (variável):
caso E1:
Comando1; {ou
caso E2:
Comando2; {ou
...
caso EM:
ComandoN; {ou
caso contrário:
ComandoM; {ou
fim escolha
bloco de comandos}
bloco de comandos}
bloco de comandos}
bloco de comandos}
Múltipla escolha – exemplo 1
início
caractere: op;
leia(op);
escolha(op)
caso ‘c’ :
imprima(“copiando arquivo”);
caso ‘a’:
imprima(“apagando arquivo”);
caso ‘d’:
imprima(“criando diretório”);
caso ‘f’:
imprima(“formatando disco”);
caso contrário:
imprima(“saindo do programa”);
fim escolha
fim
Múltipla escolha – exemplo 2
início
inteiro: numA, numB;
leia(numA);
escolha(numA)
caso 10 :
numB <- numA;
caso 20:
numB <- numA^2;
caso 30:
numB <- numA^3;
caso contrário:
imprima(“Erro”);
fim escolha
fim
Atividade
• Considere a tabela de produtos disponíveis do
estoque e uma loja:
Código
Nome
Preço (R$)
Quantidade
A
Lâmpada 60W
1.20
7
B
Lâmpada 100W
2.50
5
C
Reator de partida lenta
59.00
3
D
Reator de partida rápida
124.00
2
• continua no próximo slide ...
Atividade
O algoritmo imprime o nome e o preço
total de cada produto disponível conforme
o código fornecido pelo usuário:
inicio
caractere codigo;
imprima(“Forneça o código do produto (de A a D)”);
leia(codigo);
se codigo = ‘A’
imprima(“Lâmpada 60 W. Valor: ”, 1.2*7);
senão
se codigo = ‘B’
imprima(“Lâmpada 100 W. Valor: ”, 2.5*5);
senão
se codigo = ‘C’
imprima(“Reator de partida lenta. Valor: ”, 59*3);
senão
se codigo = ‘D’
imprima(“Reator de partida rápida. Valor: ”, 124*2);
senão
imprima(“Produto não disponível no estoque”);
fim se
fim se
fim se
Modifique o algoritmo anterior de modo a
fim se
fim
utilizar o comando escolha.
Atividade
• Construa um algoritmo que, tendo como dados
de entrada o preço de um produto e o seu
código, imprima a sua origem e o preço final do
produto, considerando o frete para transportá-lo.
Caso o código não seja nenhum dos
especificados, o produto deve ser encarado como
importado.
• Tabela de frete no próximo slide ...
Atividade
Código
Origem
Frete
1
Centro Oeste
10% do preço
2
Norte
40% do preço
3 ou 4
Nordeste
30% do preço
5 ou 6
Sul
40% do preço
10 a 20
Sudeste
20% do preço
Outros
IMPORTADO
200% do preço
Download

Algoritmos 2