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 Pzim ; varx,y:integer;procedure maior(var a,b:integer);vartemp:integer; begintemp:=a;if (a4.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 ; varx,y,z:integer;procedure maior(var a,b:integer);vartemp:integer; begintemp:=a;if (a5.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 ler 2 numeros (um de cada vez), leia estes numeros e retorne para o programa principal. A mensagem e as leituras dos numeros devem ser feita dentro de uma janela com moldura. Em seguida exiba a media aritmetica simples destes numeros tambem usando uma janela com molduras.--------------7.Faca um programa que leia 5 numeros. Este programa deve ter um menu que permita ao usuario escolher qual opcao de calculo ele deve realizar: media aritmetica simples, media ponderada, desvio padrao, maior valor e menor valor . A leitura dos valores tambem deve ser uma das opcoes 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