quinta-feira, 25 de novembro de 2010

procedimentos e funções

1.Faça um programa que leia dois valores e chame uma sub-rotina (procedure) que receba essa duas variáveis e troque o seu conteúdo, ou seja, esta rotina é chamada passando duas variáveis A e B por exemplo, e após a execução da rotina A conterá p valor de B e B terá o valor de A.

Program Pzim ;
var
x,y:integer;

procedure troca(var a,b:integer);
var
temp:integer;
begin
temp:=a;
a:=b;
b:=temp;

end;

Begin
writeln('Digite o numero A:');
readln(x);
writeln('Digite o numero B:');
readln(y);

troca(x,y);

writeln('O valor de A trocado por B e:',x);
writeln('O valor de B trocado por A e:',y);
End.

2.Altere o programa anterior de forma a ler 4 valore em 4 variáveis: A, B C, D. Use a rotina “Troca_valores” implementada no programa anterior para a troca de valores de A com B, depois de C com D, mostre como ficaram os valores da variável, e para concluir destroque seus conteúdos mostrando novamente na tela como ficaram estas variáveis.

Program Pzim ;
var
x,y,z,w:integer;

procedure troca(var a,b:integer);
var
temp:integer;
begin
temp:=a;
a:=b;
b:=temp;
end;

Begin
writeln('Digite o numero A:');
readln(x);
writeln('Digite o numero B:');
readln(y);
writeln('Digite o numero C:');
readln(z);
writeln('Digite o numero D:');
readln(w);

troca(x,y);
troca(z,w);

writeln('O valor de A trocado por B e:',x);
writeln('O valor de B trocado por A e:',y);
writeln('O valor de C trocado por D e:',z);
writeln('O valor de D trocado por C e:',w);

troca(x,y);
troca(z,w);

writeln;
writeln('O valor de A inicial:',x);
writeln('O valor de B inicial:',y);
writeln('O valor de C inicial:',z);
writeln('O valor de D inicial:',w);
End.

3.Faça um programa que leia 2 valore e chame uma sub-rotina que receba estes 2 valores de entrada e retorne o maior valor na primeira variável e o segundo maior valor na segunda variável. Escreva o conteúdo dos dois valores na tela.

Program Maior_Menor;

var

valor1, valor2: integer;

procedure ledados;

Begin

writeln('Informe um valor: ');

readln(valor1);

writeln('Informe um segundo valor: ');

readln(valor2);

writeln('');

end;

procedure escrevedados;

Begin

if(valor1>valor2)then

writeln('O primeiro valor eh: ',valor1);

writeln('O segundo valor eh: ',valor2)

else

writeln('O primeiro valor eh: ',valor2);

writeln('O segundo valor eh: ',valor1);

end;

Begin

ledados;

escrevedados;

End.
4.Faça um programa que leia três valores e chame uma sub-rotina que receba estes 3 valores de entrada e retorne o maior valor entre estes três valores na primeira variável, o segundo maior valor da segunda variável e o terceiro maior valor na terceira variável. Exiba os valores ordenados na tela (sugestão: use a sub-rotina troca-valores).

Program Pzim ;

type prod = record
codMerc: integer;
descricao:string;
dataCadastro:integer;
ultimaSaida:integer;
saldoEstoque:integer;
end;

var
cont,m,c:integer;
cadastro: array[1..1000] of prod;

Begin
m:=0;
for cont:=1 to 2 do
begin
writeln('Codigo da mercadoria:');
readln(cadastro[cont].codMerc);
writeln('Descricao:');
readln(cadastro[cont].descricao);
writeln('Data de Cadastro:');
readln(cadastro[cont].dataCadastro);
writeln('Ultima saida:');
readln(cadastro[cont].ultimaSaida);
writeln('Saldo em estoque:');
readln(cadastro[cont].saldoEstoque);
writeln(' ----- ');
end;

