Passagem de parametroA passagem pode ser por referencia ou por valor.Vamos ao exemplo de passagem de parametro por referencia:Program ext4 ; var n1,n2,op : integer; function subt( var a: integer; b:integer): integer; var x: integer; Begin x := a - b; subt := x; writeln('O Resultado da subtracao e:',x); end;Begin repeat Writeln('Digite o primeiro numero '); readln(n1); Writeln('Digite o segundo numero '); readln(n2); writeln(subt(n1,n2)); writeln(' Digite 1- Novo 2- Sair '); readln(op); until(op=2); End.Explicacao:1-Declarei as variaveis Globais.2-Criei uma Funcao por referencia. Contem Var: na declaracao das variaveis que retornaram valor.3-Coloquei a equacao dentro da funcao.4-Comecei o programa principal e pedi os numeros e li eles.5-Chamei a Funcao, subt(n1,n2), n1 e n2 sao as variaveis que vao receber os numeros digitados.6-No programa principal fiz um Repeat para nao ter que ficar abrindo o programa toda hora.Agora por valor:PROGRAM PotenciaExp5_de_4_valores;VAR valor1,valor2,valor3,valor4:INTEGER;PROCEDURE Leitura(n:INTEGER;VAR num:INTEGER);BEGIN REPEAT WRITE('Escreva o ',n,' valor -> '); READLN(num); UNTIL (num>0) AND (num<51);END;FUNCTION Potenciaexp5(x:INTEGER):INTEGER;BEGIN potenciaexp5:=(SQR(x)*SQR(x)*x);END;PROCEDURE Escrita(n,auxresult:INTEGER);BEGIN WRITELN('A Potncia de expoente 5 de ',n,' ',auxresult);END;BEGIN { bloco principal } Leitura(1,valor1); Leitura(2,valor2); Leitura(3,valor3); Leitura(4,valor4); Escrita(valor1,potenciaexp5(valor1)); Escrita(valor2,potenciaexp5(valor2)); Escrita(valor3,potenciaexp5(valor3)); Escrita(valor4,potenciaexp5(valor4));END. Agora vamos aprender o WHILE DOUsando o while pedimos ao Pascal para repetir "enquanto" a expressao for verdadeira.Vamos ao exemplo:Program Pzim ;varn:integer;cont:string; Begin cont:='sim'; while (cont='sim') do begin writeln('Digite um numero');readln(n); writeln('Voce digitou o numero ', n); writeln('digite sim para continuar ou qualquer tecla para sair');readln(cont); end; End.Explicacao:1-Declarei as variaveis, dentre elas a variavel CONT do tipo STRING.2-Declarei que a variavel conte recebe o valor da palavra SIM.3-Esse e o While, vamos usar a variavel, enquanto cont for igual a SIM repita.4-Vai pedir seu nome, ler ele, e perguntar se voce quer digitar outro nome.5-Se voce digitar SIM ele vai entender que cont foi verdade, e volta a perguntar seu nome, se voce digitar NAO a reposta vai ser falsa, e portanto ele saira do porgrama.Agora vamos dar um valor para o WHILE repetir, vamos fazer um programa que faca uma operacao facil e simples de adicao.Exemplo:Program Pzim ;vara,b,c,cont:integer; Begin while (cont<7) do begin write('Digite o primeiro numero numero');readln(a); write('Digite o segundo numero');readln(b); writeln('A soma dos numeros e: ', a+b); cont:=cont+1; end; End.Explicacao:1-Declarei as variaveis,cont sera o contador, A o primeiro numero e B o segundo.2-Pedi os numeros e li.3-Criei um contador, ou seja CONT vai receber CONT mais 1.4-ele vai exibir a resposta da adicao e pedir novamente novos numeros ate o numero que voce deu de limite no programa. Vamos agora a estrutura de repeticao REPEAT UNTIL que quer dizer repita atevamos ao programa:Program Pzim ;varnome:string;idade,op:integer; Begin repeat writeln('Digite seu nome'); Readln(nome); Writeln('Digite sua idade'); readln(idade); writeln('1-Novo ou 2-Sair'); readln(op); until (op=2); End.Explicacao:1-Declarei as variaveis, NOME, IDADE, e OP.2-Coloquei o REPEAT de onde ele vai comecar a repitir.3-Pedi o nome, li o nome, pedi a idade, li a idade.4-E perguntei se ele queria 1 para novos dados ou 2 para sair.5-Coloquei o UNTIL que quer dizer onde ele vai parar de repetir e OP igual a 2 para que saia da repeticao.6-Se digitar 1 ele repete as perguntas anteriores ate que para sair voce digite o numero 2. Definicao: Uma das tecnicas mais utilizadas