A maior rede de estudos do Brasil

Grátis
51 pág.
Algoritmo

Pré-visualização | Página 12 de 12

parâmetros formais pelos reais 
quando um subalgoritmo é chamado. Os parâmetros são passados de duas maneiras diferentes, por valor 
e por referência: 
 Passagem de Parâmetro por Valor 
A passagem de parâmetro por valor caracteriza-se pela não alteração do valor do parâmetro real 
quando o parâmetro formal é manipulado dentro do subalgoritmo. Assim, o valor passado pelo parâmetro 
real é copiado para o parâmetro formal. A execução do algoritmo ocorre normalmente e todas as 
modificações feitas no parâmetro formal não afetam o parâmetro real, pois, trabalha-se apenas com uma 
cópia do mesmo. 
Resumindo: 
leia ( X, Y ) 
chamar SOMA (X, Y) 
leia ( R, S ) 
chamar SOMA (R, S) 
chamar SOMA (8, 2) 
 
48 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
• O valor do parâmetro real é, literalmente, copiado como valor do correspondente parâmetro 
formal; 
• As mudanças feitas no argumento formal não são refletidas no argumento real. 
 Passagem de Parâmetro por Referência 
A passagem de parâmetro por referência é caracterizada pela ocorrência de alteração no valor do 
parâmetro real quando o formal é manipulado dentro do subalgoritmo. Dessa forma, qualquer modificação 
feita no parâmetro formal implica alteração no parâmetro real correspondente, sendo assim, pode-se dizer 
que o parâmetro é de entrada e saída. 
Resumindo: 
• O argumento real e o formal referem-se à mesma localização. 
• Qualquer mudança feita no argumento formal é refletida no argumento real. 
Para diferenciar a passagem de parâmetro por valor da passagem de parâmetro por referência, foi 
definido que, na passagem de parâmetro por referencia, a declaração da variável no subalgoritmo é feita 
utilizando a palavra reservada var, veja o exemplo a seguir: 
 
 
Assim, quando não ocorrer à utilização da palavra var, significa que a passagem de parâmetro é 
por valor. 
 De forma a entender toda a teoria abordada nesse capítulo, será apresentado o exemplo de um 
algoritmo que realiza algumas operações matemáticas, para tanto faz uso de subalgoritmos. 
No exemplo a seguir, foram utilizados dois subalgoritmos, um para calcular a soma, e outro para 
calcular a multiplicação, de dois valores. A soma foi realizada através da utilização da função SOMA que, 
como visto anteriormente, utiliza o próprio nome para chamada da função (escreva SOMA (X, Y)), e a 
multiplicação, realizada através de um procedimento que é invocado através da utilização do termo 
chamar (chamar MULT (X, Y, M)). 
 As variáveis X, Y e M são variáveis globais, poderiam ter sido utilizadas nos subalgoritmos, 
porém, optou-se pela não utilização para maior clareza. Já as variáveis A, B, K, L e N, são variáveis 
locais, utilizadas somente pelos subalgoritmos. 
Os parâmetros X, Y e M, são reais, aparecem na chamada do subalgoritmo e, os parâmetros A, B, 
K, L e N são formais, pois, aparecem na definição dos subalgoritmos. 
procedimento SOMA (var A: inteiro) 
49 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 A passagem dos parâmetros X e Y são por valor, pois parâmetros A e B, respectivos à X e Y em 
um subalgoritmo, e os parâmetros K e L, respectivos à X e Y no outro, tem em sua definição a 
característica da passagem de parâmetro por valor. Assim, qualquer modificação nos valores de A, B, K, L 
não afetam os valores de X e Y. Já a passagem do parâmetro M é por referência, pois, o parâmetro N, 
respectivo a M no subalgoritmo, tem em sua definição a característica da passagem de parâmetro por 
referência, ou seja, utiliza o termo var. Portanto, qualquer modificação no valor N afeta, diretamente, o 
valor de M. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Veja, por exemplo, o trecho do algoritmo que mostra a definição das passagens dos parâmetros. 
 
algoritmo Operacoes 
real: X, Y, M 
início 
 leia ( X, Y ) 
 escreva ( SOMA (X, Y) ) 
 chamar MULT (X, Y, M) 
 escreva ( M ) 
 função SOMA (A, B) 
 real: A, B, SOMA 
 inicio 
 SOMA ← A + B 
 fimfunção 
 procedimento MULT (K, L: real, var N: real) 
 inicio 
 N ← K * L 
 fimprocedimento 
fim. 
Chamada da Função 
Chamada do 
Procedimento 
Definições do 
Procedimento 
Definições da Função 
50 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 
 procedimento MULT ( K, L: real, var N: real ) 
 
 
 passagem de parâmetro passagem de parâmetro 
 por valor por referência 
EXERCÍCIOS PROPOSTOS 
1. Fazer um programa que leia dois números reais, inverta a ordem dos números e os imprima em 
ordem trocada, para isso utilize um subprograma chamado TROCA. 
2. Fazer um programa que leia dois números e os imprima em ordem crescente, para isso um 
subprograma chamando ORDEM. 
3. Fazer um programa (para cada item) que, dados três números reais, calcule e imprima a soma destes 
três números e o produto desses três números, para isso utilize os subprogramas SOMA e 
MULTIPLICACAO, sendo que: 
a) SOMA e MULTIPLICACAO são funções; 
b) SOMA é função e MULTIPLICACAO procedimento; 
c) SOMA é procedimento e MULTIPLICACAO é função; 
d) SOMA e MULTIPLICACAO são procedimentos. 
 
Obs.: Refazer todos os exercícios anteriores usando subalgoritmos. 
 
 
 
 
 
 
 
 
 
51 
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Profa. Dra. Alessandra Bonato Altran 
 
 BBIIBBLLIIOOGGRRAAFFIIAA 
 
 
 
 
CARBONI, I. F. “Lógica de Programação”. Thomson Learning, 2003. 
FIDELI, R. D.; POLLONI, E. G.; PERES, F. E. “Introdução à Ciência da Computação”. São Paulo, 
Thomson Learning, 2003. 
FORBELLONE, A. L. V.; EBERSPACHER, H. F. “Lógica de Programação - A Construção de 
Algoritmos e Estruturas de Dados”. São Paulo, Pearson Prentice Hall, 2005. 
GUIMARÃES A. M.; LAGES N. A. C. “Introdução à Ciência da Computação”. Rio de Janeiro, LTC, 
2005. 
LORENZI, F., MATTOS, P. N., CARVALHO, T. P. “Estruturas de Dados”. São Paulo, Thomson 
Learning, 2007. 
MANZANO, J. A. N. G.; OLIVEIRA, J. F. “Algoritmos - Lógica para Desenvolvimento de Programação 
de Computadores”. São Paulo, Érica, 2000. 
PUGA, S.; RISSETTI, G. “Lógica de Programação e estruturas de Dados, com Aplicações em Java”. São 
Paulo, Pearson Prentice Hall, 2003. 
SALIBA, W.L.C. “Técnicas de Programação - Uma Abordagem Estruturada”. São Paulo, Pearson 
Makron Books, 1993. 
SALVETTI, D. D.; BARBOSA, L. M. “Algoritmos”. São Paulo, Pearson Makron Books, 1998. 
SOUZA, M. A. F. et al. “Algoritmos e Lógica de Programação”. São Paulo, Thomson Learning, 2005. 
SZWARCFITER, J. L.; MARKENZON, L. “Estruturas de Dados e seus Algoritmos”. Rio de Janeiro, 
LTC, 1994. 
 
 
 
 
 
5