O documento fornece respostas detalhadas para 10 exercícios de programação em Pascal, incluindo códigos-fonte completos para cada um. As respostas abordam tópicos como contagem, média, fatorial, operações aritméticas, maior valor, pulverização agrícola e eleições.
2. Respostas dos Exercícios
As respostas a seguir referem-se aos
exercícios propostos na aula 06 de
Algoritmos e Programação e estão
apresentadas na linguagem Pascal,
preparando-os para o teste a ser aplicado na
semana de 04 a 08 de outubro de 2010;
Bons estudos !
3. Exercícios
1)
Program Contagem;
uses CRT;
var inicio, fim:integer;
Begin
write('Digite o número inicial da contagem:');
readln(inicio);
write('Digite o número final da contagem:');
readln(fim);
while (inicio <= fim) do
begin
writeln(inicio);
inicio := inicio + 1;
end;
End.
4. Exercícios
2)
Program Media;
uses CRT;
var nome:string;
nota1, nota2, media:real;
contador:integer;
Begin
contador := 1;
while (contador <= 3) do
begin
write('Digite o nome do aluno:');
readln(nome);
write('Digite a primeira nota:');
readln(nota1);
write('Digite a segunda nota:');
readln(nota2);
media := ((nota1 + nota2*2)/3);
writeln('O aluno ', nome, ' teve média ', media:10:2);
contador := contador + 1;
end;
End.
Obs: a notação media:10:2 é usada no Pascal para indicar que o número contido na variável media deve ser escrito com
precisão de até 10 números e 2 casas decimais (se, por exemplo, o número for 6,66666..., ele mostra 6,67);
5. Exercícios
3)
Program Fatorial;
uses CRT;
var numero, resultado:integer;
resposta:string;
Begin
repeat
write('Digite um numero:');
readln(numero);
resultado := 1;
while (numero > 1) do
begin
resultado := resultado * numero;
numero := numero - 1;
end;
writeln('Fatorial:',resultado);
write('Outro numero (sim/não) ?');
readln(resposta);
until (resposta = 'não');
End.
6. Exercícios
4)
Program Operacoes_Aritmeticas;
uses CRT;
var n1,n2,opcao:integer;
Begin
write('Digite um numero:');
readln(n1);
write('Digite outro numero:');
readln(n2);
repeat
clrscr; {comando que limpa a tela}
writeln('1 - Soma dos números;');
writeln('2 - Multiplicação dos números;');
writeln('3 - Média dos números;');
writeln('4 - Finalizar;');
write('Digite uma opção:');
readln(opcao);
case opcao of
1: writeln('Soma = ',n1 + n2);
2: writeln('Multiplicação = ', n1 * n2);
3: writeln('Média = ', (n1 + n2)/2);
else
if (opcao <> 4) then
writeln('Opção inválida!');
end;
if (opcao <> 4) then {se não for finalizar}
readkey; {congela a tela para ver o resultado da operação escolhida}
until (opcao = 4);
End.
7. Exercícios
5)
Program Maior_Valor;
uses CRT;
var numero, maior, contador:integer;
Begin
write('Digite um numero:');
readln(numero);
maior := numero;
contador := 1;
repeat
write('Digite outro numero:');
readln(numero);
if (numero > maior) then
maior := numero;
contador := contador + 1;
until (contador = 10);
write('O maior é ',maior);
End.
8. Exercícios
6)
Program Pulverizacao;
uses CRT;
var insc:string; // caso queira, pode ser integer também
area, custo:real;
tipo:integer;
Begin
repeat
write('Digite o numero de inscrição:');
readln(insc);
if (insc <> '9999') then
begin
write('Digite o tipo de pulverização (1,2,3 ou 4):');
readln(tipo);
write('Digite a área:');
readln(area);
case tipo of
1: custo := area * 50;
2: custo := area * 100;
3: custo := area * 150;
4: custo := area * 250;
end;
if (area > 100) then
custo := custo * 0.9; // desconto de 10%
writeln(insc, ' - ', custo:10:2);
end;
until (insc = '9999');
End.
9. Exercícios
7)
Program Eleicoes;
uses CRT;
var A, B, C, TotalA, TotalB, TotalC, Brancos, Nulos,
TotalBrancos, TotalNulos, maior:integer;
secao:string;
Begin
TotalA := 0;
TotalB := 0;
TotalC := 0;
TotalBrancos := 0;
TotalNulos := 0;
10. Exercícios
7) Continuação ...
repeat
write('Digite seção:');
readln(secao);
if (secao <> '0') then
begin
write('Votos de A:');
readln(A);
write('Votos de B:');
readln(B);
write('Votos de C:');
readln(C);
write('Votos Brancos:');
readln(Brancos);
write('Votos Nulos:');
readln(Nulos);
TotalA := TotalA + A;
TotalB := TotalB + B;
TotalC := TotalC + C;
TotalBrancos := TotalBrancos + Brancos;
TotalNulos := TotalNulos + Nulos;
end;
until (secao = '0');
11. Exercícios
7) Continuação ...
writeln('Total de votantes:',(TotalA + TotalB + TotalC + TotalBrancos + TotalNulos));
writeln('Total votos A:',TotalA);
writeln('Total votos B:',TotalB);
writeln('Total votos C:',TotalC);
writeln('Total votos Brancos e Nulos:',TotalBrancos + TotalNulos);
writeln('Total votos válidos:',TotalA + TotalB + TotalC);
if ((TotalA > TotalB) And (TotalA > TotalC)) then
begin
writeln('A Venceu!');
maior := TotalA;
end
else
begin
if ((TotalB > TotalA) And (TotalB > TotalC)) then
begin
writeln('B Venceu!');
maior := TotalB;
end
else
begin
writeln('C Venceu!');
maior := TotalC;
end;
end;
12. Exercícios
7) Continuação ...
if ((TotalBrancos + TotalNulos) < (TotalA + TotalB + TotalC)) then
writeln('Eleição Válida!')
else
writeln('Eleição Inválida!');
if (maior > ((TotalA + TotalB + TotalC)/2)) then
writeln('Não haverá 2º turno')
else
writeln('Haverá 2º turno');
End.
13. Exercícios
8)
Program Impares;
uses CRT;
var numero:integer;
Begin
numero := 0;
while (numero <= 100) do
begin
if ((numero mod 2) <> 0) then
writeln(numero);
numero := numero + 1;
end;
End.
14. Exercícios
9)
Program Investimento;
uses CRT;
var valor:real;
opcao:integer;
Begin
repeat
write('Digite o valor que deseja investir:');
readln(valor);
if (valor > 0) then
begin
if (valor >= 2500) then
writeln('CDBs:', (valor + valor * 1.5/100):10:2);
if (valor >= 1000) then
writeln('Fundos de Renda Fixa:', (valor + valor * 1/100):10:2);
if (valor >= 100) then
writeln('Poupança:', (valor + valor * 0.5/100):10:2);
end;
until (valor <= 0);
End.
15. Exercícios
10) Analise o seguinte algoritmo:
Algoritmo Prova01;
A, B, C, D, E, F :inteiro;
Inicio ler(B);
E ← 0;
F ← 1;
C ← 1;
A ← 1;
repita
escrever(F);
D ← F;
F ← F + E;
E ← D;
D ← F * F;
C ← C + D;
A ← A + 1;
até (A >= B);
Fim.
Com base no algoritmo acima, e supondo que o valor fornecido para “B” na linha “ler(B)”
seja 7, qual sequencia de valores o algoritmo apresentará como saída na linha
“escrever(F)”? RESPOSTA: 1 1 2 3 5 8