Você está na página 1de 2

VI.

PARMETROS e Formas (Modos) de Passagem de Parmetros



* Os conceitos expostos neste ponto so oriundos da Programao :

a) Parmetro Formal cada um daqueles (Parmetros) dentre os existentes
na Lista de Parmetros, no cabealho de um SubPrograma.
a) Parmetro Real cada um daqueles Argumentos dentre os existente na
Lista de Argumentos, de um Comando de Invocao de um SubPrograma.
Por isto, dito ser um Parmetro Real (ou Parmetro de Execuo).
As Formas de Passagem de Parmetros

Os livros-textos das disciplinas de (Teoria de) Linguagens de Programao
citam at 4 (quatro) formas de como pode ocorrer a chamada (do Ingls: call)
de um determinado Parmetro, na Invocao de um SubPrograma.
Cada uma de tais formas ou modos correspondendo a uma forma de como
deve ser feita a passagem do argumento (parmetro real) correspondente.

* Tais 4 formas so:
Call-by-Value (Chamada por Valor) * Interessam-nos, apenas,
Call-by-Reference (Chamada por Referncia) os dois primeiros casos.
Call-by-Name
Call-by-Value-Result

Observao: Em portugus, ao invs de dizer-se Chamada por acerca dos
parmetros costuma-se dizer Passagem por; a terminologia que usaremos.
* J o termo chamada usado (em portugus), mais comumente, no sentido de
Invocao (de um SubPrograma).

VI.1 Passagem de Parmetro POR VALOR

Forma mais simples e mais comumente utilizada (a usada sempre que possvel).
Nesta forma de passagem de parmetros cada Parmetro Formal (existente
na Lista de Parmetros do cabealho d um SubPrograma) receber, do respectivo
argumento (dos vrios existentes na Lista de Argumentos do Comando de uma
invocao do SubPrograma em questo) apenas, o seu valor atual

* NADA RECEBE QUANTO AO ENDEREO DE MEMRIA do Parmetro Real
(ou seja, do Argumento ou Parmetro de Execuo, daquele Parmetro Formal)
* Isto mesmo que tal Argumento seja uma Varivel, numa determinada Invocao.
CONSEQUNCIA (mais ou menos bvia ) : Nesta forma de Passagem de
Parmetro NO H como fazer-se retorno de resultado do processamento (*feito
pelo SubPrograma em questo), para aquele nvel no qual ocorreu a invocao (a
chamada) do SubPrograma em questo. (Ex.: Atribuio sobre Parmetro Real)
VI.2 Passagem de Parmetro POR REFERNCIA

* Modo especial de Passagem de Parmetro para SubPrograma Procedimento.
Nesta forma de Passagem de Parmetro, cada um Parmetro Formal assim
passado, recebe o prprio ENDEREO de Memria
(*)
do Argumento referente.
(*) Endereo fsico, na RAM, quando da execuo do programa.

Conseqncia IMPORTANTE: Qualquer alterao feita no valor do Parmetro
em questo (feita dentro daquele Procedimento
(*)
Ex.: uma atribuio de
resultado de algum processamento), se refletir na Posio de Memria (RAM)
do Argumento respectivo (e, consequentemente, no valor desse Argumento).
(*) NOTA : Acima, trata-se de SubPrograma da espcie PROCEDIMENTO !
(* Esta Forma de Passagem de Parmetro NO de aplicao adequada em
SubPrograma da espcie Funo. POR QU ? )

** Decorre, ento, que o Argumento referente a um Parmetro a ser passado por
referncia tem que ser uma VARIVEL
(*)
, do tipo especificado para tal Par-
metro. (e sempre do mesmo Tipo especificado para o Parmetro).
(*) Ou mesmo um campo num Registro, ou ainda uma posio num Vetor, mas
sempre um ente cujo valor possa variar, i.e, sempre uma Varivel. algo que
possa variar, i.e., possa ser alterado num processamento !

ATENO : Esta forma especial de Passagem de Parmetro para SubPrograma
da espcie Procedimento de uso obrigatrio sempre que for necessrio que
haja o retorno
(*)
de informao do Procedimento para o nvel que o invocou.
* Deve ser utilizada apenas em tais casos (pois, embora possa, teoricamente, ser
utilizada em outras situaes, tal no aconselhvel; isto, se v, na prtica).

NOTA FINAL:
Alm do acima colocado, bvio que h que haver algum modo de indica-
o (ou seja, algo o que sirva de indicao), na Lista de Parmetros do cabealho
de cada SubPrograma PROCEDIMENTO que use uma tal, de quais sero aqueles
Parmetros que devem ser passados por Referncia.
Na maioria das Linguagens de Programao tal indicao feita por meio
do acrscimo de uma Palavra-Chave (* usa-se o termo VAR
(*)
de VARIVEL)
antes do identificador do Parmetro referente.
(*) Por tal motivo, no pseudocdigo apresentado, adota-se esta mesma Palavra
como o MODO DE INDICAO da Passagem de Parmetro por Referncia.

Isto, para que o Compilador possa entender que o argumento referente dever
ser uma Varivel e, assim, poder gerar os comandos adequados, a serem
adequadamente interpretados pelo Sistema Operacional, quando da execuo do
programa.
Teresina, 12 de Agosto de 2.013.
(a) Prof. JOS ALBERTO Lemos Duarte

Você também pode gostar