Buscar

Lista de Exercícios Resolvidos - Pascal

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Lista de Exercícios (Resolvidos) - Pascal 
 
1. Escreva um programa em Pascal para ler, calcular e escrever a média aritmética entre dois 
números. 
program ex1; 
uses crt; 
 
var n1, n2, m: real; 
 
begin 
clrscr; 
write('Informe um numero: '); 
readln(n1); 
write('Informe outro numero: '); 
readln(n2); 
m:=(n1+n2)/2; 
writeln('A media ‚: ',m:0:2); 
readkey; 
end. 
 
 
 
2. Escreva um programa em Pascal para ler um número positivo qualquer, calcular e escrever 
o quadrado e a raiz quadrada do mesmo. 
program ex2; 
uses crt; 
 
var x, q: integer; 
 r: real; 
 
begin 
clrscr; 
write('Informe um numero: '); 
readln(x); 
q:= sqr(x); 
writeln('O quadrado de ', x, ' ‚ ', q); 
if x>=0 then 
 begin 
 r:= sqrt(x); 
 writeln('A raiz quadrada de ', x, ' ‚ ', r:0:2); 
 end 
else 
 begin 
 writeln('Nao existe raiz de ',x); 
 end; 
readkey; 
end. 
 
 
3. Escrever um programa em Pascal que leia 3 valores: a, b, c e calcule e escreva a média 
aritmética, harmônica e geométrica correspondente. 
program ex3; 
uses crt; 
 
var a, b, c, ma, mg, mh: 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:= (a+b+c)/3; 
mh:= 3/(1/a + 1/b +1/c); 
mg:= exp(ln(a*b*c)*(1/3)); 
writeln('Media Aritmetica: ',ma:0:2); 
writeln('Media Harmonica: ',mh:0:2); 
writeln('Media Geometrica: ',mg:0:2); 
readkey; 
end. 
 
 
4. Escrever um programa em Pascal que lê o número de um funcionário, seu número de 
horas trabalhadas, o valor que recebe por hora, e o número de filhos com idade menor do 
que 14 anos e calcula o salário deste funcionário. 
program ex4; 
uses crt; 
 
var 
nf, nfil: integer; 
nht, vph, sf, st: real; 
 
begin 
clrscr; 
write('Informe o numero do funcionario: '); 
readln(nf); 
write('Informe o numero de horas trabalhadas: '); 
readln(nht); 
write('Informe o valor que recebe por hora: '); 
readln(vph); 
write('Informe o numero de filhos: '); 
readln(nfil); 
write('Informe o valor do salario familia: '); 
readln(sf); 
st:= nht * vph + nfil * sf; 
writeln('O funcionario ', nf, ' recebe um salario total de R$ ', 
st:0:2); 
readkey; 
end. 
 
 
 
5. Escrever um programa em Pascal que lê o número de um vendedor, o seu salário-fixo, o 
tota1 de vendas por ele efetuadas e o percentual que ganha sobre o total de vendas. 
Calcular o salário tota1 do vendedor. Escrever número do vendedor e o salário total. 
program ex5; 
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 / 100; 
writeln('O vendedor ', nv, ' recebe um salario total de R$ ', st:0:2); 
readkey; 
end. 
 
 
 
6. 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 ex6; 
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:= (a+b+c)/2; 
at:=sqrt(s*(s-a)*(s-b)*(s-c)); 
writeln('Area do triangulo: ',at:0:2); 
readkey; 
end. 
 
 
 
7. Uma revendedora de carros usados paga a seus funcionários vendedores, um salário fixo 
por mês, mais uma comissão também fixa para cada carro vendido e mais 5% do valor das 
vendas por ele efetuadas. Escrever um programa em Pascal que lê o número do vendedor, o 
número de carros por ele vendidos, o valor tota1 de suas vendas, o salário fixo e o valor 
que recebe por carro vendido e calcula o salário mensal do vendedor, escrevendo-o 
juntamente com o seu número de identificação. 
program ex7; 
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 * 5 / 100 + ncv * vpcv; 
writeln('O vendedor ', nv, ' recebe um salario total de R$ ', st:0:2); 
readkey; 
end. 
 
 
 
8. Escrever um programa em Pascal que lê 3 valores a, b, c, e escreva os 3 valores em ordem 
crescente. 
program ex8; 
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 then 
 begin 
 aux:=a; 
 a:=b; 
 b:=aux; 
 end; 
if a>c then 
 begin 
 aux:=a; 
 a:=c; 
 c:=aux; 
 end; 
if b>c then 
 begin 
 aux:=b; 
 b:=c; 
 c:=aux; 
 end; 
writeln('Valores em ordem crescente: ', a:6, b:6, c:6); 
readkey; 
end. 
 
9. Escrever um algoritmo/programa em Pascal que lê um conjunto de 4 valores i, 
a, b, c, onde i é um valor inteiro e positivo e a, b, c, são quaisquer valores reais e os 
escreva. A seguir: 
Se i = 1 escrever os 3 valores a, b, c em ordem crescente. 
Se i = 2 escrever os 3 valores a, b, c em ordem decrescente. 
Se i = 3 escrever os 3 valores de forma que o maior valor entre a, b, c fica entre os 
outros 2. 
 
program ex9; 
uses crt; 
 
var i, a, b, c, aux: integer; 
 
begin 
clrscr; 
write('Informe um valor [1, 2, 3]: '); 
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 then 
 begin 
 aux:=a; 
 a:=b; 
 b:=aux; 
 end; 
if a>c then 
 begin 
 aux:=a; 
 a:=c; 
 c:=aux; 
 end; 
if b>c then 
 begin 
 aux:=b; 
 b:=c; 
 c:=aux; 
 end; 
if i=1 then 
 begin 
 writeln('Valores em ordem crescente: ', a:6, b:6, c:6); 
 end; 
if i=2 then 
 begin 
 writeln('Valores em ordem decrescente: ', c:6, b:6, a:6); 
 end; 
if i=3 then 
 begin 
 writeln('Maior Valor no meio: ', a:6, c:6, b:6); 
 end; 
