Você está na página 1de 36

Lista de Exerccios (Resolvidos) - Pascal

1. Escreva um programa em Pascal para ler, calcular e escrever a


mdia aritmtica entre dois nmeros.
program ex1;
uses crt;
var n1, n2, m: real;
begin
clrscr;
write('Informe um numero: ');
readln(n1);
write('Informe outro numero: ');
readln(n2);
m:=(n1n2)!2;
writeln('" media #: ',m:$:2);
read%e&;
end'
2. Escreva um programa em Pascal para ler um nmero positivo
qualquer, calcular e escrever o quadrado e a raiz quadrada do
mesmo.
program ex2;
uses crt;
var x, (: integer;
r: real;
begin
clrscr;
write('Informe um numero: ');
readln(x);
(:= s(r(x);
writeln(') (uadrado de ', x, ' # ', ();
if x*=$ t+en
begin
r:= s(rt(x);
writeln('" rai, (uadrada de ', x, ' # ', r:$:2);
end
else
begin
writeln('-ao existe rai, de ',x);
end;
read%e&;
end'
3. Escrever um programa em Pascal que leia 3 valores: a, b, c e
calcule e escreva a mdia aritmtica, harmnica e geomtrica
correspondente.
program ex.;
uses crt;
var a, b, c, ma, mg, m+: real;
begin
clrscr;
write('Informe o primeiro numero: ');
readln(a);
write('Informe o segundo numero: ');
readln(b);
write('Informe o terceiro numero: ');
readln(c);
ma:= (abc)!.;
m+:= .!(1!a 1!b 1!c);
mg:= exp(ln(a/b/c)/(1!.));
writeln('0edia "ritmetica: ',ma:$:2);
writeln('0edia 1armonica: ',m+:$:2);
writeln('0edia 2eometrica: ',mg:$:2);
read%e&;
end'
!. Escrever um programa em Pascal que l" o nmero de um
#uncion$rio, seu nmero de horas trabalhadas, o valor que recebe
por hora, e o nmero de %lhos com idade menor do que 1! anos e
calcula o sal$rio deste #uncion$rio.
program ex3;
uses crt;
var
nf, nfil: integer;
n+t, vp+, sf, st: real;
begin
clrscr;
write('Informe o numero do funcionario: ');
readln(nf);
write('Informe o numero de +oras trabal+adas: ');
readln(n+t);
write('Informe o valor (ue recebe por +ora: ');
readln(vp+);
write('Informe o numero de fil+os: ');
readln(nfil);
write('Informe o valor do salario familia: ');
readln(sf);
st:= n+t / vp+ nfil / sf;
writeln(') funcionario ', nf, ' recebe um salario total de 45 ',
st:$:2);
read%e&;
end'
&. Escrever um programa em Pascal que l" o nmero de um
vendedor, o seu sal$rio'%(o, o tota1 de vendas por ele e#etuadas e
o percentual que ganha sobre o total de vendas. )alcular o sal$rio
tota1 do vendedor. Escrever nmero do vendedor e o sal$rio total.
program ex6;
uses crt;
var
nv: integer;
sf, tv, per, st: real;
begin
clrscr;
write('Informe o numero do vendedor: ');
readln(nv);
write('Informe o salario fixo: ');
readln(sf);
write('Informe o total de vendas: ');
readln(tv);
write('Informe o percentual sobre as vendas: ');
readln(per);
st:= sf tv / per ! 1$$;
writeln(') vendedor ', nv, ' recebe um salario total de 45 ', st:$:2);
read%e&;
end'
*. Escrever um programa em Pascal que l" 3 valores a, b, c que s+o
lados de um tri,ngulo e calcule a $rea deste tri,ngulo.
program ex7;
uses crt;
var a, b, c, s, at: real;
begin
clrscr;
write('Informe o primeiro numero: ');
readln(a);
write('Informe o segundo numero: ');
readln(b);
write('Informe o terceiro numero: ');
readln(c);
s:= (abc)!2;
at:=s(rt(s/(s8a)/(s8b)/(s8c));
writeln('"rea do triangulo: ',at:$:2);
read%e&;
end'
-. .ma revendedora de carros usados paga a seus #uncion$rios
vendedores, um sal$rio %(o por m"s, mais uma comiss+o tambm
%(a para cada carro vendido e mais &/ do valor das vendas por ele
e#etuadas. Escrever um programa em Pascal que l" o nmero do
vendedor, o nmero de carros por ele vendidos, o valor tota1 de
suas vendas, o sal$rio %(o e o valor que recebe por carro vendido
e calcula o sal$rio mensal do vendedor, escrevendo'o 0untamente
com o seu nmero de identi%ca1+o.
program ex9;
uses crt;
var
nv, ncv: integer;
sf, tv, vpcv, st: real;
begin
clrscr;
write('Informe o numero do vendedor: ');
readln(nv);
write('Informe o numero de carros vendidos: ');
readln(ncv);
write('Informe o total de vendas: ');
readln(tv);
write('Informe o salario fixo: ');
readln(sf);
write('Informe o valor por carro vendido: ');
readln(vpcv);
st:= sf tv / 6 ! 1$$ ncv / vpcv;
writeln(') vendedor ', nv, ' recebe um salario total de 45 ', st:$:2);
read%e&;
end'
2. Escrever um programa em Pascal que l" 3 valores a, b, c, e
escreva os 3 valores em ordem crescente.
program ex:;
uses crt;
var a, b, c, aux: integer;
begin
clrscr;
write('Informe o primeiro numero: ');
readln(a);
write('Informe o segundo numero: ');
readln(b);
write('Informe o terceiro numero: ');
readln(c);
if a*b t+en
begin
aux:=a;
a:=b;
b:=aux;
end;
if a*c t+en
begin
aux:=a;
a:=c;
c:=aux;
end;
if b*c t+en
begin
aux:=b;
b:=c;
c:=aux;
end;
writeln(';alores em ordem crescente: ', a:7, b:7, c:7);
read%e&;
end'
9. Escrever um algoritmo/programa em Pascal que l um conunto de ! valores i"
a" #" c" onde i $ um valor inteiro e positivo e a" #" c" s%o quaisquer valores reais e os
escreva. & seguir'
(e i ) * escrever os + valores a" #" c em ordem crescente.
(e i ) , escrever os + valores a" #" c em ordem decrescente.
(e i ) + escrever os + valores de -orma que o maior valor entre a" #" c -ica entre os
outros ,.
program ex<;
uses crt;
var i, a, b, c, aux: integer;
begin
clrscr;
write('Informe um valor =1, 2, .>: ');
readln(i);
write('Informe o primeiro numero: ');
readln(a);
write('Informe o segundo numero: ');
readln(b);
write('Informe o terceiro numero: ');
readln(c);
if a*b t+en
begin
aux:=a;
a:=b;
b:=aux;
end;
if a*c t+en
begin
aux:=a;
a:=c;
c:=aux;
end;
if b*c t+en
begin
aux:=b;
b:=c;
c:=aux;
end;
if i=1 t+en
begin
writeln(';alores em ordem crescente: ', a:7, b:7, c:7);
end;
if i=2 t+en
begin
writeln(';alores em ordem decrescente: ', c:7, b:7, a:7);
end;
if i=. t+en
begin
writeln('0aior ;alor no meio: ', a:7, c:7, b:7);
end;
read%e&;
end'
*.. Escrever um algoritmo/programa em Pascal que l o n/mero de um vendedor
de uma empresa" seu sal0rio -ixo e o total de vendas por ele e-etuadas.
1ada vendedor rece#e um sal0rio -ixo" mais uma comiss%o proporcional 2s vendas
por ele e-etuadas.
& comiss%o $ de +3 so#re o total de vendas at$ 4 *....".. e 53 so#re o que
ultrapassa este valor.
Escrever o n/mero do vendedor" o total de suas vendas" seu sal0rio -ixo e seu
sal0rio total.
program ex1$;
uses crt;
var
nv: integer;
sf, tv st: real;
begin
clrscr;
write('Informe o numero do vendedor: ');
readln(nv);
write('Informe o total de vendas: ');
readln(tv);
write('Informe o salario fixo: ');
readln(sf);
if tv?=1$$$ t+en
begin
st:= sf tv / . ! 1$$;
end
else
begin
st:= sf (tv81$$$) / 6 ! 1$$ .$;
end;
writeln(') vendedor ', nv, ' recebe um salario total de 45 ', st:$:2);
read%e&;
end'
**. Escrever um algoritmo/programa em Pascal que l + comprimentos de lados a"
#" c e os ordena em ordem decrescente" de modo que o a represente o maior dos +
lados lidos.
6etermine" a seguir" o tipo de tri7ngulo que estes + lados -ormam" com #ase nos
seguintes casos escrevendo sempre os valores lidos e uma mensagem adequada'
(e a 8 # 9 c n%o -ormam tri7ngulo algum.
(e a, ) #, 9 c, -ormam um tri7ngulo ret7ngulo.
(e a, 8 #, 9 c, -ormam um tri7ngulo o#tus7ngulo.
(e a, : #, 9 c, -ormam um tri7ngulo acut7ngulo.
(e -orem todos iguais -ormam um tri7ngulo equil0tero.
(e a ) # ou # ) c ou a ) c ent%o -ormam um tri7ngulo is;sceles
program ex11;
uses crt;
var a, b, c, aux: integer;
begin
clrscr;
write('Informe o primeiro numero: ');
readln(a);
write('Informe o segundo numero: ');
readln(b);
write('Informe o terceiro numero: ');
readln(c);
if a?b t+en
begin
aux:=a;
a:=b;
b:=aux;
end;
if a?c t+en
begin
aux:=a;
a:=c;
c:=aux;
end;
if b?c t+en
begin
aux:=b;
b:=c;
c:=aux;
end;
if a*bc t+en
begin
writeln('-ao forma triangulo'');
end
else
begin
if s(r(a) = s(r(b)s(r(c) t+en writeln('@ormam um triangulo
retangulo'');
if s(r(a) * s(r(b)s(r(c) t+en writeln('@ormam um triangulo
obtusangulo'');
if s(r(a) ? s(r(b)s(r(c) t+en writeln('@ormam um triangulo
acutangulo'');
if (a=b) and (b=c) t+en
begin
writeln('@ormam um triangulo e(uilatero'');
end
else
begin
if (a=b) or (a=c) or (b=c) t+en writeln('@ormam um triangulo
isosceles'');
end;
end;
read%e&;
end'
*,. Escrever um algoritmo/programa em Pascal que l a <ora de incio de um ogo
e a <ora do -inal do ogo (considerando apenas <oras inteiras) e calcula a dura=%o
do ogo em <oras" sa#endo-se que o tempo m0ximo de dura=%o do ogo $ de ,!
<oras e que o ogo pode iniciar em um dia e terminar no dia seguinte.
program ex12;
uses crt;
var
+i, +f, dA: integer;
begin
clrscr;
write('Informe a +ora inicial do Aogo: ');
readln(+i);
write('Informe a +ora final do Aogo: ');
readln(+f);
if +f * +i t+en
begin
dA:=+f 8 +i;
writeln(') Aogo durou ',dA,' +oras'');
end
else
begin
dA:=+f 8 +i 23;
writeln(') Aogo durou ',dA,' +oras'');
end;
read%e&;
end'
*5. & empresa Enxuga >elo (& decidiu conceder um aumento de sal0rios a seus
-uncion0rios de acordo com a ta#ela a#aixo'
(al0rio &tual ?ndice 6e &umento
. - !..".. *53
!..".* - @..".. *,3
@..".* - *....".. *.3
*....".* - *.A..".. @3
*.A..".* - ,.5..".. !3
acima de ,.5..".. sem aumento
Escrever um algoritmo/programa em Pascal que l" para cada -uncion0rio" o seu
n/mero e o seu sal0rio atual e escreve o numero do -uncion0rio" seu sal0rio atua*"
o percentual de seu aumento e o valor do sal0rio corrigido.
program ex16;
uses crt;
var
nf: integer;
pa, sc, sa: real;
begin
clrscr;
write('Informe o numero do funcionario: ');
readln(nf);
write('Informe o salario atual: ');
readln(sa);
if sa?=3$$ t+en pa:=16;
if (sa*3$$) and (sa?=9$$) t+en pa:=12;
if (sa*9$$) and (sa?=1$$$) t+en pa:=1$;
if (sa*1$$$) and (sa?=1:$$) t+en pa:=9;
if (sa*1:$$) and (sa?=26$$) t+en pa:=3;
if (sa*26$$) t+en pa:=$;
sc:=sa sa / pa!1$$;
writeln('@uncionario: ', nf);
writeln('Balario "tual: ',sa:$:2);
writeln('Cercentual de "umento: ',pa:$:2,'D');
writeln('Balario Eorrigido: ',sc:$:2);
read%e&;
end'
end'
*@. Escrever um algoritmo/programa em Pascal que l 5 valores para a" um de
cada veB" e conta quantos destes valores s%o negativos" escrevendo esta in-orma=%o.
program ex17;
uses crt;
var i, a, cont: integer;
begin
clrscr;
cont:=0;
for i:= 1 to 5 do
begin
write('nforme um valor: '!;
readln(a!;
if a"0 t#en cont:=cont$1;
end;
writeln('%xistem ',cont,' valores negativos&'!;
read'e(;
end&
*A. Escrever um algoritmo/programa em Pascal que escreve os n/meros pares
entre *.. e ,...
program ex1);
uses crt;
var i: integer;
begin
clrscr;
writeln('*s numeros pares de 100 a +00 sao: '!;
for i:= 100 to +00 do
begin
if i mod + = 0 t#en
begin
write(i:)!;
end;
end;
read'e(;
end&
*9. Escrever um algoritmo/programa em Pascal que escreve a soma dos n/meros
entre . e *...
program ex1,;
uses crt;
var i, soma: integer;
begin
clrscr;
soma:=0;
for i:= 0 to 100 do
begin
soma:= soma $ i;
end;
writeln('- soma dos numeros de 0 a 100 e: ', soma!;
read'e(;
end&
,.. Escrever um algoritmo/programa em Pascal que escreve a soma dos n/meros
pares entre . e *...
program ex+0;
uses crt;
var i, soma: integer;
begin
clrscr;
soma:=0;
for i:= 0 to 100 do
begin
if i mod + = 0 t#en
begin
soma:= soma $ i;
end;
end;
writeln('- soma dos numeros pares de 0 a 100 e: ', soma!;
read'e(;
end&
,*. Escrever um algoritmo/programa em Pascal que escreve a soma dos n/meros
m/ltiplos de @ entre *.. e ,...
program ex+1;
uses crt;
var i, soma: integer;
begin
clrscr;
soma:=0;
for i:= 100 to +00 do
begin
if i mod 7 = 0 t#en
begin
soma:= soma $ i;
end;
end;
writeln('- soma dos numeros multiplos de 7 de 100 a +00 e: ', soma!;
read'e(;
end&
,,. Escrever um algoritmo/programa em Pascal que escreve a soma dos n/meros
que n%o s%o m/ltiplos de *+ entre *.. e ,...
program ex++;
uses crt;
var i, soma: integer;
begin
clrscr;
soma:=0;
for i:= 100 to +00 do
begin
if i mod 1. "/ 0 t#en
begin
soma:= soma $ i;
end;
end;
writeln('- soma dos numeros nao multiplos de 1. de 100 a +00 e: ', soma!;
read'e(;
end&
,+. Escrever um algoritmo/programa em Pascal que l ,. valores" um de cada veB"
e conta quantos deles est%o em cada um dos intervalos C." ,5D" (,5" 5.D" (5." @5D"
(@5" *..D" escrevendo esta in-orma=%o
program ex+.;
uses crt;
var i, x, cont1, cont+, cont., cont0: integer;
begin
clrscr;
cont1:=0; cont+:=0; cont.:=0; cont0:=0;
for i:= 1 to +0 do
begin
write('nforme um valor (01100!: '!;
readln(x!;
if (x/=0! and (x"=+5! t#en cont1:=cont1 $ 1;
if (x/+5! and (x"=50! t#en cont+:=cont+ $ 1;
if (x/50! and (x"=75! t#en cont.:=cont. $ 1;
if (x/75! and (x"=100! t#en cont0:=cont0 $ 1;
end;
writeln('2o intervalo 0 1 +5 existem ', cont1, ' numeros&'!;
writeln('2o intervalo +3 1 50 existem ', cont+, ' numeros&'!;
writeln('2o intervalo 51 1 75 existem ', cont., ' numeros&'!;
writeln('2o intervalo 73 1 100 existem ', cont0, ' numeros&'!;
read'e(;
end&
,!. Escrever um algoritmo/programa em Pascal semel<ante ao anterior que calcula
as m$dias aritm$ticas de cada intervalo e as escreve" untamente com o n/mero de
valores de cada intervalo.
program ex+0;
uses crt;
var
i, x, cont1, cont+, cont., cont0, soma1, soma+, soma., soma0: integer;
m1, m+, m., m0: real;
begin
clrscr;
cont1:=0; cont+:=0; cont.:=0; cont0:=0;
soma1:=0; soma+:=0; soma.:=0; soma0:=0;
for i:= 1 to +0 do
begin
write('nforme um valor (01100!: '!;
readln(x!;
if (x/=0! and (x"=+5! t#en
begin
cont1:=cont1 $ 1;
soma1:=soma1 $ x;
m1:=soma1 4 cont1;
end;
if (x/+5! and (x"=50! t#en
begin
cont+:=cont+ $ 1;
soma+:=soma+ $ x;
m+:=soma+ 4 cont+;
end;
if (x/50! and (x"=75! t#en
begin
cont.:=cont. $ 1;
soma.:=soma. $ x;
m.:=soma. 4 cont.;
end;
if (x/75! and (x"=100! t#en
begin
cont0:=cont0 $ 1;
soma0:=soma0 $ x;
m0:=soma0 4 cont0;
end;
end;
writeln('2o intervalo 0 1 +5 existem ', cont1, ' numeros e a media e: ', m1:0:+!;
writeln('2o intervalo +3 1 50 existem ', cont+, ' numeros e a media e: ', m+:0:+!;
writeln('2o intervalo 51 1 75 existem ', cont., ' numeros e a media e: ', m.:0:+!;
writeln('2o intervalo 73 1 100 existem ', cont0, ' numeros e a media e: ', m0:0:+!;
read'e(;
end&
,5. Escrever um algoritmo/programa em Pascal que l um n/mero e calcula e
escreve quantos divisores ele possui.
program ex+5;
uses crt;
var x, i, cont: integer;
begin
clrscr;
write('nforme um numero: '!;
readln(x!;
cont:=0;
for i:= 1 to x do
begin
if x mod i = 0 t#en cont:=cont $ 1;
end;
writeln('* numero ', x, ' possui ', cont, ' divisores&'!;
read'e(;
end&
,E. Escrever um algoritmo/programa em Pascal que l um n/mero e calcula e
escreve o seu -atorial.
program ex+3;
uses crt;
var x, i: integer;
fat: longint;
begin
clrscr;
write('nforme um numero: '!;
readln(x!;
fat:=1;
for i:= 1 to x do
begin
fat:=fat 5 i;
end;
writeln('* fatorial de ', x, ' e: ', fat!;
read'e(;
end&
,@. Escrever um algoritmo/programa em Pascal que l um n/mero e escreva se ele
F$ primoF ou Fn%o $ primoF
program ex+7;
uses crt;
var x, i, cont: integer;
begin
clrscr;
write('nforme um numero: '!;
readln(x!;
cont:=0;
for i:= 1 to x do
begin
if x mod i = 0 t#en cont:=cont $ 1;
end;
if cont"=+ t#en
begin
writeln('* numero ', x, ' e primo&'!;
end
else
begin
writeln('* numero ', x, ' nao e primo&'!;
end;
read'e(;
end&
,A. Escrever um algoritmo/programa em Pascal que escreve os n/meros m/ltiplos
de @ entre *.. e ,.." #em como a soma destes n/meros.
program ex+);
uses crt;
var i, soma: integer;
begin
clrscr;
soma:=0;
writeln('*s numeros multiplos de 7 de 100 a +00 sao:'!;
for i:= 100 to +00 do
begin
if i mod 7 = 0 t#en
begin
write(i:)!;
soma:= soma $ i;
end;
end;
writeln;
writeln;
writeln('- soma dos numeros multiplos de 7 de 100 a +00 e: ', soma!;
read'e(;
end&
,9. Escrever um algoritmo/programa em Pascal que l um n/mero n%o con<ecido
de valores" um de cada veB" e conta quantos deles est%o em cada um dos intervalos
C." 5.D" (5." *..D" (*..",..D. G programa deve encerrar quando -or in-ormado um
valor -ora dos intervalos.
6uest7o do 8rabal#o&
+.. Escrever um algoritmo/programa em Pascal que l um n/mero n%o
determinado de valores para m" todos inteiros e positivos" um de cada veB. (e m -or
par" veri-icar quantos divisores possui e escrever esta in-orma=%o. (e m -or mpar
e menor do que *, calcular e escrever o -atorial de m. (e m -or mpar e maior ou
igua* a *, calcular e escrever a soma dos inteiros de l at$ m.
6uest7o do 8rabal#o&
+*. Escrever um algoritmo/programa em Pascal que l um n/mero n%o
determinados de valores a" todos inteiros e positivos" um de cada veB" e calcule e
escreva a m$dia aritm$tica dos valores lidos" a quantidade de valores pares" a
quantidade de valores impares" a percentagem de valores pares e a percentagem de
valores mpares.
6uest7o do 8rabal#o&
+,. Escrever um algoritmo/programa em Pascal que escreve os n/meros primos
entre *.. e ,.." #em como a soma destes n/meros.
program ex.+;
uses crt;
var x, i, cont: integer;
begin
clrscr;
for x:= 100 to +00 do
begin
cont:=0;
for i:= 1 to x do
begin
if x mod i = 0 t#en cont:=cont $ 1;
end;
if cont"=+ t#en
begin
writeln('* numero ', x, ' e primo&'!;
end;
end;
read'e(;
end&
++. Escrever um algoritmo/programa em Pascal que l 5 conuntos de ! valores a"
#" c" d" um conunto por veB e os escreve assim como -oram lidos. Em seguida"
ordene-os em ordem decrescente e escreva-os novamente.
program ex..;
uses crt;
var i, a, b, c, d, aux: integer;
begin
clrscr;
for i:= 1 to 5 do
begin
write('nforme um valor: '!;
readln(a!;
write('nforme um valor: '!;
readln(b!;
write('nforme um valor: '!;
readln(c!;
write('nforme um valor: '!;
readln(d!;
writeln('2umeros digitados: ', a:3, b:3, c:3, d:3!;
if a"b t#en
begin
aux := a;
a := b;
b := aux;
end;
if a"c t#en
begin
aux := a;
a := c;
c := aux;
end;
if a"d t#en
begin
aux := a;
a := d;
d := aux;
end;
if b"c t#en
begin
aux := b;
b := c;
c := aux;
end;
if b"d t#en
begin
aux := b;
b := d;
d := aux;
end;
if c"d t#en
begin
aux := c;
c := d;
d := aux;
end;
writeln('%m ordem decrescente: ', a:3, b:3, c:3, d:3!;
read'e(;
end;
end&
+!. Escrever um algoritmo/programa em Pascal que l *. valores para n" um de
cada veB" todos inteiros e positivos" e para cada n lido" escreva a ta#uada de * at$ n
de n.
program ex.0;
uses crt;
var i, 9, n: integer;
begin
clrscr;
for i:= 1 to 10 do
begin
write('nforme um n:mero: '!;
readln(n!;
for 9:= 1 to n do
begin
writeln(9, ' x ', n, ' = ', 9 5 n!;
end;
end;
read'e(;
end&
+5. Escrever um algoritmo/programa em Pascal que l 5 pares de valores a" #"
todos inteiros e positivos" um par de cada veB" e com a : #" e escreve os inteiros
pares de a at$ #" incluindo o a e # se -orem pares.
program ex.5;
uses crt;
var i, 9, a, b, aux: integer;
begin
clrscr;
for i:= 1 to 5 do
begin
write('nforme um n:mero: '!;
readln(a!;
write('nforme um n:mero: '!;
readln(b!;
if a/b t#en
begin
aux:=a;
a:=b;
b:=aux;
end;
for 9:= a to b do
begin
if 9 mod + = 0 t#en writeln(9!;
end;
end;
read'e(;
end&
+E. & s$rie de Hi#onacci tem como dados os , primeiros termos da s$rie que s%o
respectivamente . e *. & partir deles" os demais termos s%o construdos pela
seguinte regra' tn ) tn-* 9 tn-,. Escrever um algoritmo/programa em Pascal que
gera os *. primeiros termos da ($rie de Hi#onacci e calcula e escreve a soma
destes termos.
program ex.3;
uses crt;
var ult, pen, nt, i: integer;
begin
clrscr;
writeln('8ermos ;erie <ibonacci:'!;
pen:=0;
ult:=1;
writeln(pen!;
writeln(ult!;
for i:= 1 to ) do
begin
nt:=ult $ pen;
writeln(nt!;
pen:=ult;
ult:=nt;
end;
read'e(;
end&
+9. Escrever um algoritmo/programa em Pascal que l 5 conuntos de , valores" o
primeiro representando o n/mero de um aluno e o segundo representando a sua
altura em centmetros. Encontrar o aluno mais alto e o mais #aixo e escrever seus
n/meros" suas alturas e uma mensagem diBendo se $ o mais alto ou o mais #aixo.
6uest7o do 8rabal#o&
!.. Escrever um algoritmo/programa em Pascal que gera e escreve os 5 primeiros
n/meros per-eitos. Im n/mero per-eito $ aquele que $ igual a soma dos seus
divisores. (Ex.' E ) l 9 , 9 +J ,A ) * 9 , 9 ! 9 @ 9 *! etc.).
program ex00;
uses crt;
var cont, x, soma, i: integer;
begin
clrscr;
cont:=0;
x:=0;
writeln('*s numeros perfeitos sao: '!;
repeat
x:=x$1;
soma:=0;
for i:= 1 to x11 do
begin
if x mod i = 0 t#en soma:=soma $ i;
end;
if soma = x t#en
begin
writeln(x!;
cont:=cont$1;
end
until cont=0;
writeln('=ressione >ual>uer tecla para finali?ar&&&'!;
read'e(;
end&
!*. Escrever um algoritmo/programa em Pascal que l 5. valores" um de cada veB"
e encontra e escreve o maior deles.
program ex01;
uses crt;
var i, x, m: integer;
begin
clrscr;
for i:= 1 to 50 do
begin
write('nforme o ',i,'&o valor: '!;
readln(x!;
if i=1 t#en
begin
m:=x;
end;
if x / m t#en
begin
m:=x;
end;
end;
writeln('* maior valor e: ', m!;
read'e(;
end&
!,. Escrever um algoritmo/programa em Pascal que gera os n/meros de *... a
*999 e escreve aqueles que divididos por ** d%o um resto igual a 5.
program ex0+;
uses crt;
var
i: integer;
begin
clrscr;
for i:= 1000 to 1,,, do
begin
if i mod 11 = 5 t#en write(i:)!;
end;
read'e(;
end&
!+. Escrever um algoritmo/programa em Pascal que l um valor K e calcula e
escreve os ,. primeiros termos da s$rie' * 9 */x, 9 */x+ 9 */x! 9 ...
program ex0.;
uses crt;
var
x, i: integer;
t, soma: real;
begin
clrscr;
soma:=0;
write('nforme um valor: '!;
readln(x!;
writeln('8ermos:'!;
t:=1;
writeln(t:0:)!;
soma:=soma$t;
for i:= + to +0 do
begin
t:= 14 (exp(ln(x!5i!!;
writeln(t:0:)!;
soma:=soma$t;
end;
writeln('- soma e: ', soma:0:)!;
read'e(;
end&
!!. Escrever um algoritmo/programa em Pascal que calcula e escreve o produto
dos n/meros primos entre 9, e *!@A.
6uest7o do 8rabal#o&
!5. Escrever um algoritmo/programa em Pascal que l K" inteiro e positivo e
calcula e escreve o termo de ordem K da sucess%o a#aixo' ordem' * , + !
5 E @ A ... sucess%o' -* . 5 E ** *, *@ *A ...
program ex05;
uses crt;
var x, i, nro: integer;
begin
clrscr;
write('nforme um numero: '!;
readln(x!;
nro:=11;
for i:= 1 to x do
begin
write(nro:0!;
if i mod + "/ 0 t#en
begin
nro:=nro$1;
end
else
begin
nro:=nro$5;
end;
end;
read'e(;
end&
47.Escrever um algoritmo/programa em Pascal que l um vetor V[6] e o
escreve. Conte, a seguir quantos valores de V so negativos e escreva
esta in!orma"o.
program ex39;
uses crt;
var v: arra&=1''7> of integer;
i, cont: integer;
begin
clrscr;
for i:= 1 to 7 do
begin
writeln('Informe o ', i ,'F valor: ');
readln(v=i>);
end;
for i:= 1 to 7 do
begin
writeln(v=i>);
end;
cont:=$;
for i:= 1 to 7 do
begin
if v=i>?$ t+en
begin
cont:=cont1;
end;
end;
writeln('Gxistem ',cont,' valores negativos'');
read%e&;
end'
3:' Gscrever um algoritmo!programa em Cascal (ue lH um vetor I(1$$) e
o escreve' Bubstitua, a seguir, todos os valores nulos de I por 1 e
escreva novamente o vetor x
program ex3:;
uses crt;
var
x: arra&=1''1$$> of integer;
i: integer;
begin
clrscr;
for i:= 1 to 1$$ do
begin
writeln('Informe o ', i ,'F valor: ');
readln(x=i>);
end;
for i:= 1 to 1$$ do
begin
writeln(x=i>);
end;
for i:= 1 to 1$$ do
begin
if x=i>=$ t+en
begin
x=i>:=1;
end;
end;
for i:= 1 to 1$$ do
begin
writeln(x=i>);
end;
read%e&;
end'
3<' Gscrever um algoritmo!programa em Cascal (ue lH um vetor E=6$> e o
escreve' Gncontre, a seguir, o maior elemento de E e o escreva'
program ex3<;
uses crt;
var
c: arra&=1''6$> of integer;
m, i: integer;
begin
clrscr;
for i:= 1 to 6$ do
begin
writeln('Informe o ', i ,'F valor: ');
readln(c=i>);
end;
for i:= 1 to 6$ do
begin
writeln(c=i>);
end;
m:=c=1>;
for i:= 1 to 6$ do
begin
if c=i>*m t+en
begin
m:=c=i>;
end;
end;
writeln(') maior valor e: ', m);
read%e&;
end'
6$' Gscrever um algoritmo!programa em Cascal (ue lH um vetor -=:$> e o
escreve' Gncontre, a seguir, o menor elemento e a sua posiJKo no vetor
- e escreva: Lo menor elemento de n M = L, 0, Le a sua posiJKo M = L,
C'
program ex6$;
uses crt;
var
n: arra&=1'':$> of integer;
m, p, i: integer;
begin
clrscr;
for i:= 1 to :$ do
begin
writeln('Informe o ', i ,'F valor: ');
readln(n=i>);
end;
for i:= 1 to :$ do
begin
writeln(n=i>);
end;
m:=n=1>;
p:=1;
for i:= 1 to :$ do
begin
if n=i>?m t+en
begin
m:=n=i>;
p:=i;
end;
end;
writeln(') menor valor e: ', m, ' e esta na posicao ', p);
read%e&;
end'
61' Gscrever um a1goritmo (ue lH um vetor "=16> e o escreve' )rdene, a
seguir os elementos de " em ordem crescente e escreva novamente "'
program ex61;
uses crt;
var
a: arra&=1''16> of integer;
aux, A, i: integer;
begin
clrscr;
for i:= 1 to 16 do
begin
writeln('Informe o ', i ,'F valor: ');
readln(a=i>);
end;
writeln(';etor original: ');
for i:= 1 to 16 do
begin
write(a=i>:6);
end;
for i:= 1 to 13 do
begin
for A:= i1 to 16 do
begin
if a=i>*a=A> t+en
begin
aux:=a=i>;
a=i>:=a=A>;
a=A>:=aux;
end;
end;
end;
writeln;
writeln(';etor em ordem crescente: ');
for i:= 1 to 16 do
begin
write(a=i>:6);
end;
read%e&;
end'
62' Gscrever um algoritmo!programa em Cascal (ue lH um vetor -=2$> e o
escreve' Nro(ue, a seguir, o 1O elemento com o Pltimo, o 2O com o
penPltimo, etc', atM o 1$O com o 11O e escreva o vetor - assim
modificado'
program ex62;
uses crt;
var
n: arra&=1''2$> of integer;
aux, i: integer;
begin
clrscr;
for i:= 1 to 2$ do
begin
writeln('Informe o ', i ,'F valor: ');
readln(n=i>);
end;
writeln(';etor original: ');
for i:= 1 to 2$ do
begin
write(n=i>:6);
end;
for i:= 1 to 1$ do
begin
aux:=n=i>;
n=i>:=n=218i>;
n=218i>:=aux;
end;
writeln;
writeln(';etor alterado: ');
for i:= 1 to 2$ do
begin
write(n=i>:6);
end;
read%e&;
end'
6.' Gscrever um algoritmo!programa em Cascal (ue lH um vetor Q(2$) e o
escreve' Nro(ue, a seguir, os elementos de ordem Rmpar com os de ordem
par imediatamente seguintes e escreva o vetor % modificado'
program ex6.;
uses crt;
var
%: arra&=1''2$> of integer;
aux, i: integer;
begin
clrscr;
for i:= 1 to 2$ do
begin
writeln('Informe o ', i ,'F valor: ');
readln(%=i>);
end;
writeln(';etor original: ');
for i:= 1 to 2$ do
begin
write(%=i>:6);
end;
for i:= 1 to 2$ do
begin
if i mod 2?*$ t+en
begin
aux:=%=i>;
%=i>:=%=i1>;
%=i1>:=aux;
end;
end;
writeln;
writeln(';etor alterado: ');
for i:= 1 to 2$ do
begin
write(%=i>:6);
end;
read%e&;
end'
63' Gscrever um algoritmo!programa em Cascal (ue lH um vetor -=2$> e o
escreve' Nro(ue, a seguir, o 1O elemento com 11O, o 2O com o 12O,
etc', atM o 1$O com o 2$O e escreva o vetor assim modificado'
program ex63;
uses crt;
var
n: arra&=1''2$> of integer;
aux, i: integer;
begin
clrscr;
for i:= 1 to 2$ do
begin
writeln('Informe o ', i ,'F valor: ');
readln(n=i>);
end;
writeln(';etor original: ');
for i:= 1 to 2$ do
begin
write(n=i>:6);
end;
for i:= 1 to 1$ do
begin
aux:=n=i>;
n=i>:=n=1$i>;
n=1$i>:=aux;
end;
writeln;
writeln(';etor alterado: ');
for i:= 1 to 2$ do
begin
write(n=i>:6);
end;
read%e&;
end'
66' Gscrever um algoritmo!programa em Cascal (ue lH um vetor 2=2$>
(gabarito) e a seguir lH um nPmero nKo determinado de nPmeros de
alunos e vetores 4=2$> (resposta), um nPmero e um vetor 4 de cada ve,'
) nPmero representa o nPmero de um aluno e o vetor 4 representa o
conAunto de respostas da(uele aluno' Cara cada aluno calcular o nO de
acertos e ca1cular a nota'
nota = nPmero de acertos / $'6
Gscrever o nO do aluno, sua nota e a mensagem LaprovadoL se tiver
nota maior ou igual a 6 ou LreprovadoL se a nota for menor do (ue 6'
program ex66;
uses crt;
var
g, r:arra&=1''2$> of integer;
numal, acertos, i: integer;
nota: real;
begin
clrscr;
writeln('Informe o 2abarito: ');
for i:= 1 to 2$ do
begin
write('4esposta ',i,': ');
readln(g=i>);
end;
repeat
clrscr;
writeln('Informe o -umero do "luno ($ para sair): ');
readln(numal);
if numal*$ t+en
begin
writeln('Informe as respostas do aluno ',numal);
for i:= 1 to 2$ do
begin
write('4esposta ',i,': ');
readln(r=i>);
end;
acertos:=$;
for i:= 1 to 2$ do
begin
if r=i>=g=i> t+en
begin
acertos:=acertos1;
end;
end;
nota:=acertos / $'6;
writeln(') aluno ', numal, ' obteve a nota ', nota:$:1);
if nota*=6 t+en
begin
writeln('Gsta aprovadoS')
end
else
begin
writeln('Gsta reprovadoS');
end;
read%e&;
end;
until numal=$;
end'
67' Gscrever um algoritmo!programa em Cascal (ue lH 2 vetores Q=1$> e
-=1$> e os escreve' Erie, a seguir, um vetor 0 (ue seAa a diferenJa
entre Q e - (0 = Q 8 -) e escreva o vetor 0'
program ex67;
uses crt;
var
%, n, m: arra&=1''1$> of integer;
i: integer;
begin
clrscr;
for i:= 1 to 1$ do
begin
writeln('Informe o ', i ,'F valor do vetor -: ');
readln(n=i>);
end;
for i:= 1 to 1$ do
begin
writeln('Informe o ', i ,'F valor do vetor Q: ');
readln(%=i>);
end;
for i:= 1 to 1$ do
begin
m=i>:=%=i>8n=i>;
end;
writeln(';etor -: ');
for i:= 1 to 1$ do
begin
write(n=i>:6);
end;
writeln;
writeln(';etor Q: ');
for i:= 1 to 1$ do
begin
write(%=i>:6);
end;
writeln;
writeln(';etor 0: ');
for i:= 1 to 1$ do
begin
write(m=i>:6);
end;
read%e&;
end'
69' Gscrever um algoritmo!programa em Cascal (ue lH um vetor 2=1.> (ue
M o 2abarito de um teste da loteria esportiva, contendo os valores 1
(coluna 1), 2(coluna 2), e . (coluna do meio)' Ter, a seguir, para
cada apostador, o nO de seu cartKo e um vetor 4esposta 4=1.>'
;erificar para cada apostador o nO de acertos e escrever o nO do
apostador e seu nPmero de acertos' Be tiver 1. acertos, acrescentar
a mensagem: Lgan+ador, parabMnsSL'
program ex69;
uses crt;
var
g, r:arra&=1''1.> of integer;
numcart, acertos, i: integer;
begin
clrscr;
writeln('Informe o 4esultado da Toteria (2abarito): ');
for i:= 1 to 1. do
begin
write('Uogo ',i,': ');
readln(g=i>);
end;
repeat
clrscr;
writeln('Informe o -umero do Eartao ($ para sair): ');
readln(numcart);
if numcart*$ t+en
begin
writeln('Informe as respostas do cartao ',numcart);
for i:= 1 to 1. do
begin
write('Uogo ',i,': ');
readln(r=i>);
end;
acertos:=$;
for i:= 1 to 1. do
begin
if r=i>=g=i> t+en
begin
acertos:=acertos1;
end;
end;
writeln(') cartao ', numcart, ' obteve ', acertos,' acertosS');
if acertos=1. t+en
begin
writeln('2an+ador, CarabensS')
end;
read%e&;
end;
until numcart=$;
end'
6:' Gscrever um algoritmo!programa em Cascal (ue lH, um vetor ;=2$> e
o escreve' Eompacte, a seguir, o vetor V, retirando dele todos os
valores nulos ou negativos e escreva o vetor compactado'
program ex6:;
uses crt;
var
v, &: arra&=1''2$> of integer;
cont, i: integer;
begin
clrscr;
for i:= 1 to 2$ do
begin
writeln('Informe o ',i, 'F valor: ');
readln(v=i>);
end;
cont:=$;
for i:= 1 to 2$ do
begin
if v=i>*$ t+en
begin
cont:=cont1;
&=cont>:=v=i>;
end;
end;
clrscr;
writeln(';etor original:');
for i:= 1 to 2$ do
begin
write(v=i>:6);
end;
writeln;
writeln(';etor compactado: ');
for i:= 1 to cont do
begin
write(&=i>:6);
end;
read%e&;
end'
6<' Gscrever um algoritmo!programa em Cascal (ue lH um vetor ;(2$) e o
escreve' 4etire, a seguir, os elementos em duplicata, compactando o
vetor V, e escrevendo o vetor compactado'
program ex6<;
uses crt;
var
v, &: arra&=1''2$> of integer;
contpos,cont, i, A: integer;
begin
clrscr;
for i:= 1 to 2$ do
begin
writeln('Informe o ',i, 'F valor: ');
readln(v=i>);
end;
contpos:=$;
for i:= 1 to 2$ do
begin
cont:=$;
for A:=1 to contpos do
begin
if &=A>=v=i> t+en
begin
cont:=cont1;
end;
end;
if cont=$ t+en
begin
contpos:=contpos1;
&=contpos>:=v=i>;
end;
end;
clrscr;
writeln(';etor original:');
for i:= 1 to 2$ do
begin
write(v=i>:6);
end;
writeln;
writeln(';etor compactado: ');
for i:= 1 to contpos do
begin
write(&=i>:6);
end;
read%e&;
end'
71' Gscrever um algoritmo!programa em Cascal (ue lH o 1O termo e a
ra,Ko de uma progressKo aritmMtica e gera os vinte termos seguintes
desta progressKo, arma,enando8os em 2 vetores de 1$ elementos cada, no
1O os termos de ordem Rmpar de geraJKo e no 2O os de ordem par de
geraJKo' Gscreva a seguir os 2 vetores de forma (ue os termos
apareJam na ordem em (ue foram gerados'
program ex71;
uses crt;
var
vpar, vimpar: arra&=1''1$> of integer;
t1, r, x, i: integer;
begin
clrscr;
writeln('1'o termo: ');
readln(t1);
writeln('4a,ao: ');
readln(r);
x:=t1;
for i:= 1 to 1$ do
begin
vimpar=i>:=x;
x:=xr;
vpar=i>:=x;
x:=xr;
end;
for i:= 1 to 1$ do
begin
write(vimpar=i>:6, vpar=i>:6);
end;
read%e&;
end'
72' Gscrever um algoritmo!programa em Cascal (ue gera os 1$ primeiros
nPmeros primos acima de 1$$ e os arma,ena em um vetor I(1$)
escrevendo, no final, o vetor I'
program ex72;
uses crt;
var
x: arra&=1''1$> of integer;
i, num, contdiv, contprimo: integer;
begin
clrscr;
contprimo:=$;
num:=1$$;
repeat
num:=num1;
contdiv:=$;
for i:= 1 to num do
begin
if num mod i=$ t+en
begin
contdiv:=contdiv1;
end;
end;
if contdiv?=2 t+en
begin
contprimo:=contprimo1;
x=contprimo>:=num;
end;
until contprimo=1$;
writeln(')s numeros primos sao: ');
for i:= 1 to 1$ do
begin
writeln(x=i>);
end;
read%e&;
end'
7.' Gscreva um algoritmo!programa em Cascal (ue lH uma matri, 0(6,6) e
calcula as somas:
a) da lin+a 3 de 0
b) da coluna 2 de 0
c) da diagonal principal
d) da diagonal secundWria
e) de todos os elementos da matri,
Gscreva estas somas e a matri,'
program ex7.;
uses crt;
var
m: arra&=1''6,1''6> of integer;
i, A, sl3, sc2, sdp, sds, soma: integer;
begin
sl3:=$; sc2:=$;
sdp:=$; sds:=$;
soma:=$;
clrscr;
writeln('Informe a matri,: ');
for i:= 1 to 6 do
begin
for A:= 1 to 6 do
begin
gotox&(A/7,i1);
readln(m=i,A>);
end;
end;
clrscr;
writeln('0atri,: ');
for i:= 1 to 6 do
begin
for A:= 1 to 6 do
begin
gotox&(A/7,i1);
write(m=i,A>:7);
end;
end;
for A:= 1 to 6 do
begin
sl3:=sl3m=3,A>;
end;
for i:= 1 to 6 do
begin
sc2:=sc2m=i,2>;
end;
for i:= 1 to 6 do
begin
sdp:=sdpm=i,i>;
sds:=sdsm=i,78i>;
end;
for i:= 1 to 6 do
begin
for A:= 1 to 6 do
begin
soma:=somam=i,A>;
end;
end;
writeln;
writeln('Boma lin+a 3: ',sl3);
writeln('Boma coluna 2: ',sc2);
writeln('Boma diagonal principal: ',sdp);
writeln('Boma diagonal secundaria: ',sds);
writeln('Boma de toda matri,: ',soma);
read%e&;
end'
73' Gscrever um algoritmo!programa em Cascal (ue lH uma matri, 0(7,7)
e calcula as somas das partes +ac+uriadas'
x I I I I I I I I I I x x I I I I x x x x x x x
x x I I I I I I I I x x x x I I x x I x x x x x
x x x I I I I I I x x x x x x x x x I I x x x x
x x x x I I I I x x x x x x x x x x I I x x x x
x x x x x I I x x x x x x x x x x x I x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x
Gscrever a matri, 0 e as somas calculadas
76' Gscrever um algoritmo!programa em Cascal (ue lH uma matri,
0(1$,1$) e a escreve' Nro(ue, a seguir:
8 a lin+a 2 com a lin+a :'
8 a coluna 3 com a coluna 1$
8 a diagonal principal com a secundWria
8 a lin+a 6 com a coluna 1$
Gscreva a matri, assim modificada'
program ex76;
uses crt;
var
m: arra&=1''1$,1''1$> of integer;
aux, i, A: integer;
begin
clrscr;
writeln('Informe a matri,: ');
for i:= 1 to 1$ do
begin
for A:= 1 to 1$ do
begin
gotox&(A/7,i1);
Xreadln(m=i,A>);Y
m=i,A>:=(i81)/1$A;
end;
end;
clrscr;
writeln('0atri,: ');
for i:= 1 to 1$ do
begin
for A:= 1 to 1$ do
begin
gotox&(A/7,i1);
write(m=i,A>:7);
end;
end;
read%e&;
clrscr;
writeln('Nroca da lin+a 2 com a lin+a ::');
for A:= 1 to 1$ do
begin
aux:=m=2,A>;
m=2,A>:=m=:,A>;
m=:,A>:=aux;
end;
for i:= 1 to 1$ do
begin
for A:= 1 to 1$ do
begin
gotox&(A/7,i1);
write(m=i,A>:7);
end;
end;
read%e&;
clrscr;
writeln('Nroca da coluna 3 com a coluna 1$:');
for i:= 1 to 1$ do
begin
aux:=m=i,3>;
m=i,3>:=m=i,1$>;
m=i,1$>:=aux;
end;
for i:= 1 to 1$ do
begin
for A:= 1 to 1$ do
begin
gotox&(A/7,i1);
write(m=i,A>:7);
end;
end;
read%e&;
clrscr;
writeln('Nroca da diagonal principal com a secundaria:');
for i:= 1 to 1$ do
begin
aux:=m=i,i>;
m=i,i>:=m=i,118i>;
m=i,118i>:=aux;
end;
for i:= 1 to 1$ do
begin
for A:= 1 to 1$ do
begin
gotox&(A/7,i1);
write(m=i,A>:7);
end;
end;
read%e&;
clrscr;
writeln('Nroca da lin+a 6 com a coluna 1$:');
for i:= 1 to 1$ do
begin
aux:=m=6,i>;
m=6,i>:=m=i,1$>;
m=i,1$>:=aux;
end;
for i:= 1 to 1$ do
begin
for A:= 1 to 1$ do
begin
gotox&(A/7,i1);
write(m=i,A>:7);
end;
end;
read%e&;
end'