160 likes | 298 Views
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.
E N D
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 • Em C: • for( isso ; isto; incremento) • { • Faça aquilo; • } • Funciona na forma: Antes do laço, faça isso; Enquanto isto for verdade, { faça aquilo; incremente o contador; } 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; • } • Funciona na forma: Enquanto isso for verdade, { Faça 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; }
Laços - Do - While • Em C: • do • { • isso; • } while(aquilo); • Funciona na forma: Faça { isso; } enquanto aquilofor verdade. 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: intmain() { unsignedinti; for (i = 10; i >= 0; i--) { printf (“a”); } return0; }
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.
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