Академический Документы
Профессиональный Документы
Культура Документы
2011-1
1/58
Motiva c ao
2/58
Motiva c ao (cont.)
Como imprimir os 100 primeiros n umero mpares?
# include < stdio .h > int main ( void ) { printf ( " %d \ n " , 1); printf ( " %d \ n " , 3); printf ( " %d \ n " , 5); printf ( " %d \ n " , 7); printf ( " %d \ n " , 9); printf ( " %d \ n " , 11); printf ( " %d \ n " , 13); // v a rios comandos depois printf ( " %d \ n " , 199); return 0; }
3/58
Motiva c ao (cont.)
As estruturas de repeti c ao s ao um recurso que permite que a execu c ao de um certo segmento do c odigo de um programa seja repetida um certo n umero de vezes. Na linguagem C existem tr es estruturas de repeti c ao:
o comando while, o comando do while e, o comando for
4/58
Motiva c ao (cont.)
Uma professora ordenou a uma aluna que estava jogando avi oes de papel durante a aula que ela escrevesse 500 vezes a frase: N ao devo jogar avi oes de papel durante a aula.
5/58
Motiva c ao (cont.)
6/58
Motiva c ao (cont.)
7/58
Estruturas de repeti c ao
S ao muito comuns as situa c oes em que se deseja repetir um determinado trecho de um programa um certo n umero de vezes. As estruturas de repeti c ao s ao muitas vezes chamadas de la cos ou tamb em de loops. O corpo da estrutura de repeti c ao e o comando cuja execu c ao deve ser repetida.
8/58
La cos contados:
Conhecimento pr evio de quantas vezes o comando no interior da constru c ao ser a executado;
La cos condicionais:
N ao se conhece de antem ao o n umero de vezes que o conjunto de comandos no interior do la co ser a repetido. Amarrado a uma condi c ao sujeita ` a modica c ao pelas instru c oes do interior do la co.
9/58
O comando no corpo da estrutura de repeti c ao deve de alguma maneira inuenciar na avalia c ao da condi c ao, de forma que em algum momento ela tenha um valor falso, fazendo com que as repeti c oes sejam encerradas. Geralmente a condi c ao depende de uma vari avel que est a associada a um comando que a atualiza no corpo do la co. Caso isso n ao ocorra, o programa car a repetindo indenidamente este la co, gerando um la co innito, e nunca terminar a de um modo normal.
10/58
O comando while
O comando while permite que um segmento do programa seja executado repetidas vezes, enquanto uma certa condi c ao for verdadeira. A forma do comando while e a seguinte:
while ( condi c~ ao ) comando
Se houver v arios comandos a serem repetidos, deve-se inseri-los em um comando de bloco no corpo do while:
while ( condi c~ ao ) { comando1 comando2 comandon }
11/58
12/58
condi c ao F
comando
13/58
Lembre-se que:
O comando while dene uma estrutura de repeti c ao na qual: o n umero de repeti c oes pode n ao ser conhecido a priori, a repeti c ao ser a controlada pelo valor de uma express ao condicional.
14/58
15/58
# include < stdio .h > int main ( void ) { int num = 1; while ( num <= 20) { printf ( " %d \ n " , num ); num = num + 1; } return 0; }
16/58
17/58
19/58
21/58
Escrever um programa que calcula a idade m edia de um grupo de pessoas. O usu ario dever a informar o n umero de pessoas e em seguida as idades de cada uma delas.
23/58
Escreva um programa em C para calcular o fatorial de um n umero inteiro e positivo fornecido pelo usu ario do programa.
25/58
Escreva uma aplica c ao que conte a quantidade de n umeros pares e mpares digitados por um usu ario. O usu ario pode digitar quantos n umeros quiser, e pode encerrar o programa quando desejar.
27/58
28/58
Dado um pa s A, com 5.000.000 habitantes e uma taxa de crescimento de 3 % ao ano, e um pa s B com 7.000.000 habitantes e uma taxa de crescimento de 2 % ao ano. Construa um algoritmo que calcule e imprima quanto tempo e necess ario para que a popula c ao do pa s A ultrapasse a popula c ao do pa s B .
29/58
O comando do while
Efetua um teste l ogico no nal de um la co, vericando se e permitido ou n ao executar novamente o comando no interior do mesmo. Na constru c ao do-while o corpo e executado uma ou mais vezes (ou seja, pelo menos uma vez). Na constru c ao while o corpo e executado zero ou mais vezes.
31/58
Se houver v arios comandos a serem repetidos, deve-se inseri-los em um comando de bloco no corpo do do while:
do { comando1 comando2 comandon } while ( condi c~ ao )
32/58
O funcionamento e o seguinte: 1. Executa o comando no corpo do do while. 2. Avalia a condi c ao. 3. Analisa o seu resultado:
3.1 se o valor da condi c ao for verdadeiro ent ao volta ao passo 1 3.2 se o valor da condi c ao for falso ent ao termina o comando do while.
33/58
comando
condi c ao F
34/58
A convers ao de graus fahrenheit para cent grados e obtida pela f ormula 5 C = (F 32) 9 Escreva um algoritmo que calcule e exiba uma tabela de graus cent grados em fun c ao de graus fahrenheit que variem de 150 at e 50 de 0,5 em 0,5.
35/58
int main ( void ) { double F = 150; double C ; printf ( " %12 s %12 s \ n " , " Fahrenheit " , " Centigrados " ); do { C = 5.0/9.0 * ( F - 32.0); printf ( " %12.2 f %12.2 f \ n " , F , C ); F -= 0.5; } while ( F >= 50); return 0; }
36/58
Escrever um programa para ler as idades de um grupo de pessoas e calcular a idade m edia. A naliza c ao da entrada das idades e dada por um valor negativo (uma idade inv alida).
37/58
40/58
43/58
O comando for
La cos contados s ao u teis quando se conhece previamente o n umero exato de vezes que se deseja executar um determinado comando. O comando for e uma estrutura de repti c ao dotada de mecanismos para contar o n umero de vezes que o corpo do la co e executado.
44/58
Se houver v arios comandos a serem repetidos, deve-se inseri-los em um comando de bloco no corpo do while:
for ( inicializa c~ ao ; condi c~ ao ; passo ) { comando1 comando2 comandon }
45/58
46/58
inicializa c ao
condi c ao F
comando
incremento
47/58
48/58
# include < stdio .h > int main ( void ) { int i ; for ( i = 0; i < 10; i ++) printf ( " %d " , i ); return 0; }
49/58
50/58
# include < stdio .h > int main ( void ) { int i ; for ( i = 9; i >=0; i - -) printf ( " %d " , i ); return 0; }
51/58
52/58
O comando break
Usando o comando break, podemos sair de um loop mesmo que a condi c ao ainda e verdadeira. Pode ser usado para terminar um loop innito. Por exemplo, podemos interromper a contagem regressiva antes do seu nal.
54/58
55/58
O comando continue
O comando continue faz com que o programa ignore o restante dos comandos do bloco. como se o m do bloco tivesse sido alcan E cado. O programa salta para o in cio da pr oxima itera c ao.
56/58
FIM
58/58