Exercícios de revisão
Prof. Luis Otavio Alvares
Considerando A=1, B=5 e C=-1, dizer se é verdadeiro ou
falso:
1. (A + B) > (C + 5)
2. (A>=1) e (C>0)
3. (A<=A) ou (B<C)
Para que valores de A as expressões abaixo são verdadeiras?
1. (A<1) e (A>10)
3. (A>1) e (A<10)
4. (A>1) ou (A<10)
2. (A<1) ou (A>10)
Dado o algoritmo abaixo, que valores serão mostrados?
Início
A3
B5
CA + B – 6
se A > C
então C C- B
senão B  1
Se A > B
então se B > C
então A  20
senão C  10
senão A  A + 5
mostrar A,B,C
fim
Dado o algoritmo abaixo, que valores serão mostrados?
início
A0
enquanto A <= 0 faça
AA+1
BA+1
CA+B*2
mostrar A,B,C
fim
Dado o algoritmo abaixo, que valores serão mostrados?
Início
A, B, I: inteiro
R: real
B  2
A  3
R  20
para I=1 até 3 faça
A  A * I
B  B + I
R  R / 2 * I
se A > 10
então B  B - 1
mostrar A,B,R
fim
Dado o algoritmo abaixo, que valores serão mostrados?
Início
A = 3
B = 2
para I=1 até 2 faça
inicio
A = A * I
para K=1 até I faça
inicio
B = B+K
se I > 1 então A=A-1
fim
B = B+I
fim
mostrar A,B
fim
Corrija os seguintes trechos, se e onde julgar
necessário:
a)
Var temp_max: real;
begin
....
write(“Temperatura Máxima = ”, temp_max);
....
c)
Var val: integer;
begin
Readln(‘informe o valor: ‘, val);
...
b)
Var ano: integer;
begin
...
If (ano mod 4 = 0) and (ano mod 400 : = 0)
Then writeln(‘Ano bissexto!’);
....
d)
Var indice: real
Begin
…..
if indice > 0.3
then writeln(‘Parar grupo1’);
if indice > 0.5
then writeln(‘Parar grupos 1 e 2’);
else writeln(‘Parar os 3 grupos’);
...
Seja o trecho de programa:
Var soma, valor: real;
begin
soma := 0;
readln(valor);
while valor > 0
do begin
soma := soma + valor;
readln(valor);
end;
....
Indique a seguir, em cada caso, o valor, ou valores, fornecido(s) pelo usuário
(comando readln(valor)), que faça(m) com que o trecho do comando
while acima (em vermelho) seja executado:
uma vez:
nenhuma vez:
duas vezes:
Exercício
• Fazer um algoritmo (e também um programa Pascal) que leia
um valor (X) e depois calcule e escreva o resultado do seguinte
somatório:
25. X 24. X 23. X 22. X
1. X



 ... 
1
2
3
4
25
Exemplo de solução em Pascal:
Program exerRevisao1;
Var
X,soma:real;
I,sinal:integer;
begin
soma:=0;
sinal:=1;
write('Informe o valor de X: ');
readln(X);
for I:=1 to 25
do begin
soma:=soma + sinal*(26-I)*X/I;
sinal:=sinal*-1;
end;
writeln('O valor do somatorio eh: ',soma:1:10);
readln;
end.
Exercício
• Define-se um número perfeito como aquele em que a soma dos seus
divisores positivos, exceto o próprio, é igual a ele mesmo.
Exemplos: 6 (1+2+3) e 28 (1+2+4+7+14).
Desenvolva um algoritmo que informe se um número inteiro lido é perfeito
ou não. Escreva também um programa Pascal para resolver o problema.
Exemplo de solução em Pascal:
Program nroPerfeito;
Var
I,soma,X:integer;
begin
soma:=0;
write('Informe o numero: ');
readln(X);
for I:=1 to X-1
do if X mod I = 0 then begin
soma:=soma+I;
writeln('
', I);
end;
if soma=X
then writeln('O numero ', X, ' eh um numero perfeito')
else writeln('O numero ', X, ' nao eh um numero
perfeito');
readln;
end.
• Escreva um algoritmo (e um programa pascal) para
mostrar os números inteiros cujo fatorial seja menor
que 1.000.000.
Exemplo de solução
program fatorial_menor_100000;
var N,I,fat:integer;
begin
N:=1;
repeat
fat:=1;
for I:= 1 to N do fat:=fat*I;
if fat < 1000000 then writeln(N,' cujo fatorial eh ',fat);
N:=N+1;
until fat >=1000000;
readln;
end.
Outra solução
program fatorial_menor_1000000;
var N,I,fat:integer;
begin
N:=1;
fat:=1;
while fat <1000000
do begin
fat:=1;
for I:= 1 to N do fat:=fat*I;
if fat < 1000000 then writeln(N,' cujo fatorial eh ',fat);
N:=N+1;
end;
readln;
end.
Exercício
Foi realizada uma pesquisa em Florianópolis, com um número
desconhecido de pessoas. De cada entrevistado foram colhidos
os seguintes dados:
- clube de preferência (1-Avaí; 2-Figueirense; 3-Outros);
- salário;
- naturalidade (0-Florianópolis; 1-Outras).
Deseja-se saber:
1) percentual de torcedores por clube;
2) média salarial dos torcedores do Avaí e do Figueirense;
3) número de pessoas nascidas em Florianópolis que não torcem
por nenhum dos dois primeiros clubes;
4) número de pessoas entrevistadas.
Desafio:
Escrever um algoritmo que lê um valor no caixa
eletrônico e calcula o número de cédulas de R$ 100,
R$ 50,00, R$ 20,00, R$ 10,00, R$ 5,00 e R$ 2,00
necessárias para que o caixa eletrônico efetue o
pagamento do valor sacado ao cliente. Deve-se
utilizar o menor número possível de cédulas.
program caixaEletronico;
var
Valor,cem,cinquenta,vinte,dez,cinco,dois,resto:integer;
Begin
write('Informe o valor da retirada: ');
readln(valor);
if (valor=1) or (valor=3)
then writeln(' Retirada impossivel pois nao temos moedas')
else begin
if valor mod 2 = 1
then begin
cinco:=1;
resto:=valor-5;
end
else begin
cinco:=0;
resto:=valor;
end;
{continua no próximo slide}
Cem:=resto div 100;
resto:=resto mod 100;
cinquenta:=resto div 50;
resto:=resto mod 50;
vinte:=resto div 20;
resto:=resto mod 20;
dez:=resto div 10;
resto:= resto mod 10;
dois:=resto div 2;
writeln('cedulas: ');
writeln('100: ',cem);
writeln(' 50: ',cinquenta);
writeln(' 20: ',vinte);
writeln(' 10: ',dez);
writeln(' 5: ',cinco);
writeln(' 2: ',dois);
readln;
end;
end.
Download

Exercícios revisão