Introdução à Programação
Aula Prática 4
Estruturas de Repetição
Monitoria 2013.2
Roteiro

Laços
–
–
–
–
–


For
While
Do – while
Laços aninhados
Observações
Dúvidas
Exercícios
Laços

Laços são comandos usados quando queremos
realizar uma tarefa várias vezes, até uma condição
ser cumprida.

Em C, temos 3 tipos de laços:
– For
– While
– Do – while

Os 3 são equivalentes: A mesma coisa pode ser feita
usando os 3 tipos.
Laços - For

Funciona
Em C:
na forma:
Antes
for( isso
do; laço,
isto; incremento)
faça isso;
Enquanto
{
isto for verdade,
{ Faça aquilo;
faça
}
aquilo;
incremente o contador;
Exemplo
}
For(int i = 0; i< 10;i++)
{
printf(“%d”, i);
}
Se só for executado um comando dentro
do bloco, as chaves são facultativas,
mas é preferível sempre usar chaves.
Podem ser declaradas variáveis dentro
do laço, que tem como seu escopo o
bloco de comandos. Quando elas saírem
do escopo, são destruídas.
Isso também vale para os outros dois
tipos de laço.
Os laços “for” são indicados quando se
sabe exatamente o numero de vezes
que o código será iterado.
Laços - While

Funciona
na forma:
Em C:
Enquanto
While(isso)isso for verdade,
{
Faça
aquilo;
Aquilo;
}
Exemplo:
while( a >= b )
{
a -= b;
}
Usado quando queremos repetir uma
ação até que uma condição não seja
mais verdade.
Na condição, não se pode usar variáveis
declaradas no bloco, pois a expressão é
avaliada fora do bloco.
Se a condição for falsa desde o começo,
o laço não é executado.
Laços - Do - While

Funciona
Em C:
na forma:
Faça
do
Usado quando queremos executar o
bloco pelo menos uma vez, pois a
{
condição é testada ao fim de cada
isso;
iteração.
} enquanto
while(aquilo);
aquilo for verdade.
do
{
Exemplo:
andar();
}while(energia > 0);
Na condição, não se pode usar variáveis
declaradas no bloco, pois a expressão é
avaliada fora do bloco.
Obs: o “ponto-e-virgula” depois do
while(condição) é necessário.
Quiz

1- Qual dos laços é ideal para um evento que
acontece um número fixo de vezes?
Quiz

2- Qual dos laços é ideal para repetir um programa
inteiro?
Quiz

3- Qual dos laços é equivalente a um if que se
repete?
Quiz

4- O que acontece no código seguinte:
int main()
{
unsigned int i;
for (i = 10; i >= 0; i--)
{
printf (“a”);
}
return 0;
}
Laços – Laços aninhados.

Laços, por serem comandos, podem ser colocados
dentro de outros laços. Assim, podemos “aninhar”
laços dentro de laços dentro de laços dentro de
laços...
Exemplo:
For(sala = 1; sala <= 10 ; sala++)
{
for(mesa = 1; mesa <= 60; mesa++)
{
Limpar(sala,mesa);
}
}
Laços – Observações

Nos 3 tipos de laço, devemos tomar cuidado com a
condição: Se ela nunca for falsa, o código entrará num
laço infinito, efetivamente “travando” seu programa.

No laço “for”, tomar cuidado para não incrementar
uma variável no bloco de comandos e no incremento
próprio do laço.

Novamente: É sempre aconselhável usar um bloco de
código ao usar laços, mesmo quando só um comando
será repetido. Isso facilita a leitura do código, e
elimina possíveis ambiguidades com laços aninhados.
Dúvidas?
Exercício 1
 Escreva um programa em C que solicita 10
números ao usuário, através de um laço while, e
ao final mostre os dois menores números
distintos digitados pelo usuário.
 Obs: O usuário irá digitar um número por vez.
Ex:
Entrada:
20 1 8 1999 104 2 42 1 51 18
 Saida:
12
Exercício 2

Faça um programa que recebe do usuário um
número N e imprima uma matriz de NxN onde cada
elemento é a soma da linha e da coluna da célula.
Dica: use %.3d para ficar bem alinhado
Ex:
2
3
4
5
6
3
4
5
6
7
4
5
6
7
8
5 6
6 7
7 8
8 9
9 10
Exercício 3

Faça um programa que recebe um numero inteiro
N positivo, e imprima todos os quadrados
perfeitos que existem entre 0 e N (inclusive).
Ex:
Entrada:
64
Saída:
1 4 9 16 25 36 49 64
Download

PPTX