Introdução à Programação
description
Transcript of Introdução à Programação
Introdução à Programação
Aula Prática 4Estruturas 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.
Funciona na forma:
Antes do laço, faça isso;
Enquanto isto for verdade,
{
faça aquilo;
incremente o contador;
}
Laços - For
Em C:
for( isso ; isto; incremento)
{
Faça aquilo;
}
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.
Exemplo
For(int i = 0; i< 10;i++){
printf(“%d”, i);}
Laços - While
Em C:
While(isso)
{
Aquilo;
}
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.
Exemplo:while( a >= b ){
a -= b;}
Funciona na forma:
Enquanto isso for verdade,
{
Faça aquilo;
}
Funciona na forma:
Faça
{
isso;
} enquanto aquilo for verdade.
Laços - Do - While
Em C:
do
{
isso;
} while(aquilo);
Usado quando queremos executar o bloco pelo menos uma vez, pois a condição é testada ao fim de cada iteração.
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.
Exemplo:do{
andar();}while(energia > 0);
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:
1 2
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 7 8 9
6 7 8 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