clrscr;
writeln('TODOS OS PRODUTOS');
for cont:=1 to 2 do
begin
writeln('Codigo da mercadoria: ',cadastro[cont].codMerc);
writeln('Descricao: ',cadastro[cont].descricao);
writeln('Data de Cadastro: ',cadastro[cont].dataCadastro);
writeln('Ultima saida: ',cadastro[cont].ultimaSaida);
writeln('Saldo em estoque: ',cadastro[cont].saldoEstoque);
writeln(' ----- ');
end;

5) Faça um programa que leia um número e gere todos os números primos entre 1 e este número fornecido, exibindo-os na tela. O programa deve ter uma sub-rotina que determine se o determinado número é ou não primo.

Program Pzim ;
var
k,nm,num: integer;
ehPrimo: boolean;

procedure testaPrimo(a:integer);
var
cont,j,i :integer;

begin
for i:=1 to a do
begin
j:=(a mod i);
if(j=0)then
cont:= cont+1;
end;
if(cont=2)then
ehPrimo:=true
else
ehPrimo:=false;
end;


Begin
writeln('Digite um numero:');
readln(nm);
ehPrimo:=false;
for k:=1 to nm do
begin
testaPrimo(k);
if (ehPrimo) then
write(k ,'-');
end;

End.

6.Usando uma sub-rotina que exiba uma moldura na tela em uma janela definida pelo usuário, faça outra sub-rotina que escreva uma mensagem na tela pedindo para ler 2 números (um de cada vez), leia estes números e retorne para o programa principal. A mensagem e as leituras dos números devem ser feita dentro de uma janela com moldura. Em seguida exiba a média aritmética simples destes números também usando uma janela com molduras.

--------------

7) Faça um programa que leia 5 números. Este programa deve ter um menu que permita ao usuário escolher qual opção de cálculo ele deve realizar: média aritmética simples, média ponderada, desvio padrão, maior valor e menor valor . A leitura dos valores também deve ser uma das opções do menu.

Program Pzim ;
var
op:integer;
trava:boolean;
n1,n2,n3,n4,n5:integer;


procedure p1;
begin
trava:=false;
writeln('1 - Digite o valor:');
read(n1);
writeln('2- Digite o valor:');
read(n2);
writeln('3 - Digite o valor:');
read(n3);
writeln('4 - Digite o valor:');
read(n4);
writeln('5 - Digite o valor:');
read(n5);
end;

procedure p2;
var
media:real;
begin
media:=(n1+n2+n3+n4+n5)/5;

writeln('Media aritmetica e: ',media:2:2);
readln;
end;

procedure p3;
var
p1,p2,p3,p4,p5:integer;
media:real;
begin
writeln('Digite o peso 1:');
readln(p1);
writeln('Digite o peso 2:');
readln(p2);
writeln('Digite o peso 3:');
readln(p3);
writeln('Digite o peso 4:');
readln(p4);
writeln('Digite o peso 5:');
readln(p5);

media:=((n1*p1)+(n2*p2)+(n3*p3)+(n4*p4)+(n5*p5))/(p1+p2+p3+p4+p5);

writeln('A media ponderada e: ',media:2:2);
readln;
end;

procedure p5;
var
m:integer;
begin
if (n1>n2)and(n1>n3)and(n1>n4)and(n1>n5) then
m:=n1;
if (n2>n1)and(n2>n3)and(n2>n4)and(n2>n5) then
m:=n2;
if (n3>n1)and(n3>n2)and(n3>n4)and(n3>n5) then
m:=n3;
if (n4>n1)and(n4>n2)and(n4>n3)and(n4>n5) then
m:=n4;
if (n5>n1)and(n5>n2)and(n5>n3)and(n5>n4) then
m:=n5;

writeln('O maior numero e: ',m);
readln;

end;

procedure p6;
var
m:integer;
begin
if (n1<>7) do
begin
clrscr;
writeln('# MENU');
writeln('##########');
writeln('1- ENTRAR COM OS DADDOS');
writeln('2- MEDIA SIMPLES');
writeln('3- MEDIA PODERADA');
writeln('4- DESVIO PADRAO');
writeln('5- MAIOR VALOR');
writeln('6- MENOR VALOR');
writeln('7- SAIR');
readln(op);
menu;
end;
End.

Nenhum comentário:

Postar um comentário