Buscar

Estruturas repeticao 1-comando enquanto

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 48 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 48 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 48 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Estruturas de Repetição 1: 
Comando ENQUANTO
Romero Medeiros
romero.medeiros@olinda.ifpe.edu.br
Introdução à Programação
Estruturas de repetição
• Diferente do ser humano, o computador não se cansa de realizar operações 
repetitivas.
• Diante disto, podemos incluir nos algoritmos as estruturas de repetição.
• O que é uma repetição?
• É uma instrução que permite a execução de um trecho de algoritmo várias vezes seguidas.
• Também chamada a laço ou loop;
• Tipos de estrutura de repetição:
• Repetição com teste no início (enquanto); 
• Repetição com teste no final (repita);
• Repetição com variável de controle (para).
Comando ENQUANTO
• Indica que os comandos seguintes serão executados, desde que uma expressão lógica seja 
verdadeira.
• Esta estrutura é chamada de repetição com teste no início
• A decisão entre repetir e parar o laço é feita no início do comando.
• Se o teste for falso desde o início, o laço não será executado.
• 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.
enquanto <expressão_lógica> faça
<comandos>;
Exemplo de comando ENQUANTO
• Fazer um algoritmo para ler diversos números informados pelo 
usuário, e após cada leitura exibir se o número é par ou ímpar. 
Considere que ao fornecer um valor negativo o usuário deseja 
encerrar e entrada de dados.
Exemplo de comando ENQUANTO
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
Variáveis
num : inteiro;
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
Mas, qual o 
valor de 
num na 1ª 
execução?
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;
enquanto num >= 0 faça
se num % 2 = 0 então
escrever “O número é par”
senão
escrever “O número é ímpar”;
escrever “Digite um número (negativo caso queira sair): “;
ler num;
Fim
Exemplo de comando ENQUANTO
num = get_integer("Digite um número (negativo para sair): ","");
while (num >= 0)
{
 if num mod 2 = 0
 show_message("O número é par");
 else
 show_message("O número é impar"); 
 num = get_integer("Digite um número (negativo para sair): ",""); 
}
Variáveis contadoras
• Uma variável é chamada de contadora quando armazena um número referente a 
uma quantidade de elementos ou iterações.
• Este tipo de variável é muito comum em estruturas de repetição, dada as suas 
diversas aplicações em problemas que envolvem contagens de valores.
Imprimir todos os números inteiros de 1 a 100.
Exemplo de variáveis contadoras
Imprimir todos os números inteiros de 1 a 100.
Exemplo de variáveis contadoras
Variáveis
valor : inteiro;
Início
valor <- 1;
enquanto valor <= 100 faça
escrever valor;
valor <- valor + 1;
Fim
Imprimir todos os números inteiros de 1 a 100 (GML).
Exemplo de variáveis contadoras
valor = 1;
while (valor <= 100)
{
 show_message(string(valor));
 valor = valor + 1; 
}
Variáveis acumuladoras
• Uma variável é chamada de acumuladora quando tem por 
característica armazenar o resultado acumulado de uma série de 
valores.
• Quando armazenamos a soma de uma quantidade pequena de 
números, a atribuição é direta. Numa repetição devemos armazenar 
a soma de diversos números sucessivos, e para isto utilizamos uma 
variável acumuladora.
Calcular a soma de diversos números reais informados pelo usuário. A 
entrada de dados termina com o número -999.
Exemplo de variáveis acumuladoras
Exemplo de variáveis acumuladoras
Variáveis
num: inteiro;
soma : inteiro;
Início
soma <- 0;
escrever “Digite um número número (ou -999 para sair): “;
ler num;
enquanto num != -999 faça
soma <- soma + num;
escrever “Digite um número número (ou -999 para sair): “;
ler num;
escrever “A soma é: ”, soma;
Fim
Exemplo de variáveis acumuladoras
Variáveis
num: inteiro;
soma : inteiro;
Início
soma <- 0;
escrever “Digite um número número (ou -999 para sair): “;
ler num;
enquanto num != -999 faça
soma <- soma + num;
escrever “Digite um número número (ou -999 para sair): “;
ler num;
escrever “A soma é: ”, soma;
Fim
A variável é iniciada
como 0 pois, caso o usuário
forneça -999 na primeira
execução, o valor total da
soma é 0.
Exemplo de variáveis acumuladoras
soma = 0;
num = get_integer("Digite um número (ou -999 para sair): ","");
while (num != -999)
{
 soma = soma + num;
 num = get_integer("Digite um número (ou -999 para sair): ","");
}
show_message("A soma é: " + string(soma));
Laços infinitos
• Ao trabalhar com repetições, é preciso tomar cuidado para não criar 
um laço infinito, ou seja, um laço que não termina.
• Neste tipo de situação a máquina permaneceria executando o laço 
indefinidamente, até que ocorra uma intervenção externa.
Imprimir os quadrados dos números inteiros de 1 a 10.
Exemplo de laço infinitos
Exemplo de laço infinitos
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;
Início
valor <- 1;
enquanto valor <= 10 faça
escrever QUAD(valor);
valor <- valor - 1;
Fim
Este decremento 
provoca
um loop infinito.
Repetições aninhadas
• Da mesma forma que é permitido o encadeamento de estruturas de 
decisão, também é possível encadear estruturas de repetição.
• Um encadeamento de repetições ocorre quando há necessidade de 
efetuar um laço dentro de outro.
• Neste tipo de situação, o algoritmo possui repetições controladas por 
um teste interno e outro externo.
Repetições aninhadas
Imprimir as tabuadas de multiplicação dos números 3, 4, 5 e 6.
Exemplo de repetições aninhadas
Variáveis
num: inteiro;
mult: inteiro;
cont : inteiro;
Início
 num <- 3;
