Click here to load reader

Comandos de Repetição -Laços - ebrito.com.br · Comandos de Repetição -Laços •Os comandos de repetição possibilitam que um conjunto de comandos possam ser repetidos seguindo

  • View
    231

  • Download
    1

Embed Size (px)

Text of Comandos de Repetição -Laços - ebrito.com.br · Comandos de Repetição -Laços •Os comandos...

Comandos de Repetio - Laos

Os comandos de repetio possibilitam que um

conjunto de comandos possam ser repetidos

seguindo uma determinada regra ou condio.

alguns comandos repetem um conjunto de instrues

enquanto uma condio satisfeita,

outros repetem at que a condio seja satisfeita

e outros repetem um determinado nmero de vezes.

Cada repetio executada chamada de iterao.

Agora, vamos visualizar a seguinte situao:

temos um lao que gira em torno de uma

varivel. O valor da varivel inicia com um

determinado valor, este valor aumentado ou

diminudo em uma unidade a cada iterao e

quando atinge um determinado valor limite, o

lao finalizado. O comando para este fim o

para faa.

Comandos de Repetio - Laos

Em Pascal to indica que a varivel aumenta a

cada iterao e downto que diminui.

Em C o comando para faa bastante

poderoso, permite a inicializao e atualizao

de vrias variveis e permite condies de

continuao que no necessariamente

estejam relacionadas s variveis.

Comandos de Repetio - Laos

Um exemplo simples o de uma contagem a ser impressa na tela. Uma varivel comea em um determinado valor, a cada iterao impressa na tela e incrementada e quando atinge o valor limite, o lao finalizado. No lao seguinte a contagem feita em forma decrescente.

Exemplo

Exemplo

Exemplo

ExerccioFaa um programa em C para escrever a tabuada de um

nmero digitado.

Faa um programa em C para escrever os pares at 10

Faa um programa em C para clculo do fatorial de um

nmero digitado.

Faa um programa em C que obtenha a idade da 10

pessoas. Exibir a mdia de idade, a maior e menor

idade

ExerccioFaa um programa em C para escrever a

tabuada de um nmero digitado.#include

#include

int main (void)