readkey; 
end. 
 
 
10. Escrever um algoritmo/programa em Pascal que lê o número de um vendedor 
de uma empresa, seu salário fixo e o total de vendas por ele efetuadas. 
Cada vendedor recebe um salário fixo, mais uma comissão proporcional às vendas 
por ele efetuadas. 
A comissão é de 3% sobre o total de vendas até $ 1.000,00 e 5% sobre o que 
ultrapassa este valor. 
Escrever o número do vendedor, o total de suas vendas, seu salário fixo e seu 
salário total. 
program ex10; 
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<=1000 then 
 begin 
 st:= sf + tv * 3 / 100; 
 end 
else 
 begin 
 st:= sf + (tv-1000) * 5 / 100 + 30; 
 end; 
writeln('O vendedor ', nv, ' recebe um salario total de R$ ', st:0:2); 
readkey; 
end. 
 
11. Escrever um algoritmo/programa em Pascalque lê 3 comprimentos de lados a, 
b, c e os ordena em ordem decrescente, de modo que o a represente o maior dos 3 
lados lidos. 
Determine, a seguir, o tipo de triângulo que estes 3 lados formam, com base nos 
seguintes casos escrevendo sempre os valores lidos e uma mensagem adequada: 
 Se a > b + c não formam triângulo algum. 
 Se a2 = b2 + c2 formam um triângulo retângulo. 
 Se a2 > b2 + c2 formam um triângulo obtusângulo. 
 Se a2 < b2 + c2 formam um triângulo acutângulo. 
 Se forem todos iguais formam um triângulo equilátero. 
 Se a = b ou b = c ou a = c então formam um triângulo 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 then 
 begin 
 aux:=a; 
 a:=b; 
 b:=aux; 
 end; 
if a<c then 
 begin 
 aux:=a; 
 a:=c; 
 c:=aux; 
 end; 
if b<c then 
 begin 
 aux:=b; 
 b:=c; 
 c:=aux; 
 end; 
if a>b+c then 
 begin 
 writeln('Nao forma triangulo.'); 
 end 
