1.Faca um programa que leia dois valores e chame uma sub-rotina (procedure) que receba essa duas variaveis e troque o seu conteudo, ou seja, esta rotina e chamada passando duas variaveis A e B por exemplo, e apos a execucao da rotina A contera p valor de B e B tera 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 variaveis: 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 variavel, e para concluir destroque seus conteudos mostrando novamente na tela como ficaram estas variaveis.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.Faca 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 variavel e o segundo maior valor na segunda variavel. Escreva o conteudo 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.Faca um programa que leia tres valores e chame uma sub-rotina que receba estes 3 valores de entrada e retorne o maior valor entre estes tres valores na primeira variavel, o segundo maior valor da segunda variavel e o terceiro maior valor na terceira variavel. Exiba os valores ordenados na tela (sugestao: 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) Faca um programa que leia um numero e gere todos os numeros primos entre 1 e este numero fornecido, exibindo-os na tela. O programa deve ter uma sub-rotina que determine se o determinado numero e ou nao 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 usuario, faca outra sub-rotina que escreva uma mensagem na tela pedindo para