Estruturas Repeticao 1-Comando Enquanto
Estruturas Repeticao 1-Comando Enquanto
Estruturas Repeticao 1-Comando Enquanto
Comando ENQUANTO
Introdução à Programação
Romero Medeiros
[email protected]
Estruturas de repetição
• Diferente do ser humano, o computador não se cansa de realizar operações
repetitivas.
• Ao encontrar o fim dos comandos, o computador volta para a 1ª linha do laço e avalia
novamente a expressão lógica:
• Se verdadeira, o computador fará uma nova execução do trecho;
• Se falsa, o computador pára a execução e continua no próximo comando após o trecho repetido.
Variáveis
num : inteiro;
Início
enquanto num >= 0 faça
escrever “Digite um número (negativo para sair): “;
ler num;
se num % 2 == 0 então
escrever “O número é par”
senão
escrever “O número é ímpar”;
Fim
Exemplo de comando ENQUANTO
Mas, qual o
valor de
Variáveis num na 1ª
num : inteiro; execução?
Início
enquanto num >= 0 faça
escrever “Digite um número (negativo caso queira sair): “;
ler num;
se num % 2 == 0 então
escrever “O número é par”
senão
escrever “O número é ímpar”;
Fim
Exemplo de comando ENQUANTO
• Como podemos contornar este problema?
• Retirando a leitura da variável de dentro do laço:
• Será gerado um laço infinito, pois “num” será lida apenas uma vez, e se for >= 0, o laço
nunca terminará.
• Colocar uma leitura antes do laço, e uma segunda leitura como últimos
comandos dentro do laço.
Exemplo de comando ENQUANTO
Variáveis
num : inteiro;
Início
escrever “Digite um número (negativo caso queira sair): “;
ler num;
Variáveis
valor : inteiro;
Início
valor <- 1;
valor = 1;
soma = 0;
Variáveis
valor: real;
Início
valor <- 1;
enquanto valor <= 10 faça
escrever QUAD(valor);
valor <- valor - 1;
Fim
Exemplode laço infinitos
Variáveis
valor: real;
Este decremento
Início provoca
valor <- 1; um loop infinito.
enquanto valor <= 10 faça
escrever QUAD(valor);
valor <- valor - 1;
Fim
Repetições aninhadas
• Da mesma forma que é permitido o encadeamento de estruturas de
decisão, também é possível encadear estruturas de repetição.
num = 3;
• Saídas
• A metade do valor dos números
• Detalhes
• Usar o comando ENQUANTO repetir a leitura de números até que seja digitado um valor
negativo.
• Fazer a primeira leitura fora do comando ENQUANTO para tratar o caso do usuário digitar o
primeiro valor negativo.
Exemplo 1 - Algoritmo
Variáveis
numero : real;
metade : real;
Início
escrever “Digite um número (negativo caso deseje sair): ”;
ler numero ;
Fim
Exemplo 1 - Algoritmo
• Saídas
• Quantidade de números ímpares
• Detalhes
• Serão necessárias 10 leituras. Podemos criar uma variável contadora para controlar este laço.
• Precisaremos de uma outra variável para contar a quantidade de números ímpares.
• Não podemos deixar para contar após a repetição, pois cada número fornecido apaga o anterior.
Logo precisamos ir contando após cada entrada, incrementando uma nova variável contadora.
• Esta nova variável contadora só é incrementada se o número informado for ímpar.
Exemplo 2 - Algoritmo
Variáveis
contador : inteiro;
numero : inteiro;
contador_impar : inteiro;
Início
contador <- 1;
contador_impar <- 0;
se (numero % 2) != 0 então
contador_impar <- contador_impar + 1;
contador = 1;
contador_impar = 0;
if (numero mod 2) != 0
contador_impar = contador_impar + 1;
}
• Saídas
• Maior número dentre os informados
• Detalhes
• Para guardar o maior número criaremos uma variável. A cada entrada é preciso saber se o
número lido deve ser guardado como o maior de todos.
Exemplo 3 - Algoritmo
Variáveis
numero: real;
maior_numero : real;
Início
escrever “Digite um número (ou -1 para sair): “;
ler numero;
se maior_numero != -1 então
escrever “O maior número é: ”, maior_numero;
senão
escrever “Nenhum número válido foi informado.”;
Fim
Exemplo 3 - Algoritmo
maior_numero = numero;
• Saídas
• A quantidade produzida no ano todo
• A menor produção diária
• Detalhes
• Precisamos de uma variável acumuladora para o total produzido e outra para a menor
produção
• Precisamos fazer uma leitura fora do comando ENQUANTO para caso a primeira entrada seja
-1
Exemplo 4 - Algoritmo
Variáveis
producao: inteiro;
total_produzido: inteiro;
menor_producao: inteiro;
Início
escrever “Digite a produção do dia: ”;
ler producao;
total_produzido <- 0;
menor_producao <- producao;
total_produzido = 0;
menor_producao = producao;
}
show_message("total produzido: " + string(total_produzido));
show_message("menor produção: " + string(menor_producao));
Exemplo 4 – Execuções do algoritmo
Digite a produção do dia: 1
Digite a produção do dia: 2
Digite a produção do dia: 3
Digite a produção do dia: 4
Digite a produção do dia: 5
Digite a produção do dia: -1
Produção total: 15
Menor produção: 1
Referências da aula
• Adaptado da aula Introdução à Programação do Prof. Ricardo Araújo
do curso de Ciência da Computação da FBV.