else 
 begin 
 if sqr(a) = sqr(b)+sqr(c) then writeln('Formam um triangulo 
retangulo.'); 
 if sqr(a) > sqr(b)+sqr(c) then writeln('Formam um triangulo 
obtusangulo.'); 
 if sqr(a) < sqr(b)+sqr(c) then writeln('Formam um triangulo 
acutangulo.'); 
 if (a=b) and (b=c) then 
 begin 
 writeln('Formam um triangulo equilatero.'); 
 end 
 else 
 begin 
 if (a=b) or (a=c) or (b=c) then writeln('Formam um triangulo 
isosceles.'); 
 end; 
 end; 
readkey; 
end. 
 
 
12. Escrever um algoritmo/programa em Pascal que lê a hora de início de um jogo 
e a hora do final do jogo (considerando apenas horas inteiras) e calcula a duração 
do jogo em horas, sabendo-se que o tempo máximo de duração do jogo é de 24 
horas e que o jogo pode iniciar em um dia e terminar no dia seguinte. 
program ex12; 
uses crt; 
 
var 
hi, hf, dj: integer; 
 
begin 
clrscr; 
write('Informe a hora inicial do jogo: '); 
readln(hi); 
write('Informe a hora final do jogo: '); 
readln(hf); 
if hf > hi then 
 begin 
 dj:=hf - hi; 
 writeln('O jogo durou ',dj,' horas.'); 
 end 
else 
 begin 
 dj:=hf - hi + 24; 
 writeln('O jogo durou ',dj,' horas.'); 
 end; 
readkey; 
end. 
 
 
15. A empresa Enxuga Gelo SA decidiu conceder um aumento de salários a seus 
funcionários de acordo com a tabela abaixo: 
 
Salário Atual Índice De Aumento 
0 - 400,00 15% 
400,01 - 700,00 12% 
700,01 - 1.000,00 10% 
1.000,01 - 1.800,00 7% 
1.800,01 - 2.500,00 4% 
acima de 2.500,00 sem aumento 
 
Escrever um algoritmo/programa em Pascal que lê, para cada funcionário, o seu 
número e o seu salário atual e escreve o numero do funcionário, seu salário atua1, 
o percentual de seu aumento e o valor do salário corrigido. 
program ex15; 
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<=400 then pa:=15; 
if (sa>400) and (sa<=700) then pa:=12; 
if (sa>700) and (sa<=1000) then pa:=10; 
if (sa>1000) and (sa<=1800) then pa:=7; 
if (sa>1800) and (sa<=2500) then pa:=4; 
if (sa>2500) then pa:=0; 
sc:=sa + sa * pa/100; 
writeln('Funcionario: ', nf); 
writeln('Salario Atual: ',sa:0:2); 
writeln('Percentual de Aumento: ',pa:0:2,'%'); 
writeln('Salario Corrigido: ',sc:0:2); 
readkey; 
end. 
end. 
 
17. Escrever um algoritmo/programa em Pascal que lê 5 valores para a, um de 
cada vez, e conta quantos destes valores são negativos, escrevendo esta informação. 
 
program ex17; 
uses crt; 
 
var i, a, cont: integer; 
 
begin 
clrscr; 
cont:=0; 
for i:= 1 to 5 do 
 begin 
 write('Informe um valor: '); 
 readln(a); 
 if a<0 then cont:=cont+1; 
 end; 
writeln('Existem ',cont,' valores negativos.'); 
readkey; 
end. 
 
18. Escrever um algoritmo/programa em Pascal que escreve os números pares 
entre 100 e 200. 
program ex18; 
uses crt; 
 
var i: integer; 
 
begin 
clrscr; 
writeln('Os numeros pares de 100 a 200 sao: '); 
for i:= 100 to 200 do 
 begin 
 if i mod 2 = 0 then 
 begin 
 write(i:8); 
 end; 
 end; 
readkey; 
end. 
 
19. Escrever um algoritmo/programa em Pascal que escreve a soma dos números 
entre 0 e 100. 
program ex19; 
uses crt; 
 
var i, soma: integer; 
 
begin 
clrscr; 
soma:=0; 
for i:= 0 to 100 do 
 begin 
 soma:= soma + i; 
 end; 
writeln('A soma dos numeros de 0 a 100 e: ', soma); 
readkey; 
end. 
 
20. Escrever um algoritmo/programa em Pascal que escreve a soma dos números 
pares entre 0 e 100. 
program ex20; 
uses crt; 
 
var i, soma: integer; 
 
begin 
clrscr; 
soma:=0; 
for i:= 0 to 100 do 
 begin 
 if i mod 2 = 0 then 
 begin 
 soma:= soma + i; 
 end; 
 end; 
writeln('A soma dos numeros pares de 0 a 100 e: ', soma); 
readkey; 
end. 
 
21. Escrever um algoritmo/programa em Pascal que escreve a soma dos números 
múltiplos de 7 entre 100 e 200. 
 
program ex21; 
uses crt; 
 
var i, soma: integer; 
 
begin 
clrscr; 
soma:=0; 
for i:= 100 to 200 do 
 begin 
 if i mod 7 = 0 then 
 begin 
 soma:= soma + i; 
 end; 
 end; 
writeln('A soma dos numeros multiplos de 7 de 100 a 200 e: ', soma); 
readkey; 
end. 
 
22. Escrever um algoritmo/programa em Pascal que escreve a soma dos números 
que não são múltiplos de 13 entre 100 e 200. 
 
program ex22; 
uses crt; 
 
var i, soma: integer; 
 
begin 
clrscr; 
soma:=0; 
for i:= 100 to 200 do 
 begin 
 if i mod 13 <> 0 then 
 begin 
 soma:= soma + i; 
 end; 
 end; 
writeln('A soma dos numeros nao multiplos de 13 de 100 a 200 e: ', soma); 
readkey; 
end. 
 
23. Escrever um algoritmo/programa em Pascal que lê 20 valores, um de cada vez, 
e conta quantos deles estão em cada um dos intervalos [0, 25], (25, 50], (50, 75], 
(75, 100], escrevendo esta informação 
 
program ex23; 
uses crt; 
 
var i, x, cont1, cont2, cont3, cont4: integer; 
 
begin 
clrscr; 
cont1:=0; cont2:=0; cont3:=0; cont4:=0; 
for i:= 1 to 20 do 
 begin 
 write('Informe um valor (0-100): '); 
 readln(x); 
 if (x>=0) and (x<=25) then cont1:=cont1 + 1; 
 if (x>25) and (x<=50) then cont2:=cont2 + 1; 
 if (x>50) and (x<=75) then cont3:=cont3 + 1; 
 if (x>75) and (x<=100) then cont4:=cont4 + 1; 
 end; 
writeln('No intervalo 0 - 25 existem ', cont1, ' numeros.'); 
writeln('No intervalo 26 - 50 existem ', cont2, ' numeros.'); 
writeln('No intervalo 51 - 75 existem ', cont3, ' numeros.'); 
writeln('No intervalo 76 - 100 existem ', cont4, ' numeros.'); 
readkey; 
end. 
 
24. Escrever um algoritmo/programa em Pascal semelhante ao anterior que 
calcula as médias aritméticas de cada intervalo e as escreve, juntamente com o 
número de valores de cada intervalo. 
 
program ex24; 
uses crt; 
 
var 
i, x, cont1, cont2, cont3, cont4, soma1, soma2, soma3, soma4: integer; 
m1, m2, m3, m4: real; 
 
begin 
clrscr; 
cont1:=0; cont2:=0; cont3:=0; cont4:=0; 
soma1:=0; soma2:=0; soma3:=0; soma4:=0;for i:= 1 to 20 do 
 begin 
 write('Informe um valor (0-100): '); 
 readln(x); 
 if (x>=0) and (x<=25) then 
 begin 
 cont1:=cont1 + 1; 
 soma1:=soma1 + x; 
 m1:=soma1 / cont1; 
 end; 
 if (x>25) and (x<=50) then 
 begin 
 cont2:=cont2 + 1; 
 soma2:=soma2 + x; 
 m2:=soma2 / cont2; 
 end; 
 if (x>50) and (x<=75) then 
 begin 
 cont3:=cont3 + 1; 
 soma3:=soma3 + x; 
 m3:=soma3 / cont3; 
 end; 
 if (x>75) and (x<=100) then 
 begin 
 cont4:=cont4 + 1; 
 soma4:=soma4 + x; 
 m4:=soma4 / cont4; 
 end; 
 end; 
writeln('No intervalo 0 - 25 existem ', cont1, ' numeros e a media e: ', m1:0:2); 
writeln('No intervalo 26 - 50 existem ', cont2, ' numeros e a media e: ', m2:0:2); 
writeln('No intervalo 51 - 75 existem ', cont3, ' numeros e a media e: ', m3:0:2); 
writeln('No intervalo 76 - 100 existem ', cont4, ' numeros e a media e: ', m4:0:2); 
readkey; 
end. 
 
25. Escrever um algoritmo/programa em Pascal que lê um número e calcula e 
escreve quantos divisores ele possui. 
 
program ex25; 
uses crt; 
 
var x, i, cont: integer; 
 
begin 
clrscr; 
write('Informe um numero: '); 
readln(x); 
cont:=0; 
for i:= 1 to x do 
 begin 
 if x mod i = 0 then cont:=cont + 1; 
 end; 
writeln('O numero ', x, ' possui ', cont, ' divisores.'); 
readkey; 
end. 
 
26. Escrever um algoritmo/programa em Pascal que lê um número e calcula e 
escreve o seu fatorial. 
 
program ex26; 
uses crt; 
 
var x, i: integer; 
fat: longint; 
 
begin 
clrscr; 
write('Informe um numero: '); 
readln(x); 
fat:=1; 
for i:= 1 to x do 
 begin 
 fat:=fat * i; 
 end; 
writeln('O fatorial de ', x, ' e: ', fat); 
readkey; 
end. 
 
27. Escrever um algoritmo/programa em Pascal que lê um número e escreva se ele 
"é primo" ou "não é primo" 
 
program ex27; 
uses crt; 
 
var x, i, cont: integer; 
 
begin 
clrscr; 
write('Informe um numero: '); 
readln(x); 
cont:=0; 
for i:= 1 to x do 
 begin 
 if x mod i = 0 then cont:=cont + 1; 
 end; 
if cont<=2 then 
 begin 
 writeln('O numero ', x, ' e primo.'); 
 end 
else 
 begin 
 writeln('O numero ', x, ' nao e primo.'); 
 end; 
readkey; 
end. 
 
28. Escrever um algoritmo/programa em Pascal que escreve os números múltiplos 
de 7 entre 100 e 200, bem como a soma destes números. 
 
program ex28; 
uses crt; 
 
var i, soma: integer; 
 
begin 
clrscr; 
soma:=0; 
writeln('Os numeros multiplos de 7 de 100 a 200 sao:'); 
for i:= 100 to 200 do 
 begin 
 if i mod 7 = 0 then 
 begin 
 write(i:8); 
 soma:= soma + i; 
 end; 
 end; 
writeln; 
writeln; 
writeln('A soma dos numeros multiplos de 7 de 100 a 200 e: ', soma); 
readkey; 
end. 
 
29. Escrever um algoritmo/programa em Pascal que lê um número não conhecido 
de valores, um de cada vez, e conta quantos deles estão em cada um dos intervalos 
[0, 50], (50, 100], (100,200]. O programa deve encerrar quando for informado um 
valor fora dos intervalos. 
 
Questão do Trabalho. 
30. 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 vez. Se m for 
par, verificar quantos divisores possui e escrever esta informação. Se m for ímpar 
e menor do que 12 calcular e escrever o fatorial de m. Se m for ímpar e maior ou 
igua1 a 12 calcular e escrever a soma dos inteiros de l até m. 
 
Questão do Trabalho. 
31. Escrever um algoritmo/programa em Pascal que lê um número não 
determinados de valores a, todos inteiros e positivos, um de cada vez, 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. 
 
Questão do Trabalho. 
32. Escrever um algoritmo/programa em Pascal que escreve os números primos 
entre 100 e 200, bem como a soma destes números. 
 
program ex32; 
uses crt; 
 
var x, i, cont: integer; 
 
begin 
clrscr; 
for x:= 100 to 200 do 
 begin 
 cont:=0; 
 for i:= 1 to x do 
 begin 
 if x mod i = 0 then cont:=cont + 1; 
 end; 
 if cont<=2 then 
 begin 
 writeln('O numero ', x, ' e primo.'); 
 end; 
 end; 
readkey; 
end. 
 
33. Escrever um algoritmo/programa em Pascal que lê 5 conjuntos de 4 valores a, 
b, c, d, um conjunto por vez e os escreve assim como foram lidos. Em seguida, 
ordene-os em ordem decrescente e escreva-os novamente. 
 
program ex33; 
uses crt; 
 
var i, a, b, c, d, aux: integer; 
 
begin 
clrscr; 
for i:= 1 to 5 do 
 begin 
 write('Informe um valor: '); 
 readln(a); 
 write('Informe um valor: '); 
 readln(b); 
 write('Informe um valor: '); 
 readln(c); 
 write('Informe um valor: '); 
 readln(d); 
 writeln('Numeros digitados: ', a:6, b:6, c:6, d:6); 
 if a<b then 
 begin 
 aux := a; 
 a := b; 
 b := aux; 
 end; 
 if a<c then 
 begin 
 aux := a; 
 a := c; 
 c := aux; 
 end; 
 if a<d then 
 begin 
 aux := a; 
 a := d; 
 d := aux; 
 end; 
 if b<c then 
 begin 
 aux := b; 
 b := c; 
 c := aux; 
 end; 
 if b<d then 
 begin 
 aux := b; 
 b := d; 
 d := aux; 
 end; 
 if c<d then 
 begin 
 aux := c; 
 c := d; 
 d := aux; 
 end; 
 writeln('Em ordem decrescente: ', a:6, b:6, c:6, d:6); 
 readkey; 
 end; 
end. 
 
34. Escrever um algoritmo/programa em Pascal que lê 10 valores para n, um de 
cada vez, todos inteiros e positivos, e para cada n lido, escreva a tabuada de 1 até n 
de n. 
 
program ex34; 
uses crt; 
 
var i, j, n: integer; 
 
begin 
clrscr; 
for i:= 1 to 10 do 
 begin 
 write('Informe um n£mero: '); 
 readln(n); 
 for j:= 1 to n do 
 begin 
 writeln(j, ' x ', n, ' = ', j * n); 
 end; 
 end; 
readkey; 
end. 
 
35. Escrever um algoritmo/programa em Pascal que lê 5 pares de valores a, b, 
todos inteiros e positivos, um par de cada vez, e com a < b, e escreve os inteiros 
pares de a até b, incluindo o a e b se forem pares. 
 
program ex35; 
uses crt; 
 
var i, j, a, b, aux: integer; 
 
begin 
clrscr; 
for i:= 1 to 5 do 
 begin 
 write('Informe um n£mero: '); 
 readln(a); 
 write('Informe um n£mero: '); 
 readln(b); 
 if a>b then 
 begin 
 aux:=a; 
 a:=b; 
 b:=aux; 
 end; 
 for j:= a to b do 
 begin 
 if j mod 2 = 0 then writeln(j); 
 end; 
 end; 
readkey; 
end. 
 
36. A série de Fibonacci tem como dados os 2 primeiros termos da série que são 
respectivamente 0 e 1. A partir deles, os demais termos são construídos pela 
seguinte regra: tn = tn-1 + tn-2. Escrever um algoritmo/programa em Pascal que 
gera os 10 primeiros termos da Série de Fibonacci e calcula e escreve a soma 
destes termos. 
 
program ex36; 
uses crt; 
 
var ult, pen, nt, i: integer; 
 
begin 
clrscr; 
writeln('Termos SerieFibonacci:'); 
pen:=0; 
ult:=1; 
writeln(pen); 
writeln(ult); 
for i:= 1 to 8 do 
 begin 
 nt:=ult + pen; 
 writeln(nt); 
 pen:=ult; 
 ult:=nt; 
 end; 
readkey; 
end. 
 
39. Escrever um algoritmo/programa em Pascal que lê 5 conjuntos de 2 valores, o 
primeiro representando o número de um aluno e o segundo representando a sua 
altura em centímetros. Encontrar o aluno mais alto e o mais baixo e escrever seus 
números, suas alturas e uma mensagem dizendo se é o mais alto ou o mais baixo. 
 
Questão do Trabalho. 
40. Escrever um algoritmo/programa em Pascal que gera e escreve os 5 primeiros 
números perfeitos. Um número perfeito é aquele que é igual a soma dos seus 
divisores. (Ex.: 6 = l + 2 + 3; 28 = 1 + 2 + 4 + 7 + 14 etc.). 
 
program ex40; 
uses crt; 
 
var cont, x, soma, i: integer; 
 
begin 
clrscr; 
cont:=0; 
x:=0; 
writeln('Os numeros perfeitos sao: '); 
repeat 
 x:=x+1; 
 soma:=0; 
 for i:= 1 to x-1 do 
 begin 
 if x mod i = 0 then soma:=soma + i; 
 end; 
 if soma = x then 
 begin 
 writeln(x); 
 cont:=cont+1; 
 end 
until cont=4; 
writeln('Pressione qualquer tecla para finalizar...'); 
readkey; 
end. 
 
41. Escrever um algoritmo/programa em Pascal que lê 50 valores, um de cada vez, 
e encontra e escreve o maior deles. 
 
program ex41; 
uses crt; 
 
var i, x, m: integer; 
 
begin 
clrscr; 
for i:= 1 to 50 do 
 begin 
 write('Informe o ',i,'.o valor: '); 
 readln(x); 
 if i=1 then 
 begin 
 m:=x; 
 end; 
 if x > m then 
 begin 
 m:=x; 
 end; 
 end; 
writeln('O maior valor e: ', m); 
readkey; 
end. 
 
42. Escrever um algoritmo/programa em Pascal que gera os números de 1000 a 
1999 e escreve aqueles que divididos por 11 dão um resto igual a 5. 
 
program ex42; 
uses crt; 
 
var 
i: integer; 
begin 
clrscr; 
for i:= 1000 to 1999 do 
 begin 
 if i mod 11 = 5 then write(i:8); 
 end; 
readkey; 
end. 
 
43. Escrever um algoritmo/programa em Pascal que lê um valor N e calcula e 
escreve os 20 primeiros termos da série: 1 + 1/x2 + 1/x3 + 1/x4 + ... 
 
program ex43; 
uses crt; 
 
var 
x, i: integer; 
t, soma: real; 
begin 
clrscr; 
soma:=0; 
write('Informe um valor: '); 
readln(x); 
writeln('Termos:'); 
t:=1; 
writeln(t:0:8); 
soma:=soma+t; 
for i:= 2 to 20 do 
 begin 
 t:= 1/ (exp(ln(x)*i)); 
 writeln(t:0:8); 
 soma:=soma+t; 
 end; 
writeln('A soma e: ', soma:0:8); 
readkey; 
end. 
 
44. Escrever um algoritmo/programa em Pascal que calcula e escreve o produto 
dos números primos entre 92 e 1478. 
 
Questão do Trabalho. 
45. Escrever um algoritmo/programa em Pascal que lê N, inteiro e positivo e 
calcula e escreve o termo de ordem N da sucessão abaixo: ordem: 1 2 3 4 
 5 6 7 8 ... sucessão: -1 0 5 6 11 12 17 18 ... 
 
program ex45; 
uses crt; 
 
var x, i, nro: integer; 
begin 
clrscr; 
write('Informe um numero: '); 
readln(x); 
nro:=-1; 
for i:= 1 to x do 
 begin 
 write(nro:4); 
 if i mod 2 <> 0 then 
 begin 
 nro:=nro+1; 
 end 
 else 
 begin 
 nro:=nro+5; 
 end; 
 end; 
readkey; 
end. 
 
47.Escrever um algoritmo/programa em Pascal que lê um vetor V[6] e o 
escreve. Conte, a seguir quantos valores de V são negativos e escreva 
esta informação. 
 
program ex47; 
uses crt; 
var v: array[1..6] of integer; 
i, cont: integer; 
begin 
clrscr; 
for i:= 1 to 6 do 
 begin 
 writeln('Informe o ', i ,'§ valor: '); 
 readln(v[i]); 
 end; 
for i:= 1 to 6 do 
 begin 
 writeln(v[i]); 
 end; 
cont:=0; 
for i:= 1 to 6 do 
 begin 
 if v[i]<0 then 
 begin 
 cont:=cont+1; 
 end; 
 end; 
writeln('Existem ',cont,' valores negativos.'); 
readkey; 
end. 
 
48. Escrever um algoritmo/programa em Pascal que lê um vetor X(100) e 
o escreve. Substitua, a seguir, todos os valores nulos de X por 1 e 
escreva novamente o vetor x 
 
program ex48; 
uses crt; 
var 
x: array[1..100] of integer; 
i: integer; 
begin 
clrscr; 
for i:= 1 to 100 do 
 begin 
 writeln('Informe o ', i ,'§ valor: '); 
 readln(x[i]); 
 end; 
for i:= 1 to 100 do 
 begin 
 writeln(x[i]); 
 end; 
for i:= 1 to 100 do 
 begin 
 if x[i]=0 then 
 begin 
 x[i]:=1; 
 end; 
 end; 
for i:= 1 to 100 do 
 begin 
 writeln(x[i]); 
 end; 
readkey; 
end. 
 
 
 
49. Escrever um algoritmo/programa em Pascal que lê um vetor C[50] e o 
escreve. Encontre, a seguir, o maior elemento de C e o escreva. 
 
program ex49; 
uses crt; 
var 
c: array[1..50] of integer; 
m, i: integer; 
begin 
clrscr; 
for i:= 1 to 50 do 
 begin 
 writeln('Informe o ', i ,'§ valor: '); 
 readln(c[i]); 
 end; 
for i:= 1 to 50 do 
 begin 
 writeln(c[i]); 
 end; 
m:=c[1]; 
for i:= 1 to 50 do 
 begin 
 if c[i]>m then 
 begin 
 m:=c[i]; 
 end; 
 end; 
writeln('O maior valor e: ', m); 
readkey; 
end. 
 
 
50. Escrever um algoritmo/programa em Pascal que lê um vetor N[80] e o 
escreve. Encontre, a seguir, o menor elemento e a sua posição no vetor 
N e escreva: "o menor elemento de n é = ", M, "e a sua posição é = ", 
P. 
 
program ex50; 
uses crt; 
var 
n: array[1..80] of integer; 
m, p, i: integer; 
begin 
clrscr; 
for i:= 1 to 80 do 
 begin 
 writeln('Informe o ', i ,'§ valor: '); 
 readln(n[i]); 
 end; 
for i:= 1 to 80 do 
 begin 
 writeln(n[i]); 
 end; 
m:=n[1]; 
p:=1; 
for i:= 1 to 80 do 
 begin 
 if n[i]<m then 
 begin 
 m:=n[i]; 
 p:=i; 
 end; 
 end; 
writeln('O menor valor e: ', m, ' e esta na posicao ', p); 
readkey; 
end. 
 
 
 
51. Escrever um a1goritmo que lê um vetor A[15] e o escreve. Ordene, a 
seguir os elementos de A em ordem crescente e escreva novamente A. 
 
program ex51; 
uses crt; 
var 
a: array[1..15] of integer; 
aux, j, i: integer; 
begin 
clrscr; 
for i:= 1 to 15 do 
 begin 
 writeln('Informe o ', i ,'§ valor: '); 
 readln(a[i]); 
 end; 
writeln('Vetor original: '); 
for i:= 1 to 15 do 
 begin 
 write(a[i]:5); 
 end; 
for i:= 1 to 14 do 
 begin 
 for j:= i+1 to 15 do 
 begin 
 if a[i]>a[j] then 
 begin 
 aux:=a[i]; 
 a[i]:=a[j]; 
 a[j]:=aux; 
 end; 
 end; 
 end; 
writeln; 
writeln('Vetor em ordem crescente: '); 
for i:= 1 to 15 do 
 begin 
 write(a[i]:5); 
 end; 
readkey; 
end. 
 
 
52. Escrever um algoritmo/programa em Pascal que lê um vetor N[20] e o 
escreve. Troque, a seguir, o 1º elemento com o último, o 2º com o 
penúltimo, etc., até o 10º com o 11º e escreva o vetor N assim 
modificado. 
 
program ex52; 
uses crt; 
var 
n: array[1..20] of integer; 
aux, i: integer; 
begin 
clrscr; 
for i:= 1 to 20 do 
 begin 
 writeln('Informe o ', i ,'§ valor: '); 
 readln(n[i]); 
 end; 
writeln('Vetor original: '); 
for i:= 1 to 20 dobegin 
 write(n[i]:5); 
 end; 
for i:= 1 to 10 do 
 begin 
 aux:=n[i]; 
 n[i]:=n[21-i]; 
 n[21-i]:=aux; 
 end; 
writeln; 
writeln('Vetor alterado: '); 
for i:= 1 to 20 do 
 begin 
 write(n[i]:5); 
 end; 
readkey; 
end. 
 
 
53. Escrever um algoritmo/programa em Pascal que lê um vetor K(20) e o 
escreve. Troque, a seguir, os elementos de ordem ímpar com os de ordem 
par imediatamente seguintes e escreva o vetor k modificado. 
 
program ex53; 
uses crt; 
var 
k: array[1..20] of integer; 
aux, i: integer; 
begin 
clrscr; 
for i:= 1 to 20 do 
 begin 
 writeln('Informe o ', i ,'§ valor: '); 
 readln(k[i]); 
 end; 
writeln('Vetor original: '); 
for i:= 1 to 20 do 
 begin 
 write(k[i]:5); 
 end; 
for i:= 1 to 20 do 
 begin 
 if i mod 2<>0 then 
 begin 
 aux:=k[i]; 
 k[i]:=k[i+1]; 
 k[i+1]:=aux; 
 end; 
 end; 
writeln; 
writeln('Vetor alterado: '); 
for i:= 1 to 20 do 
 begin 
 write(k[i]:5); 
 end; 
readkey; 
end. 
 
 
54. Escrever um algoritmo/programa em Pascal que lê um vetor N[20] e o 
escreve. Troque, a seguir, o 1º elemento com 11º, o 2º com o 12º, 
etc., até o 10º com o 20º e escreva o vetor assim modificado. 
 
program ex54; 
uses crt; 
var 
n: array[1..20] of integer; 
aux, i: integer; 
begin 
clrscr; 
for i:= 1 to 20 do 
 begin 
 writeln('Informe o ', i ,'§ valor: '); 
 readln(n[i]); 
 end; 
writeln('Vetor original: '); 
for i:= 1 to 20 do 
 begin 
 write(n[i]:5); 
 end; 
for i:= 1 to 10 do 
 begin 
 aux:=n[i]; 
 n[i]:=n[10+i]; 
 n[10+i]:=aux; 
 end; 
writeln; 
writeln('Vetor alterado: '); 
for i:= 1 to 20 do 
 begin 
 write(n[i]:5); 
 end; 
readkey; 
end. 
 
 
55. Escrever um algoritmo/programa em Pascal que lê um vetor G[20] 
(gabarito) e a seguir lê um número não determinado de números de 
alunos e vetores R[20] (resposta), um número e um vetor R de cada vez. 
O número representa o número de um aluno e o vetor R representa o 
conjunto de respostas daquele aluno. Para cada aluno calcular o nº de 
acertos e ca1cular a nota. 
 nota = número de acertos * 0.5 
Escrever o nº do aluno, sua nota e a mensagem "aprovado" se tiver 
nota maior ou igual a 5 ou "reprovado" se a nota for menor do que 5. 
 
program ex55; 
uses crt; 
var 
g, r:array[1..20] of integer; 
numal, acertos, i: integer; 
nota: real; 
 
begin 
clrscr; 
writeln('Informe o Gabarito: '); 
for i:= 1 to 20 do 
 begin 
 write('Resposta ',i,': '); 
 readln(g[i]); 
 end; 
repeat 
clrscr; 
writeln('Informe o Numero do Aluno (0 para sair): '); 
readln(numal); 
if numal>0 then 
 begin 
 writeln('Informe as respostas do aluno ',numal); 
 for i:= 1 to 20 do 
 begin 
 write('Resposta ',i,': '); 
 readln(r[i]); 
 end; 
 acertos:=0; 
 for i:= 1 to 20 do 
 begin 
 if r[i]=g[i] then 
 begin 
 acertos:=acertos+1; 
 end; 
 end; 
 nota:=acertos * 0.5; 
 writeln('O aluno ', numal, ' obteve a nota ', nota:0:1); 
 if nota>=5 then 
 begin 
 writeln('Esta aprovado!') 
 end 
 else 
 begin 
 writeln('Esta reprovado!'); 
 end; 
 readkey; 
 end; 
until numal=0; 
end. 
 
 
56. Escrever um algoritmo/programa em Pascal que lê 2 vetores K[10] e 
N[10] e os escreve. Crie, a seguir, um vetor M que seja a diferença 
entre K e N (M = K - N) e escreva o vetor M. 
 
program ex56; 
uses crt; 
var 
k, n, m: array[1..10] of integer; 
i: integer; 
begin 
clrscr; 
for i:= 1 to 10 do 
 begin 
 writeln('Informe o ', i ,'§ valor do vetor N: '); 
 readln(n[i]); 
 end; 
for i:= 1 to 10 do 
 begin 
 writeln('Informe o ', i ,'§ valor do vetor K: '); 
 readln(k[i]); 
 end; 
for i:= 1 to 10 do 
 begin 
 m[i]:=k[i]-n[i]; 
 end; 
writeln('Vetor N: '); 
for i:= 1 to 10 do 
 begin 
 write(n[i]:5); 
 end; 
writeln; 
writeln('Vetor K: '); 
for i:= 1 to 10 do 
 begin 
 write(k[i]:5); 
 end; 
writeln; 
writeln('Vetor M: '); 
for i:= 1 to 10 do 
 begin 
 write(m[i]:5); 
 end; 
readkey; 
end. 
 
 
57. Escrever um algoritmo/programa em Pascal que lê um vetor G[13] que 
é o Gabarito de um teste da loteria esportiva, contendo os valores 1 
(coluna 1), 2(coluna 2), e 3 (coluna do meio). Ler, a seguir, para 
cada apostador, o nº de seu cartão e um vetor Resposta R[13]. 
Verificar para cada apostador o nº de acertos e escrever o nº do 
apostador e seu número de acertos. Se tiver 13 acertos, acrescentar 
a mensagem: "ganhador, parabéns!". 
 
program ex57; 
uses crt; 
var 
g, r:array[1..13] of integer; 
numcart, acertos, i: integer; 
 
begin 
clrscr; 
writeln('Informe o Resultado da Loteria (Gabarito): '); 
for i:= 1 to 13 do 
 begin 
 write('Jogo ',i,': '); 
 readln(g[i]); 
 end; 
repeat 
clrscr; 
writeln('Informe o Numero do Cartao (0 para sair): '); 
readln(numcart); 
if numcart>0 then 
 begin 
 writeln('Informe as respostas do cartao ',numcart); 
 for i:= 1 to 13 do 
 begin 
 write('Jogo ',i,': '); 
 readln(r[i]); 
 end; 
 acertos:=0; 
 for i:= 1 to 13 do 
 begin 
 if r[i]=g[i] then 
 begin 
 acertos:=acertos+1; 
 end; 
 end; 
 writeln('O cartao ', numcart, ' obteve ', acertos,' acertos!'); 
 if acertos=13 then 
 begin 
 writeln('Ganhador, Parabens!') 
 end; 
 readkey; 
 end; 
until numcart=0; 
end. 
 
 
58. Escrever um algoritmo/programa em Pascal que lê, um vetor V[20] e 
o escreve. Compacte, a seguir, o vetor Y, retirando dele todos os 
valores nulos ou negativos e escreva o vetor compactado. 
 
program ex58; 
uses crt; 
var 
v, y: array[1..20] of integer; 
cont, i: integer; 
begin 
clrscr; 
for i:= 1 to 20 do 
 begin 
 writeln('Informe o ',i, '§ valor: '); 
 readln(v[i]); 
 end; 
cont:=0; 
for i:= 1 to 20 do 
 begin 
 if v[i]>0 then 
 begin 
 cont:=cont+1; 
 y[cont]:=v[i]; 
 end; 
 end; 
clrscr; 
writeln('Vetor original:'); 
for i:= 1 to 20 do 
 begin 
 write(v[i]:5); 
 end; 
writeln; 
writeln('Vetor compactado: '); 
for i:= 1 to cont do 
 begin 
 write(y[i]:5); 
 end; 
readkey; 
end. 
 
 
59. Escrever um algoritmo/programa em Pascal que lê um vetor V(20) e o 
escreve. Retire, a seguir, os elementos em duplicata, compactando o 
vetor Y, e escrevendo o vetor compactado. 
 
program ex59; 
uses crt; 
var 
v, y: array[1..20] of integer; 
contpos,cont, i, j: integer; 
begin 
clrscr; 
for i:= 1 to 20 do 
 begin 
 writeln('Informe o ',i, '§ valor: '); 
 readln(v[i]); 
 end; 
contpos:=0; 
for i:= 1 to 20 do 
 begin 
 cont:=0; 
 for j:=1 to contpos do 
 begin 
 if y[j]=v[i] then 
 begin 
 cont:=cont+1; 
 end; 
 end; 
 if cont=0 then 
 begin 
 contpos:=contpos+1; 
 y[contpos]:=v[i]; 
 end; 
 end; 
clrscr; 
writeln('Vetor original:'); 
for i:= 1 to 20 do 
 begin 
 write(v[i]:5);end; 
writeln; 
writeln('Vetor compactado: '); 
for i:= 1 to contpos do 
 begin 
 write(y[i]:5); 
 end; 
readkey; 
end. 
 
 
61. Escrever um algoritmo/programa em Pascal que lê o 1º termo e a 
razão de uma progressão aritmética e gera os vinte termos seguintes 
desta progressão, armazenando-os em 2 vetores de 10 elementos cada, no 
1º os termos de ordem ímpar de geração e no 2º os de ordem par de 
geração. Escreva a seguir os 2 vetores de forma que os termos 
apareçam na ordem em que foram gerados. 
 
program ex61; 
uses crt; 
var 
vpar, vimpar: array[1..10] of integer; 
t1, r, x, i: integer; 
begin 
clrscr; 
writeln('1.o termo: '); 
readln(t1); 
writeln('Razao: '); 
readln(r); 
x:=t1; 
for i:= 1 to 10 do 
 begin 
 vimpar[i]:=x; 
 x:=x+r; 
 vpar[i]:=x; 
 x:=x+r; 
 end; 
for i:= 1 to 10 do 
 begin 
 write(vimpar[i]:5, vpar[i]:5); 
 end; 
readkey; 
end. 
 
 
62. Escrever um algoritmo/programa em Pascal que gera os 10 primeiros 
números primos acima de 100 e os armazena em um vetor X(10) 
escrevendo, no final, o vetor X. 
 
program ex62; 
uses crt; 
var 
x: array[1..10] of integer; 
i, num, contdiv, contprimo: integer; 
begin 
clrscr; 
contprimo:=0; 
num:=100; 
repeat 
num:=num+1; 
contdiv:=0; 
for i:= 1 to num do 
 begin 
 if num mod i=0 then 
 begin 
 contdiv:=contdiv+1; 
 end; 
 end; 
if contdiv<=2 then 
 begin 
 contprimo:=contprimo+1; 
 x[contprimo]:=num; 
 end; 
until contprimo=10; 
writeln('Os numeros primos sao: '); 
for i:= 1 to 10 do 
 begin 
 writeln(x[i]); 
 end; 
readkey; 
end. 
 
 
63. Escreva um algoritmo/programa em Pascal que lê uma matriz M(5,5) e 
calcula as somas: 
a) da linha 4 de M 
b) da coluna 2 de M 
c) da diagonal principal 
d) da diagonal secundária 
e) de todos os elementos da matriz 
Escreva estas somas e a matriz. 
 
