Anda di halaman 1dari 18

Linguagem C

Estruturas de Repetio

Estrutura de Repetio
Repetio com teste no inicio
enquanto (condio1 for Verdade) faa /*bloco de comandos*/ fim_enquanto; while (condio1 != 0) { /*bloco de comandos*/ }

A varivel de controle (parte da condio) deve ser incializada fora do lao, e incrementada dentro do mesmo;

Exemplo
#include <stdio.h> #include <stdlib.h> int main(){ int a; //Declarao de varivel printf(Digite um nmero:\n); scanf(%d,&a); while(a != 0) //no vai ; { printf(%d\n,a+1); scanf(%d,&a); } printf(Fim\n); }

Estrutura de Repetio
Repetio com teste no fim
faa /*bloco de comandos*/ enquanto(condio1 for Verdade); do { /*bloco de comandos*/ }while (condio1 != 0);

A varivel de controle (parte da condio) pode ser incializada dentro do lao. Cuidar para no executar a condio de parada.

Exemplo
#include <stdio.h> #include <stdlib.h> int main(){ int a; //Declarao de varivel printf(Digite um nmero:\n); do //no vai ; { scanf(%d,&a); if (a !=0) { printf(%d\n,a+1); } }while(a != 0); printf(Fim\n); }

Estrutura de Repetio
Repetio com varivel de controle incremental
para X inicio VarInicio fim VarFim passo VarPasso faa /*bloco de comandos*/ fim_para;

for(X = VarInicio ; X <= VarFim ; X = X+VarPasso) { /*bloco de comandos*/ }

A varivel de controle automaticamente incrementada no fim do lao.

Exemplo
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(){ int a; //Declarao de varivel printf(Digite um nmero:\n); for(a=1;a<=10;a=a+1) //no vai ; { printf(%d %f %f\n,a,sqrt(a),pow(a,2)); } printf(Fim\n); }

Estrutura de Repetio
Comando break; Usado para parar a execuo de um lao.
for(X = VarInicio ; X <= VarFim ; X = X+VarPasso) { /*bloco de comandos*/ break; }

A execuo do lao interrompida ao encontrar o break.

Exemplo
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(){ int a; //Declarao de varivel printf(Digite um nmero:\n); a=0; while(a<=10) //no vai ; { printf(%d %f %f\n,a,sqrt(a),pow(a,2)); a=a+1; if ((a%2) == 0) { break; } } printf(Fim\n); }

Estrutura de Repetio
Comando continue; Usado para passar para prxima iterao do um lao.
for(X = VarInicio ; X <= VarFim ; X = X+VarPasso) { /*bloco de comandos*/ continue; }

A iterao atual do lao interrompida e a prxima iniciada.

Exemplo
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(){ int a; //Declarao de varivel printf(Digite um nmero:\n); a=0; for(a=0;a<=10;a=a+1) //no vai ; { if ((a%2) == 0) { continue; } printf(%d %f %f\n,a,sqrt(a),pow(a,2)); } printf(Fim\n); }

Exerccios
1- Escrever um programa que l um conjunto de valores, imprimindo, para cada valor: seu quadrado, seu cubo e sua raiz quadrada. O conjunto finalizado com o valor zero. varfloat=sqrt(num) include math.h 2 - Definir um programa que receba uma srie de pares de nmeros, e para cada par calcule a mdia aritmtica, imprimindo o resultado. A srie termina quando for lido o par 0,0. int a; //Declarao de varivel
do { scanf(%d,&a); if (a !=0) { printf(%d\n,a+1); } }while(a != 0); printf(Digite um nmero:\n); for(a=1;a<=10;a=a+1) { printf(%d %f %f\n,a,sqrt(a),pow(a,2)); }

Escrever um programa que l um conjunto de valores, imprimindo, para cada valor: seu quadrado, seu cubo e sua raiz quadrada. O conjunto finalizado com o valor zero.

Ler um valor enquanto <> 0 Calcular e imprimir o quadrado do valor Calcular e imprimir o cubo do valor Calcular e imprimir a raiz quadrada do valor
double pow(double base, double exp); Potenciacao: pow(9,2) =81 double sqrt(double num); Raiz quadrada: sqrt(9.0) = 3.0.

#include <stdio.h> #include <stdlib.h> #include <iostream.h> int main() { float media,v1,v2; //Declarao de varivel do { printf("digite dois valores\n"); scanf("%f",&v1); scanf("%f",&v2); if ((v1 != 0) || (v2 != 0)) { media = (v1+v2) /2; printf("A MEDIA E %f \n", media ); } } while ((v1 != 0) || (v2 != 0)); system("PAUSE"); return (0); }

#include <stdio.h> #include <stdlib.h> #include <iostream.h> #include <math.h> int main(){ float raiz,valor,potencia2,potencia3; //Declarao de varivel do { printf("digite um valor\n"); scanf("%f",&valor); if (valor != 0) { raiz = sqrt(valor); potencia2 = pow(valor,2); potencia3 = pow(valor,3); printf("%2.1f,%2.1f,%2.1f \n", raiz, potencia2,potencia3 ); } } while (valor !=0); system("PAUSE"); return (0); }

double pow(double base, double exp); Potenciacao: pow(9,2) =81 double sqrt(double num); Raiz quadrada: sqrt(9.0) = 3.0.

Exerccios
1- Escrever um programa que l um conjunto de valores, imprimindo, para cada valor: seu quadrado, seu cubo e sua raiz quadrada. O conjunto finalizado com o valor zero. 2- Escreva um programa que leia um nmero inteiro positivo e mostre o seu fatorial. 3- Escreva um programa que leia um nmero inteiro e indique se o mesmo primo ou no. 4 Aprimore o programa 3, para que ele imprima os 20 primeiros nmeros primos. 5 - Escrever um programa que calcula e escreve o produto dos nmeros primos entre 92 e 1478. 6 - Definir um programa que receba uma srie de pares de nmeros, e para cada par calcule a mdia aritmtica, imprimindo o resultado. A srie termina quando for lido o par 0,0.

Exerccios
7- Ler m e escrever m linhas com i asteriscos alinhadas pela esquerda, onde i corresponde ao nmero da linha corrente. Exemplo: Para m=6 a sada do programa deve ser * ** *** **** ***** ****** 8- Chico tem 1,50 metro e cresce 2 centmetros por ano, enquanto Z tem 1,10 metro e cresce 3 centmetros por ano. Construa um programa que calcule e imprima quantos anos sero necessrios para que Z seja maior que Chico.

Anda mungkin juga menyukai