{

int n,cont;

printf("Digite um nmero");

scanf("%d", &n);

for (cont=0;cont

ExerccioFaa um programa em C para escrever os pares

at 10#include

#include

#include

int main (void)

{

setlocale(LC_ALL,"");

int cont;

printf("Pares at 10\n");

for (cont=0;cont

ExerccioFaa um programa em C para clculo do fatorial

de um nmero digitado.#include

int main (void)

{

int i,n,f = 1;

printf("Digite um nmero inteiro no negativo:");

scanf("%d", &n);

for (i = 1; i

ExerccioFaa um programa em C que obtenha a idade da 10 pessoas.

Exibir a mdia de idade, a maior e menor idade.

#include

#include

int main (void)

{

int soma=0,i,cont,maior=0,menor=200;

for (cont=1;cont

Enquanto...faa

O comando enquanto faa realiza as

iteraes enquanto uma condio for

satisfeita.

O teste da condio feito antes de executar a

iterao, por isso um comando enquanto

faa pode no ter sequer uma iterao

realizada, quando logo no incio a condio

resulta em falso.

Exemplo

O programa pede o nmero de caracteres que o usurio deseja digitar e permite que o usurio entre com esta quantia de caracteres.

Exemplo

Exemplo

Exemplo

#include

int main (void)

{

int i=0;

printf("Contagem crescente:");

while(i=0)

{

printf("%i ",i);

i--;

}

return 0;

}

Exerccio Faa um programa para clculo do fatorial de

um nmero utilizando while.

#include

int main (void)

{

int i;

int n;

int f = 1;

printf("Digite um nmero:");

scanf("%d", &n);

/* calcula fatorial */

i = 1;

Exerccio

while (i

Existem situaes em que o desejvel executar primeiro a iterao e depois testar a condio.

Para isso temos o comando faa enquanto ou repita at.

O faa enquanto realiza uma iterao e s realiza a prxima se a condio for satisfeita, enquanto que o repita at realiza uma iterao e s realiza a prxima se a condio no for satisfeita, pois at denota uma condio de terminao e no de continuao.

Pascal tem apenas o repita at e C somente o enquanto faa.

Comandos de Repetio - Laos

Exemplo

Podemos refinar o programa anterior pedindo

repetidamente que o usurio digite uma

caractere: agora a condio que quando ele

digitar o caracter 0 o programa ser finalizado.

Assim, no ser necessrio estabelecer o

nmero de caracteres digitados previamente.

Exemplo

O comando repeat until

no necessita dos

delimitadores de bloco

begin end nem quando

envolvem vrios comandos.

Exemplo

O comando do while, em

C, deve sempre ter os

delimitadores {}, ainda que

envolva um nico comando.

Exemplo

#include

int main (void)

{

int i=0;

printf("Contagem crescente:");

do

{

printf("%i ",i);

i++;

}

while(i=0);

return 0;

}

Exerccio

Alterar o programa de clculo de fatorial para

validarmos a insero do usurio, isto , o

programa repetidamente requisita a insero

de um nmero enquanto o usurio inserir um

inteiro negativo (cujo fatorial no est

definido).

Exerccio

#include

int main (void)

{

int i, n, f = 1;

/* requisita valor do usurio */

do

{

printf("Digite um valor inteiro nao negativo:");

scanf ("%d", &n);

} while (n

break e continue

So formas para a interrupo antecipada de um

determinado lao.

O comando break, quando utilizado dentro de um

lao, interrompe e termina a execuo do mesmo.

A execuo prossegue com os comandos

subsequentes ao bloco.

Exemplo

A sada deste programa, se

executado, ser:

0 1 2 3 4 fim

pois, quando i tiver o valor 5, o

lao ser interrompido e

finalizado pelo comando

break, passando o controle

para o prximo comando

aps o lao, no caso uma

chamada final de printf.

#include

int main (void)

{

int i;

for (i = 0; i < 10; i++)

{

if (i == 5)

break;

printf("%d ", i);

}

printf("fim\n");

return 0;

}

break e continue

O comando continue tambm

interrompe a execuo dos

comandos de um lao.

A diferena bsica em relao ao

comando break que o lao no

automaticamente finalizado.

O comando continue interrompe a

execuo de um lao passando

para a prxima iterao.

Exemplo:

#include

int main (void)

{

int i;

for (i = 0; i < 10; i++ )

{

if (i == 5) continue;

printf("%d ", i);

}

printf("fim\n");

return 0;

}

gera a sada:

0 1 2 3 4 6 7 8 9 fim

Exerccios

Ache o primeiro nmero, entre 1 e 1 milho que

divisvel por 11, 13 e 17. Use o comando

BREAK.

Faa um programa que some todos os nmeros,

de 1 at 100, exceto os mltiplos de 5.

Ache o primeiro nmero, entre 1 e 1 milho que

divisvel por 11, 13 e 17. Use o comando BREAK.

#include

int main() {

int cont, numero;

for(cont=1 ; cont

Faa um programa que some todos os nmeros,

de 1 at 100, exceto os mltiplos de 5.

#include

int main()

{

int cont, soma=0;

for(cont=1 ; cont

Exerccios

Solicitar a idade de vrias pessoas e exibir:

Total de pessoas com menos de 21 anos.

Total de pessoas com mais de 50 anos.

O programa termina quando idade for =-99.

Exerccios

Correo

#include

int main()

{

int idade,contador21=0,contador50=0;

do

{printf("\n DIGITE A IDADE(PARA ENCERRAR DIGITE -99) : ");

scanf("%d",&idade);

if(idade==-99) break;

if(idade50)

contador50++;

}while(idade!=-99);

printf("\n TOTAL DE PESSOAS COM MENOS DE 21 ANOS E:%d",contador21);

printf("\n TOTAL DE PESSOAS COM MAIS DE 50 ANOS E:%d",contador50);

printf("\n\n");

return(0);

}

Exerccios

Ler um nmero do teclado:

exibir todos os nmeros de 1 at o nmero lido.

exibir o produto dos nmeros.

Receber um nmero e verificar se ele triangular. (um nmero triangular quando resultado do produto de 3 nmeros consecutivos. Exemplo: 24 = 2 * 3 * 4)

Exerccios

Correo#include

main()

{

int x, max=0, p=1;

printf("\n INFORME UM NUMERO : ");

scanf("%d",&max);

for(x=1;x

Exerccios - Correo

#include

main()

{

int num,num1,p;

num1 = 1;

printf("Digite um numero: ");

scanf("%d", &num);

p = num1 * (num1 + 1) * (num1 + 2);

while (p < num)

{

num1++;

p = num1 * (num1 + 1) * (num1 + 2);

}

if (p == num)

printf("\nE triangular.");

else

printf("\nNao e triangular.");

printf("\n");

return 0;

}