program ex63; 
uses crt; 
var 
m: array[1..5,1..5] of integer; 
i, j, sl4, sc2, sdp, sds, soma: integer; 
begin 
sl4:=0; sc2:=0; 
sdp:=0; sds:=0; 
soma:=0; 
clrscr; 
writeln('Informe a matriz: '); 
for i:= 1 to 5 do 
 begin 
 for j:= 1 to 5 do 
 begin 
 gotoxy(j*6,i+1); 
 readln(m[i,j]); 
 end; 
 end; 
clrscr; 
writeln('Matriz: '); 
for i:= 1 to 5 do 
 begin 
 for j:= 1 to 5 do 
 begin 
 gotoxy(j*6,i+1); 
 write(m[i,j]:6); 
 end; 
 end; 
for j:= 1 to 5 do 
 begin 
 sl4:=sl4+m[4,j]; 
 end; 
for i:= 1 to 5 do 
 begin 
 sc2:=sc2+m[i,2]; 
 end; 
for i:= 1 to 5 do 
 begin 
 sdp:=sdp+m[i,i]; 
 sds:=sds+m[i,6-i]; 
 end; 
for i:= 1 to 5 do 
 begin 
 for j:= 1 to 5 do 
 begin 
 soma:=soma+m[i,j]; 
 end; 
 end; 
