Instituto de Computação - UNICAMP

MC111 - Introdução ao Processamento de Dados

Laboratório 6

Islene Calciolari Garcia

Primeiro semestre de 2002

O objetivo deste laboratório é explorar as diferenças entre a passagem de parâmetros por referência (utilizando var) e por valor (sem utilizar var) em Pascal.

1. Procedimento troca

Implemente o procedimento troca e um programa principal que o invoque. Faça testes com var e sem var na declaração do procedimento.
program teste_troca;
 procedure troca (var x, y: integer);
 var ...
    begin
      ...
    end;

var
   a, b: integer;
begin 
   write('a: '); read(a);
   write('b: '); read(b);
   troca(a,b);
   write('a: ', a, 'b: ', b); 
end.

Resolução

Teste sem var

2. Procedimento Ordena

De maneira análoga ao que foi feito no item 1, escreva um procedimento que ordena quatro valores e um programa principal que invoque este procedimento. Você deve utilizar o procedimento troca para fazer a ordenação. Além disso, você deve fazer testes com e sem var na declaração dos procedimentos.

procedure ordena (var a, b, c, d: integer);

Resolução

3. Procedimento max_min

Utilizando o procedimento ordena, escreva um procedimento que retorna o valor máximo e o valor mínimo entre quatro valores:

procedure max_min (a, b, c, d: integer; var max, min: integer);

Se você fizer uma chamada no programa principal da seguinte forma:

max_min (x, y, w, z, max, min);

os valores das variáveis x, y, w, z serão alterados devido à utilização do procedimento ordena?

Resolução


Islene Calciolari Garcia