Académique Documents
Professionnel Documents
Culture Documents
Centro de Informtica
Introduo Programao
Roteiro
Estruturas de Repetio
Comando Enquanto
Comando Repita
Comando Para
Estruturas de Repetio em C
Comando for
Comando while
Comando do-while
Exerccios
Bruno Jefferson (2014)
Estruturas de Repetio
Permite que um bloco de instrues seja
executado um determinado nmero de
vezes ou at que uma dada condio seja
satisfeita.
Principais estruturas de repetio:
Enquanto
Repita
Pa r a
Bruno Jefferson (2014)
Comando Enquanto
Utilizado em situaes nas quais no se
pode, a priori, determinar o nmero de
vezes que um lao ser executado.
O lao ser executado enquanto uma
determinada condio for atendida.
um tipo de lao condicional.
Comando Enquanto
Forma geral
Comando Enquanto
Consideraes
A sequncia de comandos ser executada
zero ou mais vezes, dependendo da
avaliao da condio.
A condio deve ser testada a cada ciclo de
repetio, para verificar o momento de
romper o lao.
Comando Enquanto
Consideraes
Os valores que constituem a expresso
condicional devem ser modificados para
que um novo teste seja feito. Caso contrrio,
o lao pode nunca terminar.
As instrues so executadas enquanto
condio de controle for verdadeira.
Comando Enquanto
Exemplo
algoritmo verifica_senha
senha : texto;
inicio
leia(senha);
enquanto (senha "XYZ) faa
escreva("Senha invlida);
escreva("Digite a senha novamente: );
leia(senha);
fim-enquanto
fim
Comando Enquanto
Exerccios
(1) Faa um algoritmo que mostre todos os
nmeros inteiros pares de 2 a 100.
(2) Faa um algoritmo que leia uma senha.
Caso o usurio digite a senha errada, a
mensagem Senha incorreta. Digite
novamente deve ser mostrada. Porm, se o
usurio digitar a senha errada 3 vezes, a
seguinte mensagem deve ser mostrada:
Senha bloqueada
Comando Repita
Comando Repita
Forma geral
repita
Instruo1;
Instruo2;
...
InstruoN;
enquanto <condio>
11
Comando Repita
Consideraes
A sequncia de comandos ser executada
uma ou mais vezes, dependendo da
avaliao da condio.
Assim como no comando Enquanto, os
valores que constituem a expresso
condicional devem ser modificados para
que um novo teste seja feito. Caso contrrio,
o lao pode nunca terminar (loop infinito).
Comando Repita
Exerccios
Comando Para
utilizada quando se sabe, a priori, o
nmero exato de repeties que se
deseja executar.
Este tipo de estrutura de repetio
tambm chamado de lao de
contagem.
Controlado por um contador.
14
Comando Para
Forma geral:
para <var> <inicio> at <fim> faa
Instruo1;
Instruo2;
...
InstruoN;
fim-para
Comando Para
Exemplo
algoritmo mostra_1_a_100
i: inteiro;
inicio
para i 1 a 100 faa
escreva(i);
fim-para
fim
Comando Para
Exerccios
(1) Criar um algoritmo que leia dois
nmeros inteiros, e depois mostre todos os
inteiros entre eles.
(2) Criar um algoritmo que mostre todos
os nmeros de 1 a 100 e a soma deles.
(3) Criar um algoritmo que mostre na tela
uma matriz quadrada 5 x 5.
17
Estruturas de Repetio em C
Comando while
Equivalente ao comando enquanto
Comando do-while
Equivalente ao comando repita
Comando for
Equivalente ao comando para
Bruno Jefferson (2014)
18
Comando while
Sintaxe
while (<condio>) {
<instruo 1>;
<instruo 2>;
...
<instruo N>;
}
19
Comando while
Exemplo
#include <stdio.h>
int main() {
int num = 0;
while (num >= 0) {
printf("\nDigite um numero: ");
scanf("%d", &num);
}
return 0;
}
20
Comando do-while
Sintaxe
do {
<instruo 1>;
<instruo 2>;
...
<instruo N>;
} while (<condio>);
21
Comando do-while
Exemplo
#include <stdio.h>
int main() {
int i = 0;
do {
printf(i: %d, i);
i++;
} while (i < 10);
return 0;
}
22
Comando for
Sintaxe
23
Inicializao
No
Condio
verdadeira
Sim
Instrues
Realiza o
incremento
Fim
24
Comando for
Exemplo
#include <stdio.h>
int main() {
int i;
for (i = 0; i <= 50; i++)
printf(%d\n, i);
for (i = 50; i >= 0; i--)
printf(%d\n, i);
return 0;
}
25
Instrues de desvio
Comando break
Interrompe a execuo da estrutura de
repetio.
O fluxo de execuo segue para a prxima
instruo aps o lao.
Comando continue
Interrompe a iterao da estrutura de
repetio.
O fluxo de execuo segue para a prxima
iterao do lao.
Bruno Jefferson (2014)
26
Instrues de desvio
Exemplo
#include <stdio.h>
Sada do programa
int main() {
int x = 0;
while (x >= 0) {
x++;
if (x == 5) continue;
printf(x = %d\n, x);
if (x == 10) break;
}
x=1
x=2
x=3
x=4
x=6
x=7
x=8
x=9
x = 10
return 0;
}
Bruno Jefferson (2014)
27
Exerccios
(1) Faa um programa que leia um valor inteiro
positivo n e determina a soma dos n primeiros
nmeros pares positivos (utilize o comando for).
(2) Escreva um programa que leia um conjunto de
nmeros inteiros positivos e determine o maior
deles. A cada leitura de um valor pergunte ao
usurio se ele deseja continuar (Deseja
continuar(S/N)).
A entrada de dados
interrompida quando o usurio digitar os caracteres
N ou n(utilize o comando do-while).
Bruno Jefferson (2014)
28
Exerccios
(3) Escreva um programa para determinar o
nmero de algarismos de um nmero inteiro
positivo dado (utilize o comando while).
(4) Faa um algoritmo que leia uma senha.
Caso o usurio digite a senha errada, a
mensagem Senha incorreta. Digite
novamente deve ser mostrada. Porm, se o
usurio digitar a senha errada 3 vezes, a
seguinte mensagem deve ser mostrada: Senha
bloqueada.( Utilize o comando do-while).
Bruno Jefferson (2014)
29
Referncias
ASCENCIO, A. F. G., CAMPOS, E. A.V.;
Fundamentos da Programao de
Computadores, 3. Ed., So Paulo: Pearson,
2012.
Schildt, H; C Completo e Total. Makron
Books. 1997.
Oliveira, U.; Programando em C Fundamentos.Volume I. Editora Cincia
Moderna. 2008.
30