writeln; 
writeln('Soma linha 4: ',sl4); 
writeln('Soma coluna 2: ',sc2); 
writeln('Soma diagonal principal: ',sdp); 
writeln('Soma diagonal secundaria: ',sds); 
writeln('Soma de toda matriz: ',soma); 
readkey; 
end. 
 
64. Escrever um algoritmo/programa em Pascal que lê uma matriz M(6,6) 
e calcula as somas das partes hachuriadas. 
 
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 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 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 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 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 
 
Escrever a matriz M e as somas calculadas 
 
65. Escrever um algoritmo/programa em Pascal que lê uma matriz 
M(10,10) e a escreve. Troque, a seguir: 
 - a linha 2 com a linha 8. 
 - a coluna 4 com a coluna 10 
 - a diagonal principal com a secundária 
 - a linha 5 com a coluna 10 
Escreva a matriz assim modificada. 
 
program ex65; 
uses crt; 
var 
m: array[1..10,1..10] of integer; 
aux, i, j: integer; 
begin 
clrscr; 
writeln('Informe a matriz: '); 
for i:= 1 to 10 do 
 begin 
 for j:= 1 to 10 do 
 begin 
 gotoxy(j*6,i+1); 
 {readln(m[i,j]);} 
 m[i,j]:=(i-1)*10+j; 
 end; 
 end; 
