Sunteți pe pagina 1din 15

Linguagem C

(Repeties)

Prof.: Carlos Maurcio Nascimento


mauricio@iff.edu.br

By Mark Douglas

Agenda
Definio;
O comando while;
Estrutura Geral de um Lao;
O comando for;
O comando do-while.
By Mark Douglas

Definio
Repetio o mecanismo que nos
permite requisitar que um conjunto de
instrues seja executado repetidamente,
at que uma condio seja alcanada.
Repeties so programadas por meio da
construo de laos ou ciclos (em ingls,
loops).

By Mark Douglas

O Comando while

O comando while repete a execuo de um


blocos de comandos enquanto a condio for
satisfeita
Quando a condio no (ou passa a no ser)
verdadeira, a execuo do programa continua nos
comandos aps o bloco do while.
By Mark Douglas

Exemplo do While
Funo que retorna a n! (fatorial de
n), onde:

By Mark Douglas

Estrutura Geral de um Lao

Na maioria das vezes, na construo de


uma lao temos trs expresses que o
controlam:
1.

Uma expresso inicial, avaliada antes da


execuo do bloco de comandos do lao;

2.

Uma expresso booleana, avaliada antes


de cada execuo do bloco de comandos
do lao, que determina se o bloco deve
ou no ser executado;

3.

Uma expresso de atualizao, avaliada


no final de cada execuo do bloco do
lao.

By Mark Douglas

O Comando for

O comando for agrupa as trs


expresses da estrutura geral e cria
um lao.
Todas as trs expresses so opcionais
Loop eterno: for( ; ; )

By Mark Douglas

Exemplo do for
Programa que imprime os inteiros de 0 a 99:

Funo que calcular a fatorial:

By Mark Douglas

O Comando do-while

O while e for so equivalentes. Ambos avaliam a expresso


booleana que controla a execuo do bloco no incio do lao.
O comando do-while, a expresso booleana avaliada no
final do lao
O bloco executado pelo menos uma vez;
til quando precisamos executar um passo da iterao antes
de avaliar a condio de repetio.

By Mark Douglas

Exemplo do do-while
Abaixo o lao executado at que
seja digitado um nmero positivo:
do{
printf("Digiteumnmeropositivo:");
scanf("%f",&num);
}while(num<=0.0);

By Mark Douglas

Exerccios
1.

O mximo divisor comum de trs nmeros inteiros positivos,


MDC(x,y,z), igual a MDC(MDC(x,y),z). Escreva um programa que
capture trs nmeros inteiros fornecidos via teclado e imprima o MDC
deles, usando uma funo int MDC(int x, int y) que calcula o
MDC usando o algoritmo de Euclides. Este algoritmo e baseado no
fato de que se o resto da diviso de x por y, representado por r, for
igual a zero, y o MDC. Se o resto r for diferente de zero, o MDC de x
e y e igual ao MDC de y e r. O processo se repete ate que o valor do
resto da diviso seja zero, o que garantidamente ira acontecer pois,
no caso extremo, chegaremos ao valor do MDC de um valor n e 1,
que vale 1. A tabela a seguir exemplifica o algoritmo de Euclides.

By Mark Douglas

Exerccios
2.

Faa um programa que leia um nmero inteiro positivo, n, do


teclado e determine se este nmero primo ou no. Como
se sabe, um nmero dito primo se for divisvel apenas pelo
nmero 1 e pelo prprio numero, sendo que o nmero 1 no
primo. Faa o algoritmo mais eficiente possvel.

3.

Considerando a funo que determina se um dado nmero


ou no primo, escreva um programa para:
a)
b)

Imprimir todos os nmeros primos menores que um valor x,


fornecido via teclado;
Imprimir os primeiros n nmeros primos, onde n e fornecido via
teclado.

By Mark Douglas

Exerccios
4.

Faa um programa para calcular o n-simo termo da srie


de Fibonacci. Para tal crie uma funo int fibonacci(int n)
que retorna o n-simo termo, especificado pelo parmetro
n. Na srie de Fibonacci, o primeiro termo 0 (zero), o
segundo 1 (um), e os demais termos representam a soma
dos dois termos anteriores. Os valores da srie so os
seguintes: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...

5.

Considerando a funo que avalia o valor do n-simo termo


da srie de Fibonacci, escreva um programa para:
a)
b)

Imprimir os primeiros n termos da srie, onde n e fornecido via


teclado;
Determinar se um dado valor x, fornecido via teclado, pertence
ou no a srie.

By Mark Douglas

Exerccios
6.

Fazer um programa que fornece uma aproximao do valor de (pi).


O valor de pode ser avaliado a partir da srie apresentada abaixo.
Deve ser criada uma funo que recebe como parmetro o nmero
de termos da srie, n, que se deseja usar na avaliao. A srie pode
escrita como o somatrio a seguir.

7.

A raiz quadrada de um nmero, n, pode ser avaliada atravs do


seguinte algoritmo: escolhe-se inicialmente um valor inicial qualquer,
x0. O valor escolhido no relevante. Podemos, por exemplo,
escolher x0 = 1. A partir do valor inicial, avaliamos repetidas vezes
um prximo valor atravs da expresso abaixo, at que o valor de x i
aproxime o valor de n dentro de uma certa tolerncia. Usando a
construo do-while, implemente uma funo para calcular a raiz
quadrada de um nmero real dentro de uma determinada tolerncia.
Para verificar se o erro na avaliao da raiz quadrada esta dentro da
tolerncia, basta verificar se |(xi * xi) n| < tol.

By Mark Douglas

Reconhecimento
Esta apresentao foi baseada nas
notas de aula dos professores
Waldemar Celes e Roberto
Ierusalimschy, do Departamento de
Informtica da PUC-Rio.

By Mark Douglas

S-ar putea să vă placă și