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
13. leia(ValorLido);
14. fim enquanto
15.
16. imprima(“O menor valor é ”, MenorValor);
17.fim
Usa-se “;” ao final de cada comando.
Ordem de execução.
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
13. leia(ValorLido);
14. fim enquanto
15.
16. imprima(“O menor valor é ”, MenorValor);
17.fim
Usa-se “;” ao final de cada comando.
Não se usa “;” ao final de estruturas.
Ordem de execução.
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
13. leia(ValorLido);
14. fim enquanto
15.
16. imprima(“O menor valor é ”, MenorValor);
17.fim
Esta é uma estrutura
condicional (ou de decisão)
Essa atribuição somente é executada caso a condição da
estrutura seja verdadeira.
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
13. leia(ValorLido);
14. fim enquanto
15.
16. imprima(“O menor valor é ”, MenorValor);
17.fim
Esta é uma estrutura de
repetição
Esse bloco somente é executado caso a
condição da estrutura 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
fim se Quando o comando
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
se ( condição2 for V ) então
...
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
Quando o comandoN será executado?
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
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;
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
Quando o bloco A é executado?
Quando o bloco B é executado?
Quando o comando X é executado?
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. AV; BV; CF; ii. AF; BV; CF; iii. AF; BV; CV; iv. 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 bloco de comandos}
caso E2:
Comando2; {ou bloco de comandos}
...
caso EM:
ComandoN; {ou bloco de comandos}
caso contrário:
ComandoM; {ou bloco de comandos}
fim escolha
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:
• continua no próximo slide ...
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
Atividade 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
fim se
fim
O algoritmo imprime o nome e o preço total de cada produto disponível conforme o código fornecido pelo usuário:
Modifique o algoritmo anterior de modo a 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
Top Related