enquanto num <= 6 faça
escrever “Tabuada de ”, num;
cont <- 1;
enquanto cont <= 10 faça
mult <- num * cont;
escrever num, “x”, cont, “=“, mult;
cont <- cont + 1;
num <- num + 1;
Fim
Exemplo de repetições aninhadas
num = 3;
while (num <= 6)
{
 show_message("Tabuada de: " + string(num));
 cont = 1;
 
 while (cont <= 10)
 {
 mult = cont * num;
 show_message(string(num) + " X " + string(cont) + " = " + string(mult));
 cont = cont + 1;
 }
 num = num + 1;
}
EXEMPLOS
Exemplo 1
Faça um algoritmo que leia diversos números positivos e imprima a 
metade do valor de cada um deles. Um número negativo sinaliza o fim 
da leitura de números.
Exemplo 1 – Estruturando solução
• Entradas
• Números positivos
• 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 ;
enquanto numero >= 0 faça
metade <- numero / 2;
escrever “Metade de ”, numero, “é: ”, metade;
escrever “Digite um número (negativo caso deseje sair): ”;
ler numero ;
Fim
Exemplo 1 - Algoritmo
numero = get_integer("Digite um número (negativo caso deseje sair): ","");
while (numero >= 0)
{
 metade = (numero/ 2);
 show_message("Metade do valor de " + string(numero) + " é " + 
string(metade));
 numero = get_integer("Digite um número (negativo caso deseje sair): ","");
}
Exemplo 1 – Execuções do algoritmo
Digite um número (negativo caso deseje sair): 10
Metade de 10 é: 5
Digite um número (negativo caso deseje sair): 2,5
Metade de 2,5 é: 1,25
Digite um número (negativo caso deseje sair): 5000
Metade de 5000 é: 2500
Digite um número (negativo caso deseje sair): -1
Digite um número (negativo caso deseje sair): -1
Exemplo 2
Ler 10 números inteiros fornecidos pelo usuário, e exibir quantos 
números ímpares foram informados.
Exemplo 2 – Estruturando solução
• Entradas
• 10 números inteiros
• 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;
enquanto contador <= 10 faça
escrever “Digite um número inteiro: ”;
ler numero ;
 contador <- contador + 1;
se (numero % 2) != 0 então
 contador_impar <- contador_impar + 1;
