Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* Estruturas de Repetição * Exemplo 1 – 1ª versão Um programa que imprima na tela 10 vezes a mensagem: "Oi mundo !". # include <stdio.h> int main() { printf( "Oi mundo!\n"); printf( "Oi mundo!\n"); printf( "Oi mundo!\n"); printf( "Oi mundo!\n"); printf( "Oi mundo!\n"); printf( "Oi mundo!\n"); printf( "Oi mundo!\n"); printf( "Oi mundo!\n"); printf( "Oi mundo!\n"); printf( "Oi mundo!\n"); } Muito ruim! Se aumentarmos a quantidade para 1000 vezes, fica inviável escrever dessa forma * Estrutura de Repetição As estruturas de repetição (ou laços) permitem ao programador especificar que uma seqüência de instruções deve ser repetida. Em C estudaremos três tipos de laços: para (for), enquanto (while) e faça - enquanto (do-while). Dependendo do problema que desejamos solucionar, podemos escolher a estrutura de repetição mais adequada. * Estrutura de repetição para (for) Esta estrutura é mais utilizada quando sabemos previamente quantas vezes o bloco de instruções deve ser repetido. Este tipo de laço é chamado de laço contado, pois utiliza-se de uma variável que chamamos de contador que serve para controlar o número de repetições. O contador começa com um valor inicial. A cada passo o laço efetua um teste sobre o valor do contador para decidir se deve repetir mais uma vez o bloco de instruções. Se o teste der verdadeiro, o bloco de instruções é repetido e o contador tem então seu valor atualizado (aumentado ou diminuído de uma constante). * Estrutura de repetição para (for) Estrutura geral do laço for em C: for (inicialização do contador; teste; atualização do contador) { Bloco de instruções } A inicialização do contador é a primeira instrução a ser executada e é executada uma única vez. Cada vez que o teste for verdadeiro as instruções são repetidas. A atualização do contador prepara-o para o próximo teste. * Exemplo 1 Um programa que imprima na tela 10 vezes a mensagem: "Oi mundo !". # include <stdio.h> int main() { int contador; for (contador = 1; contador <= 10; contador = contador + 1) { printf( "Oi mundo!\n"); } } E se aumentarmos a quantidade para 1000 vezes, como fica? * Exemplo 2 Um programa que imprima na tela 1000 vezes a mensagem: "Oi mundo !". # include <stdio.h> int main() { int contador; for (contador = 1; contador <= 1000; contador = contador + 1) { printf( "Oi mundo!\n"); } } Recordando: Em C quando queremos aumentar o valor de uma variável 'a' em 1, podemos escrever a++ no lugar de a = a + 1. Do mesmo modo, se quisermos decrementar em 1 pode ser escrito a-- no lugar de a = a – 1. * Exemplo 2 Um programa que imprima na tela 1000 vezes a mensagem: "Oi mundo !". # include <stdio.h> int main() { int contador; for (contador = 1; contador <= 1000; contador++) { printf( "Oi mundo!\n"); } } * Exemplo 3 Um programa que imprima os números de 100 a 1. # include <stdio.h> int main() { int contador; for (contador = 100; contador >=1; contador= contador - 1) { printf("%d\n", contador); } } * Exemplo 3 Um programa que leia a idade de 12 pessoas e calcule e imprima na tela a média das idades lidas. # include <stdio.h> int main() { int contador, idade, soma = 0; float media; for (contador = 1; contador <= 12; contador++) { printf( "\nDigite a idade: "); scanf("%d", &idade); soma = soma + idade; } media = (float) soma/12; printf("A media de idades eh: %f", media); } * Exemplo 4 Escrever um programa que calcula e mostra a soma dos números pares compreendidos entre 13 e 73. # include <stdio.h> int main() { int contador, soma = 0; for (contador = 13; contador <= 73; contador = contador + 1) { if (contador % 2 == 0) { soma = soma + contador; } } printf("A soma dos pares entre 13 e 73 eh: %d.\n", soma); } * Exemplo 4 – 2ª versão Escrever um programa que calcula e mostra a soma dos números pares compreendidos entre 13 e 73. # include <stdio.h> int main() { int contador, soma = 0; for (contador = 14; contador <= 73; contador = contador + 2) { soma = soma + contador; } printf("A soma dos pares entre 13 e 73 eh: %d.\n", soma); } * Estrutura de repetição enquanto (while) Esta estrutura é mais utilizada quando não se sabe previamente quantas vezes o bloco de instruções deve ser repetido, embora também possa ser utilizada quando se conhece esse número; Este tipo de laço é chamado de laço condicional; A cada passo, o laço efetua um teste sobre uma variável que tem um valor pré definido (que pode ser inicializada pelo usuário). Se o teste for verdadeiro, o bloco de instruções é repetido e a variável deve então ser atualizada (pode ser atualizada pelo usuário, lendo-se do teclado). * Estrutura geral do laço enquanto: Inicialização da(s) variável (is) while (teste) { Bloco de instruções Atualização da(s) variável (is) } Repete o 2º, 3º e 4º passos enquanto o teste for verdadeiro. Estrutura de repetição enquanto (while) * Exemplo 1 usando while Um programa que imprima na tela 10 vezes a frase: "Oi Mundo!" # include <stdio.h> int main() { int contador; contador = 1; while (contador <= 10) { printf("Oi Mundo!\n"); contador = contador + 1; } } * Exemplo 5 Um programa que leia um número indeterminado de valores inteiros maiores ou iguais a zero, e calcule e imprima na tela a média dos valores lidos. O programa deve finalizar a leitura de dados quando for digitado um valor negativo. #include<stdio.h> int main() { int num, soma = 0, qtd = 0; float media; printf("Digite um numero: "); scanf("%d", &num); while (num >= 0) { soma = soma + num; qtd = qtd + 1; printf("Digite um numero: "); scanf("%d", &num); } media = (float) soma/qtd; printf("\nA media dos numeros digitados eh: %f.\n", media); } * Estrutura de repetição faça - enquanto (do - while) Esta estrutura é mais utilizada quando não se sabe previamente quantas vezes o bloco de instruções deve ser repetido, mas quer que pelo menos uma vez o conjunto de instruções seja executado, muito embora também possa ser utilizada quando se conhece esse número; Este tipo de laço é chamado de laço condicional com teste no fim; A cada passo, o laço executa o bloco de instruções que contém a atualização da variável (que pode ser atualizada pelo usuário) e ao final efetua um teste sobre a variável. Se o teste for verdadeiro, o bloco de instruções é repetido. A inicialização da variável pode ser feita dentro ou fora do bloco de instruções. * Estrutura geral do laço do-while em C: Inicialização da variável do { Bloco de instruções Atualização da variável } while (teste); Repete o 2º, 3º e 4º passos enquanto o teste for verdadeiro. Estrutura de repetição do - while Versao I: Inicialização fora do laço * Exemplo 1 usando do..while Um programa que imprima na tela 10 vezes a mensagem: "Oi mundo!" # include <stdio.h> int main() { int contador; contador = 1; do { printf("Oi mundo!\n"); contador = contador + 1; } while (contador <= 10); } * Exemplo 6 Um programa que leia uma quantidade indeterminada de valores inteiros positivos ou o valor zero (pelo menos um valor correto deverá ser digitado), e calcule e imprima na tela a soma dos valores lidos. O programa deve finalizar a leitura de dados quando for digitado um valor negativo. #include<stdio.h> int main() { int num, soma = 0; printf("Digite um numero: "); scanf("%d", &num); do { soma = soma + num; printf("Digite um numero: "); scanf("%d", &num); } while (num >= 0); printf ("\nA soma dos numeros digitados eh: %d\n", soma); } * Estrutura geral do laço do-while em C: do { Bloco de instruções Inicialização/Atualização da variável } while (teste); Repete o 1º, 2º e 3º passos enquanto o teste for verdadeiro. Estrutura de repetição do - while Versao II: Inicialização/Atualização dentro do laço * Exemplo 7 Um programa que leia um número inteiro com 4 dígitos e imprima na tela o primeiro dígito deste número. O programa deve repetir a leitura do valor enquanto o usuário digitar um valor inválido (diferente de 4 dígitos). #include<stdio.h> int main() { int num, primeiro; do { printf("Digite um numero: "); scanf("%d", &num); } while (num <1000 || num >9999); primeiro = num/1000; printf("\nO primeiro digito eh: %d", primeiro); } * Exemplo 7 Um programa que apresenta um menu com várias opções e repete a escolha até que seja digitada a opção de saída. #include<stdio.h> int main() { char Opcao; do { printf("Entre com uma opcão do menu abaixo: \n"); printf("[1] - Inserir dados de aluno.\n"); printf("[2] - Remover aluno do cadastro.\n"); printf("[3] - Alterar os dados de um aluno.\n"); printf("[4] - Sair do sistema de cadastro.\n"); printf("Opcao: "); scanf(" %c",&Opcao); switch(Opcao) { case '1' : printf("Aqui insere aluno."); break; case '2' : printf("Aqui remove aluno."); break; case '3' : printf("Aqui altera Aluno."); break; case '4' : printf("Fim da execução do sistema."); break; default : printf("Opcão inválida."); break; } } while (Opcao !='4'); } * Exercícios Escrever um programa que leia um número inteiro n e calcule e mostre a tabuada do n. Mostre a tabuada na forma: 1 x n = n 2 x n = 2n 3 x n = 3n ... 10 x n = 10n Em uma eleição para prefeito existem quatro candidatos e 2.000 eleitores. Os votos são informados através de códigos (de maneira similar a uma Urna Eletrônica). Os dados utilizados para a contagem dos votos obedecem a seguinte codificação: 1, 2, 3 e 4: voto para os respectivos candidatos; 5: voto em branco; Qualquer valor diferente de 1,2,3,4 e 5 é considerado voto nulo. Elabore um programa que leia o voto de cada eleitor (código do candidato) e calcule a porcentagem de votos para cada candidato, a quantidade de votos nulos e a quantidade de votos em branco e o candidato que obteve mais votos. * Exercícios Escreva um programa que calcule e apresente na tela a área de cada círculo através da fórmula A = PI * R * R, onde R (o valor que deverá ser digitado pelo usuário) representa o raio do círculo e PI é o número 3,14. Repetir o processo enquanto for digitado um valor de R maior que 0. Escreva um programa que leia um número indeterminado de notas entre 0.0 e 10.0. Ao final imprima a média das notas e a quantidade de notas maiores ou iguais a 7. A digitação deve ser encerrada quando for digitada uma nota inválida. Faça um programa que leia uma quantidade não determinada de números positivos. Calcule a média dos valores pares, a média de valores ímpares e a média geral dos números lidos. A leitura encerrará quando for digitado um valor menor ou igual a zero.
Compartilhar