clrscr; 
writeln('Matriz: '); 
for i:= 1 to 10 do 
 begin 
 for j:= 1 to 10 do 
 begin 
 gotoxy(j*6,i+1); 
 write(m[i,j]:6); 
 end; 
 end; 
readkey; 
clrscr; 
writeln('Troca da linha 2 com a linha 8:'); 
for j:= 1 to 10 do 
 begin 
 aux:=m[2,j]; 
 m[2,j]:=m[8,j]; 
 m[8,j]:=aux; 
 end; 
for i:= 1 to 10 do 
 begin 
 for j:= 1 to 10 do 
 begin 
 gotoxy(j*6,i+1); 
 write(m[i,j]:6); 
 end; 
 end; 
readkey; 
clrscr; 
writeln('Troca da coluna 4 com a coluna 10:'); 
for i:= 1 to 10 do 
 begin 
 aux:=m[i,4]; 
 m[i,4]:=m[i,10]; 
 m[i,10]:=aux; 
 end; 
for i:= 1 to 10 do 
 begin 
 for j:= 1 to 10 do 
 begin 
 gotoxy(j*6,i+1); 
 write(m[i,j]:6); 
 end; 
 end; 
readkey; 
clrscr; 
writeln('Troca da diagonal principal com a secundaria:'); 
for i:= 1 to 10 do 
 begin 
 aux:=m[i,i]; 
 m[i,i]:=m[i,11-i]; 
 m[i,11-i]:=aux; 
 end; 
for i:= 1 to 10 do 
 begin 
 for j:= 1 to 10 do 
 begin 
 gotoxy(j*6,i+1); 
 write(m[i,j]:6); 
 end; 
 end; 
readkey; 
clrscr; 
writeln('Troca da linha 5 com a coluna 10:'); 
for i:= 1 to 10 do 
 begin 
 aux:=m[5,i]; 
 m[5,i]:=m[i,10]; 
 m[i,10]:=aux; 
 end; 
for i:= 1 to 10 do 
 begin 
 for j:= 1 to 10 do 
 begin 
 gotoxy(j*6,i+1); 
 write(m[i,j]:6); 
 end; 
 end; 
readkey; 
end.

Outros materiais