escrever “O total de ímpares é: “, contador_impar ;
Fim
Exemplo 2 - Algoritmo
contador = 1;
contador_impar = 0;
while (contador <= 10)
{
 numero = get_integer("Digite um número inteiro: ",""); 
 contador = contador + 1
 if (numero mod 2) != 0
 contador_impar = contador_impar + 1;
}
show_message("O total de impares é " + string(contador_impar));
Exemplo 2 – Execuções do algoritmo
Digite um número inteiro: 10
Digite um número inteiro: 70
Digite um número inteiro: 13
Digite um número inteiro: 93
Digite um número inteiro: 125
Digite um número inteiro: 3
Digite um número inteiro: 16
Digite um número inteiro: 54
Digite um número inteiro: 86
Digite um número inteiro: 29
O total de ímpares é: 5
Exemplo 3
Ler diversos números e exibir qual é o maior de todos. O código -1 
sinaliza o fim da leitura.
Exemplo 3 – Estruturando solução
• Entradas
• Números
• 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;
maior_numero <- numero;
enquanto numero != -1 faça
se numero > maior_numero então
 maior_numero <- numero ;
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
numero = get_integer("Digite um número (ou -1 para sair): ",""); 
maior_numero = numero;
while (numero != -1)
{
 if numero > maior_numero
 maior_numero = numero;
 numero = get_integer("Digite um número (ou -1 para sair): ",""); 
}
if maior_numero != -1
 show_message("O maior número é " + string(maior_numero));
else
 show_message("Nenhum número válido foi informado ");
Exemplo 3 – Execuções do algoritmo
Digite um número (ou -1 para sair): 10
Digite um número (ou -1 para sair): 3
Digite um número (ou -1 para sair): 3267
Digite um número (ou -1 para sair): 65
Digite um número (ou -1 para sair): -1
O maior número é: 3267
Digite um número (ou -1 para sair): -1
Nenhum número válido foi informado.
Exemplo 4
Uma fábrica de automóveis produz uma determinada quantidade de 
automóveis por dia. Faça um algoritmo para ler do usuário a 
quantidade produzida diariamente ao longo de um ano e depois 
informe:
• A quantidade produzida no ano todo
• A menor produção diária
• Considere que -1 indica o fim da digitação.
Exemplo 4 – Estruturando solução
• Entradas
• Veículos produzidos diariamente
• 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;
enquanto producao != -1 faça
 total_produzido <- total_produzido + producao;
se producao < menor_producao então
 menor_producao <- producao ;
escrever “Digite a produção do dia: ”;
ler producao;
escrever “Total produzido: ”, total_produzido;
escrever “Menor produção: ”, menor_producao;
Fim
Exemplo 4 - Algoritmo
producao = get_integer("Digite a produção do dia: ","");
total_produzido = 0;
menor_producao = producao;
while (producao != -1)
{
 total_produzido = total_produzido + producao;
 
 if producao < menor_producao
 menor_producao = producao;
 
 producao = get_integer("Digite a produção do dia: ","");
 
} 
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.
• Gilvan Vilarim. Algoritmos: Programação para Iniciantes. Editora
Ciência Moderna, 2004.
	Slide 1
	Estruturas de repetição
	Comando ENQUANTO
	Exemplo de comando ENQUANTO
	Exemplo de comando ENQUANTO
	Exemplo de comando ENQUANTO
	Exemplo de comando ENQUANTO
	Exemplo de comando ENQUANTO
	Slide 9
	Variáveis contadoras
	Exemplo de variáveis contadoras
	Exemplo de variáveis contadoras
	Slide 13
	Variáveis acumuladoras
	Exemplo de variáveis acumuladoras
	Exemplo de variáveis acumuladoras
	Exemplo de variáveis acumuladoras
	Slide 18
	Laços infinitos
	Exemplo de laço infinitos
	Exemplo de laço infinitos
	Exemplode laço infinitos
	Repetições aninhadas
	Repetições aninhadas
	Exemplo de repetições aninhadas
	Slide 26
	Slide 27
	Exemplo 1
	Exemplo 1 – Estruturando solução
	Slide 30
	Slide 31
	Exemplo 1 – Execuções do algoritmo
	Exemplo 2
	Exemplo 2 – Estruturando solução
	Exemplo 2 - Algoritmo
	Slide 36
	Exemplo 2 – Execuções do algoritmo
	Exemplo 3
	Exemplo 3 – Estruturando solução
	Exemplo 3 - Algoritmo
	Slide 41
	Exemplo 3 – Execuções do algoritmo
	Exemplo 5
	Exemplo 5 – Estruturando solução
	Exemplo 5 - Algoritmo
	Slide 46
	Exemplo 5 – Execuções do algoritmo
	Referências da aula

Continue navegando