procedimentos e funções
Autor: Jeh Corrêa | Publicado: 2010-11-25T13:17:00-08:00

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 ;varx,y:integer;procedure  troca(var a,b:integer);vartemp:integer;begintemp:=a;a:=b;b:=temp; end;Beginwriteln('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 ;varx,y,z,w:integer;procedure troca(var  a,b:integer);vartemp:integer;begintemp:=a;a:=b;b:=temp; end;Beginwriteln('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 ;vark,nm,num: integer;ehPrimo:  boolean;procedure testaPrimo(a:integer);varcont,j,i  :integer;beginfor i:=1 to a dobeginj:=(a mod i);if(j=0)thencont:=  cont+1;end;if(cont=2)thenehPrimo:=trueelseehPrimo:=false;  end;Beginwriteln('Digite um numero:');readln(nm);ehPrimo:=false;for  k:=1 to nm dobegintestaPrimo(k);if (ehPrimo) thenwrite(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 ;varop:integer;trava:boolean;n1,n2,n3,n4,n5:integer;procedure  p1;begintrava:=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;varmedia:real;beginmedia:=(n1+n2+n3+n4+n5)/5;writeln('Media  aritmetica e: ',media:2:2);readln;end;procedure p3;varp1,p2,p3,p4,p5:integer;media:real;beginwriteln('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;varm:integer;beginif  (n1>n2)and(n1>n3)and(n1>n4)and(n1>n5) thenm:=n1;if  (n2>n1)and(n2>n3)and(n2>n4)and(n2>n5) thenm:=n2; if  (n3>n1)and(n3>n2)and(n3>n4)and(n3>n5) thenm:=n3;if  (n4>n1)and(n4>n2)and(n4>n3)and(n4>n5) thenm:=n4;if  (n5>n1)and(n5>n2)and(n5>n3)and(n5>n4) thenm:=n5;writeln('O  maior numero e: ',m);readln;end;procedure p6;varm:integer;beginif  (n1<>7) dobeginclrscr;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.