sábado, 23 de janeiro de 2010

algoritmos em linguagem pascal

aqui estão disponíveis alguns algoritmos em liguagem pascal. alguns já compilaram outros tem alguns erros.por favor add mais algoritmos.
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 amos begin
aux := a;
a := c;
c := aux;
end;
if a begin
aux := a;
a := d;
d := aux;
end;
if b begin
aux := b;
b := c;
c := aux;
end;
if b begin
aux := b;
b := d;
d := aux;
end;
if c 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 Serie Fibonacci:');
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.