Linguagem C Estruturas de Repetição José Gustavo de Souza Paiva Introdução Como fazer um programa que mostre na tela os 4 primeiros números ímpares? Primeira solução printf( 1 ); printf( 3 ); printf( 5 ); printf( 7 ); 1
Introdução Temos um problema com este método O problema é como fazer um programa que mostre na tela os 100 primeiros números ímpares? Utilizando este método, teríamos que criar 100 comandos printf, o que torna o programa ruim de ser implementado Introdução As estruturas de repetição permitem a um algoritmo realizar, com poucos comandos, processamentos repetitivos, e operar igualmente sobre uma grande quantidade de informações Existem estruturas de repetição adequadas para quando se conhece o número de repetições a serem realizadas, e para quando não se conhece 2
Instrução FOR A instrução FOR pode ser utilizada para realizar um processamento repetitivo sobre um grande volume de dados Para utilizar a instrução FOR, é preciso saber a quantidade de repetições (o tamanho do conjunto de dados) Utiliza-se um contador para as iterações Instrução FOR Estrutura: for (inicio ; condição ; passo) comando ; for (inicio ; condição ; passo) { comandos ; Início uma ou mais atribuições iniciais para o(s) contador(es), separadas por, Condição condição de parada relacionada ao(s) contador(es) Até quanto o(s) comando(s) deverão ser executados Passo valor de incremento para o(s) contador(es), separados por, 3
Instrução FOR Desta maneira, teríamos o seguinte código int contador=1; for(int i=1;i<100;i++) { printf( %d\n,contador); contador = contador + 2; Ou, usando uma maneira alternativa: for(int i=1;i<200;i+2) printf( %d\n,i); Exercícios Instrução FOR Faça um programa que leia 10 notas e calcule a média entre estas notas Faça um algoritmo que leia a idade e sexo de 50 pessoas. Determine e imprima Média aritmética das idades das mulheres Média aritmética das idades das 50 pessoas Soma das idades dos homens Número de homens e o número de mulheres Faça um programa que mostre a tabuada do 10 Escreva um programa que calcule o fatorial de um número 4
Instrução WHILE A instrução WHILE também é utilizada para iterar sobre conjuntos de dados A diferença é que utiliza-se este comando quando não se sabe o tamanho do conjunto de dados a priori Estrutura: while ( condição ) comando; while ( condição ) { comandos Enquanto a condição for verdadeira (!=0), ele executa o(s) comando(s) Instrução WHILE Exemplo Faça um programa que recebe números do usuário e mostre esses números elevados ao quadrado, parando apenas quando ele digitar 0 int x; scanf("%d",&x); while (x!= 0) { printf("%d",(x*x)); scanf("%d",&x); 5
Instrução WHILE Exemplo faça um programa que receba dois valores e mostre o resultado do produto entre esses valores OBS: não utilize a operação de multiplicação int x,y,r = 0; scanf("%d %d",&x,&y); USANDO FOR for (int i=0;i<x;i++) r += y; USANDO WHILE while (y>0) { r += x; y--; Instrução WHILE Mostrando na tela os 100 números inteiros int i=1; while (i<=100) { printf( %d,i); i++; Mostrando na tela os n números inteiros int i=1,n; scanf( %d,&n); while (i<=n) { printf( %d,i); i++; 6
Exercícios WHILE Faça um programa que receba dois valores (um de cada vez) e faça a divisão entre eles. Faça com que o programa não divida os dois números caso o usuário informe 0 para o divisor Faça um programa que calcule a média de duas notas. Force o usuário a informar notas entre 0 e 10 Faça o programa que lê X números e soma os maiores que 10 e conta os menores que 10. Considere que a leitura dos números encerra quando o usuário digita dez Faça um programa que lê o código do produto e a quantidade e escreva na tela o valor total da compra. O cliente pode escolher mais de um produto e a leitura se encerra quando for digitado zero Instrução DO-WHILE Utilizando o WHILE normal, existe a chance de os comandos dentro do WHILE nunca serem executados int i=1,n; scanf( %d,&n); while (i<=n) { printf( %d,i); i++; Para o exemplo acima, se o usuário digitar o valor -1, os comandos dentro do WHILE nunca serão executados 7
Instrução DO-WHILE Existe uma maneira de fazer com que os comandos sejam executados pelo menos uma vez É só utilizar a instrução DO-WHILE Estrutura: do comando; while ( condição ); do { comandos while ( condição ); Instrução DO-WHILE Exemplo somar valores inteiros, até que o usuário informe o valor 0 int soma = 0; int parcela; do { printf("numero a ser somado (0 para sair): "); scanf("%d", &parcela); soma += parcela; while (parcela!= 0); printf("soma: %d\n", soma); 8
Exercícios DO-WHILE Faça um programa que calcule o quadrado de um número informado pelo usuário. Permita que ele faça o cálculo até que o usuário informe 0 Modifique o programa da calculadora, para que o usuário possa fazer quantos cálculos ele necessite. Finalize o programa quando o usuário digitar f na tela Exercícios 1. Faça um programa que leia um valor N inteiro e positivo, calcule e mostre todos os números pares entre 0 e este número N (inclusive) 2. Faça um programa que calcule e mostre a soma dos 50 primeiros números pares 3. Faça um programa que receba um número inteiro maior do que 1, e verifique se o número fornecido é primo ou não 9
Exercícios 5. Faça um programa que determine e mostre os cinco primeiros múltiplos de 3, considerando números maiores do que 0 6. Faça um programa que calcule a área de um triângulo, cuja base e altura são fornecidas pelo usuário. Esse programa não pode permitir a entrada de dados inválidos, ou seja, medidas menores ou iguais a 0 7. Faça um programa que leia um número indeterminado de linhas contendo cada uma a idade de um indivíduo (pare quando for informada a idade 0), e calcule a idade média desse grupo de indivíduos 8. Faça um programa que receba vários números, calcule e mostre A soma dos números digitados A quantidade de números digitados A média dos números digitados O maior número digitado O menor número digitado A média dos números pares Finalize a entrada de dados caso o usuário informe o valor 0 10