Aula 4
-------------------------------------------
Instruções de ciclo: while, do...while, for
Exercícios
-------------------------------------------
(Até agora...) o que pode ser uma instrução?
--------------------------------------------
- atribuição
- if(...) <inst>
- if(...) <inst> else <inst>
- ; (instrução nula)
- {<inst> <inst> ... <inst>}
(instrução composta: 0 ou mais instruções)
- return <expressão>;
----------------------------------
Exemplo:
if(x>2) {x++; y--;}
if(x>2) {}
if(x>2) {} else y--;
{scanf("%d",&x); {x*=2; printf("%d\n",x);}}
---------------------------------
Exercício
1) O que está mal? Comente...
a) if(x>2) x=5
b) if x>2 x==5;
---------------------------------
Instruções de ciclo, 3 variedades
TIPO EXEMPLO
----------------------------------------------------
while(<exp. cond>) <inst> while(x>2){
x--;
scanf("%d",&n);
s+=n;
}
do <inst> while(<exp. cond>) do x+=2; while(x<10)
(comparar com
while(x<10) x+=2;)
for(...;...;...) <inst> s=0;
for(i=0;i<10;i++)
s+=i;
(valor final de s??)
2) Exercício, valores finais...
----------------------------
a) while(s>0) x+=2; início: s=1, x=0. Fim?
b) do s=s+1; while(s>0); início: s=-3, Fim?
c) while(s>0) do s=s+1; início: s=-3, Fim?
d) for(i=0;i<=5;i++) s*=2; início: s=1, Fim?
Exemplo:
a) programa que, dado m, calcula e imprime 1+2+...+m
s=0; // soma a calcular
i=0; // num. de termos já somados (ou s=1,i=1)
while(...)
...
printf
b) com... for(...;...;...)
Exercícios
----------
3) Ler uma sequência de números terminada por 0 (que já não faz parte
da sequência). Imprimir (3 programas distintos)
a) a soma deles
b) O maior deles
c) O segundo maior deles.
Num só programa (que leia is dados uma só vêz!), imprimir os 3 valores
referidos.
4) Ler n e n números.
Imprimir (3 programas distintos)
a) a soma deles
b) O maior deles
c) O segundo maior deles.
5) a) Calcular o maior divisor comum entre a e b.
Método: procurar o maior inteiro d, 1 <= d <= min(a,b),
que divide a e b.
b) Calcular o menor múltiplo comum entre a e b.
6) Traduzir uma instrução
for(E1;E2;E3) I
numa instrução "while".
7) Escrever um programa que, dado n, determina a soma de todos
os termos i+j com 1 <= i < j <= n.
Por exemplo, para n=4, a soma obtida deve ser
30 = (1+2)+(1+3)+(1+4)+(2+3)+(2+4)+(3+4).
PC/PI - página reservada - versão 2005.02.08