Buscar

UNIDADE 23 Passagem de parâmetros por valor

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Passagem de parâmetros por valor.
APRESENTAÇÃO
Nesta Unidade de Aprendizagem, trabalharemos com a construção de algoritmos modulares 
utilizando passagem de parâmetros por valor. Assim, você compreenderá como enviar dados 
para um procedimento ou função. 
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Identificar problemas que podem ser implementados através de rotinas.•
Construir algoritmos com rotinas que recebam dados, utilizando a passagem de parâmetros 
por valor.
•
Diferenciar tipos de parâmetros.•
DESAFIO
A passagem de parâmetros para uma função ou procedimento permite que estes parâmetros se 
comportem conforme os dados recebidos para trabalhar. Na passagem de parâmetros por valor, a 
rotina/subprograma (procedimento ou função) apenas recebe os valores com os quais irá 
trabalhar, e esses são recebidos nas variáveis que foram definidas como parâmetros.
Considere que você precisa construir um procedimento que deve mostrar a quantidade de cada 
um dos ingredientes necessários para fazer brigadeiro. Para fazer 30 docinhos de bom tamanho, 
são necessários:
- 1 lata de leite condensado
- 1 colher de sopa de manteiga
- 4 colheres de sopa de achocolatado em pó
Você deve construir um procedimento que receba como parâmetro a quantidade de brigadeiros 
que se deseja fazer. A partir disso, deve calcular e mostrar a quantidade de cada um dos 
ingredientes para fazer a quantidade de brigadeiros recebida como parâmetro.
INFOGRÁFICO
A partir de um problema, é criada a solução algorítmica, na qual são definidas as rotinas 
necessárias (procedimentos e funções), especificando os parâmetros, ou seja, o que a função 
precisa receber para executar sua tarefa (passagem por valor). Quando a rotina termina, o fluxo 
retorna para o algoritmo que a chamou. 
Veja mais detalhes no infográfico: 
 
CONTEÚDO DO LIVRO
A modularização permite desenvolver programas mais organizados e que possibilitam a 
reutilização de código. Conheça um pouco mais sobre a passagem de parâmetros por valor lendo 
as páginas 241 e 242 do seguinte livro: EDELWEISS, N.; LIVI, M.A.C. Algoritmos e 
programação com exemplos em Pascal e C - Vol. 23. Série Livros Didáticos Informática 
UFRGS. Porto Alegre: Bookman, 2014.
Boa leitura.
s
é
r
ie
 liv
ro
s
 d
id
á
tic
o
s
 in
fo
r
m
á
tic
a
 u
fr
g
s
23
s é r i e l i v r o s d i d á t i c o s i n f o r m á t i c a u f r g s
volume 3 Linguagens Formais e Autômatos, 6.ed., 
de Paulo Blauth Menezes
volume 4 Projeto de Banco de Dados, 6.ed., 
de Carlos Alberto Heuser 
volume 5 Teoria da Computação: Máquinas Universais 
e Computabilidade, 3.ed, de Tiarajú Asmuz Diverio 
e Paulo Blauth Menezes
volume 6 Arquitetura de Computadores Pessoais, 
2.ed., de Raul Fernando Weber
volume 7 Concepção de Circuitos Integrados, 2.ed., 
de Ricardo Augusto da Luz Reis e cols.
volume 8 Fundamentos de Arquitetura de Computadores, 
4.ed., de Raul Fernando Weber
volume 10 Tabelas: Organização e Pesquisa, 
de Clesio Saraiva dos Santos e Paulo Alberto de Azeredo 
volume 11 Sistemas Operacionais, 4.ed., 
de Rômulo Silva de Oliveira, Alexandre da Silva Carissimi 
e Simão Sirineo Toscani 
volume 12 Teoria das Categorias para Ciência 
da Computação, 2.ed., de Paulo Blauth Menezes 
e Edward Hermann Haeusler
volume 13 Complexidade de Algoritmos, 3.ed., 
de Laira Vieira Toscani e Paulo A. S. Veloso 
volume 16 Matemática Discreta para Computação 
e Informática, 4.ed., de Paulo Blauth Menezes
volume 18 Estruturas de Dados, de Nina Edelweiss 
e Renata Galante
volume 19 Aprendendo Matemática Discreta com 
Exercícios, de Paulo Blauth Menezes, Laira Vieira Toscani 
e Javier García López
volume 20 Redes de Computadores, 
de Alexandre da Silva Carissimi, Juergen Rochol 
e Lisandro Zambenedetti Granville
volume 21 Introdução à Abstração de Dados, 
de Daltro José Nunes
volume 22 Comunicação de Dados, de Juergen Rochol
COMPUTAÇÃO
www.grupoa.com.br
A Bookman é um dos selos editoriais do Grupo A Educação, empresa que 
oferece soluções em conteúdo, tecnologia e serviços para a educação 
acadêmica e profissional.
algoritmos
e programação 
com exemplos em Pascal e C
nina edelweiss
maria aparecida castro livi
Material didático para professores
Visite www.grupoa.com.br
nina edelweiss
maria aparecida castro livi
 l i v r o s d i s p o n í v e i s
algoritm
os e program
ação
com
 exem
plos em
 P
ascal e C
23
edelw
eiss
livi
23
algoritmos
e programação 
com exemplos em Pascal e C
Aprender programação não é uma tarefa simples. 
Requer um entendimento perfeito do problema, a análise 
de como solucioná-lo e a escolha da forma de implementação 
da solução. algoritmos e programação apresenta 
o processo de construção de algoritmos e de programas, 
enfatizando as etapas de abstração, organização, análise 
e crítica na busca de soluções eficientes. Os elementos 
de um programa são introduzidos pouco a pouco ao longo 
do texto, inicialmente apresentados em pseudolinguagem e, 
em seguida, exemplificados nas linguagens de programação 
Pascal e C. Este é um livro-texto para disciplinas iniciais 
de programação de duração de um semestre. Pode ser 
utilizado sobretudo em cursos de bacharelado e licenciatura 
em ciência da computação, análise de sistemas e engenharia 
da computação. 
E22a Edelweiss, Nina.
 Algoritmos e programação com exemplos em Pascal e C 
 [recurso eletrônico] / Nina Edelweiss, Maria Aparecida Castro 
 Livi. – Dados eletrônicos. – Porto Alegre : Bookman, 2014.
 Editado também como livro impresso em 2014.
 ISBN 978-85-8260-190-7
 1. Informática. 2. Algoritmos – Programação. I. Livi, 
 Maria Aparecida Castro. II. Título. 
CDU 004.421
 as autoras
Nina Edelweiss é engenheira eletricista e doutora em Ciência da Computação pela Uni-
versidade Federal do Rio Grande do Sul. Durante muitos anos, lecionou em cursos de Enge-
nharia e de Ciência da Computação na UFRGS, na UFSC e na PUCRS. Foi, ainda, orientadora 
do Programa de Pós-Graduação em Ciência da Computação da UFRGS. É coautora de três 
livros, tendo publicado diversos artigos em periódicos e em anais de congressos nacionais 
e internacionais. Participou de diversos projetos de pesquisa financiados por agências de 
fomento como CNPq e FAPERGS, desenvolvendo pesquisas nas áreas de bancos de dados e 
desenvolvimento de software.
Maria Aparecida Castro Livi é licenciada e bacharel em Letras, e mestre em Ciência da 
Computação pela Universidade Federal do Rio Grande do Sul. Desenvolveu sua carreira pro-
fissional na UFRGS, onde foi programadora e analista de sistema, antes de ingressar na 
carreira docente. Ministrou por vários anos a disciplina de Algoritmos e Programação para 
alunos dos cursos de Engenharia da Computação e Ciência da Computação. Sua área de 
interesse prioritário é o ensino de Linguagens de Programação, tanto de forma presencial 
quanto a distância.
Catalogação na publicação: Ana Paula M. Magnus – CRB 10/2052
Edelweiss_Iniciais_eletronica.indd iiEdelweiss_Iniciais_eletronica.indd ii 14/05/14 16:5114/05/14 16:51
Capítulo 9 Subprogramas 241
declaradas as variáveis inteiras int1 e int2, os seguintes comandos podem ser utilizados para 
chamar o subprograma Fatorial:
execute Fatorial (5)
execute Fatorial (int1)
execute Fatorial (int1 + int2)
Na primeira chamada, o parâmetro formal número é substituído pelo valor 5; na segunda 
chamada, número é substituído pela variável int1; e, na última chamada, número é substi-
tuído pelo resultado da expressão int1 + int2.
9.3.2 parâmetros de entrada e de saída
A utilização de um subprograma só é efetiva se for claramente definida a tarefa que será 
executada e qual sua interação com o programa que o acionou. Para que isso seja possível, 
é importante que toda a interação seja feita somente através dos parâmetros, identificando 
quais os parâmetros de entrada (que recebem variáveis ou valores para executar a tarefa) 
e quais osparâmetros de saída (que devolvem os valores calculados ao programa que 
acionou o subprograma).
No exemplo anterior, do subprograma que calcula o fatorial, não foi definido como o resulta-
do deveria ser devolvido ao programa. Um segundo parâmetro deve ser definido, por meio do 
qual será informado o valor calculado para o fatorial. No cabeçalho da declaração do subpro-
grama devem ser identificados os parâmetros de entrada (que recebem variáveis ou valores 
para a execução) e os de saída (que devolvem valores):
Subprograma Fatorial
 Parâmetro de entrada: número (inteiro)
 Parâmetro de saída: fat (inteiro)
As chamadas a Fatorial devem fornecer agora dois parâmetros reais, sendo o primeiro 
parâmetro o número para o qual se quer calcular o fatorial, e o segundo, o nome de uma 
variável na qual será devolvido o resultado:
execute Fatorial (4, int1)
execute Fatorial (int1 + 7, int1)
Na primeira chamada, o resultado do cálculo do fatorial de 4 é devolvido através da variável 
int1; na segunda chamada, o conteúdo da variável int1 é alterado após a execução, pas-
sando a conter o valor do fatorial do valor que armazenava anteriormente somado com a 
constante 7.
9.3.3 parâmetros por valor ou por referência
A passagem de valores a subprogramas pode acontecer por valor ou por referência.
A passagem por valor indica que somente o valor interessa ao subprograma. Se esse valor for 
passado por meio do nome de uma variável, somente o valor da variável é transferido para o 
Edelweiss_09.indd 241Edelweiss_09.indd 241 12/03/14 09:0212/03/14 09:02
242 Algoritmos e Programação com Exemplos em Pascal e C
parâmetro. Uma cópia do conteúdo da variável é carregada em uma variável auxiliar, que será 
utilizada durante a execução do subprograma. Dessa forma, qualquer modificação no valor 
da variável auxiliar não se refletirá na variável utilizada como parâmetro real. A passagem de 
valores para parâmetros definidos por valor pode ser feita ainda por meio de um valor literal e 
do resultado de uma expressão. Na execução da chamada a um subprograma, os parâmetros 
passados por valor também são incluídos na pilha de execução, preservando seus valores para 
a continuação posterior da execução.
Na passagem de um parâmetro por referência, o endereço físico da variável utilizada como 
parâmetro real é passado ao subprograma, sendo essa variável utilizada durante a execução. 
Alterações no valor do parâmetro são feitas diretamente nessa variável. Na chamada de um 
subprograma, os parâmetros definidos por referência recebem nomes de variáveis existentes 
no programa principal. É importante observar que, na execução de uma chamada ao subpro-
grama, os parâmetros por referência não sofrem empilhamento, já que não são locais aos 
subprogramas.
No exemplo anterior do subprograma Fatorial, o primeiro parâmetro – de entrada – é pas-
sado por valor. O segundo, que devolve o valor calculado, deve ser definido por referência. 
Na pseudolinguagem, um parâmetro passado por referência é identificado pela palavra ref 
antes de seu nome:
Subprograma Fatorial
 Parâmetro de entrada: número (inteiro)
 Parâmetro de saída: ref fat (inteiro)
9.4 declarações locais e globais
Dentro de um subprograma, podem ser feitas declarações de constantes, tipo e variáveis. As 
declarações feitas internamente aos subprogramas são declarações locais ao subprograma, 
e só são visíveis dentro do subprograma. As áreas de memória associadas às variáveis locais 
são alocadas no momento em que o subprograma é acionado e são liberadas ao final de sua 
execução, quando deixam de existir. Todo esse processo de criação e destruição de variáveis 
locais ocorre novamente a cada nova chamada ao subprograma.
Como exemplo de utilização de uma variável local, será considerado um subprograma que 
permuta o conteúdo de duas variáveis inteiras. Os parâmetros formais A e B representam 
as duas variáveis e, neste exemplo, desempenham o papel tanto de parâmetros de entrada 
quanto de saída. Para fazer a permuta é necessário uma terceira variável para guardar um 
dos valores durante o processamento. Essa será definida como uma variável local, pois sua 
existência não é relevante para o programa principal:
Subprograma Permuta
{TROCA O CONTEÚDO DE DUAS VARIÁVEIS}
 Parâmetros entrada e saída: ref A, ref B (inteiro)
 Variável: aux (inteiro) {VARIÁVEL LOCAL}
Edelweiss_09.indd 242Edelweiss_09.indd 242 12/03/14 09:0212/03/14 09:02
Encerra aqui o trecho do livro disponibilizado para 
esta Unidade de Aprendizagem. Na Biblioteca Virtual 
da Instituição, você encontra a obra na íntegra. 
 
DICA DO PROFESSOR
A utilização de subprogramas (procedimento ou funções) é muito importante para o bom 
desenvolvimento de algoritmos e programas. Assistindo ao vídeo preparado para esta Unidade, 
compreenderemos melhor como são enviados dados através da passagem de parâmetros por 
valor.
Conteúdo interativo disponível na plataforma de ensino!
EXERCÍCIOS
1) A utilização de um subprograma só é efetiva se forem claramente definidas a tarefa a 
ser executada e a interação com o programa que o acionou. Para que isso seja 
possível, é importante que toda a interação seja feita somente através dos 
parâmetros. Analise as alternativas abaixo e selecione a FALSA. 
A) Os parâmetros de entrada receberão o conteúdo de variáveis ou constantes.
B) Os parâmetros de saída definem os tipos de dados das informações que o subprograma 
retornará.
C) Na chamada de subprogramas, pode-se utilizar variáveis, constantes ou resultados de 
expressões tanto para parâmetros de entrada quanto de saída.
D) A passagem de parâmetros por valor está relacionada aos parâmetros de entrada.
E) A passagem de parâmetros por referência está relacionada aos parâmetros de saída.
A resolução de problemas computacionais se torna a cada dia mais complexa. Dessa 
forma, a divisão desse problema complexo em problemas menores se torna uma 
alternativa mais eficaz durante esse processo, geralmente eles são denominados de 
2) 
subprogramas. Assinale a alternativa que traz um conceito que não condiz com as 
funcionalidades e o modo de utilização de um subprograma. 
A) Um subprograma pode ser dividido em outros subprogramas caso seja necessário para 
realizar a solução do problema.
B) É importante que ao utilizar um subprograma, o desenvolvedor esteja ciente quanto a 
atividade que cada uma irá exercer dentro do programa como um todo.
C) Um subprograma é responsável pelo controle de todo o programa, pois ele é considerado o 
núcleo e a trará a solução do problema.
D) A interação entre as informações é norteada pelo uso da passagem de valores por meio do 
uso dos parâmetros, que podem ser de entrada e/ou de saída.
E) Existem dois tipos de parâmetros, os de entrada e os de saída, os quais devem constar na 
declaração do subprograma.
3) Um subprograma traz consigo a resolução de questões particulares dentro de um 
programa em geral. Dessa forma, sua execução correta demanda de uma certa 
estrutura, ou seja, da inserção de dados e informações específicas. Assinale a 
alternativa falsa. 
A) A passagem de parâmetro é realizada quando há uma alteração dos parâmetros durante o 
uso do subprograma.
B) O subprograma possui o endereço físico da variável quando a mesma é utilizada como 
parâmetro real.
C) As variáveis locais são utilizadas dentro do programa como um todo, e podem ser 
solicitadas a qualquer momento.
D) Quando um subprograma é solicitado durante a execução do programa, os parâmetros por 
referência sofrem empilhamento. 
E) A passagem de valor para parâmetros definidos por valor aceita o uso de um valor literal e 
de resultados de expressões.
4) Considere a passagem de parâmetros por valor, analise as afirmativas a seguir e 
selecione a alternativa verdadeira. 
A) A passagem de parâmetros por valor protege os dados originais, de quem chamou o 
subprograma.
B) Na passagem de parâmetros por valor, o subprograma passa a acessar a informação na 
origem,apenas não pode modificá-la.
C) A passagem de parâmetros por valor é sempre eficiente, mesmo que seja necessário 
receber um grande conjunto de dados.
D) Quando um parâmetro for passado por valor (parâmetro de entrada) e o nome do 
identificador do parâmetro formal for igual ao de uma variável global, o subprograma 
poderá alterar o dado/conteúdo da variável global.
E) As passagens de parâmetros por valor e por referência apresentam apenas diferenças 
sintáticas, mas, na execução, seu comportamento é idêntico.
5) O parâmetro proporciona que haja comunicação entre um subprograma e o 
programa principal como um todo. Para isso, devemos seguir uma estrutura que visa 
trazer todas as informações para que isso ocorra de forma correta, já que haverá 
uma comunicação entre dois ou mais trechos do código. Assinale a alternativa que 
traz a informação incorreta sobre este conceito. 
A) A passagem de parâmetro por referência acontece quando o parâmetro formal é repassado 
ao parâmetro real.
B) O parâmetro formal demonstra a modificação do seu valor em conjunto com o parâmetro 
real quando uma passagem de parâmetro por referência está sendo aplicada.
C) Na manipulação do subprograma, a passagem de parâmetro por valor mantém o valor do 
parâmetro real.
D) A passagem de parâmetro por valor traz a informação referente ao valor que será utilizado 
no subprograma.
E) Caso haja uma modificação no valor de uma variável auxiliar, a variável definida como 
parâmetro real será modificada.
NA PRÁTICA
A passagem de parâmetros por valor está relacionada com a maneira como realizamos diversos 
cálculos, os quais dependem de valores que precisamos receber para realizá-los. Vamos analisar 
algumas situações: 
- Para calcular a área de uma sala, precisamos receber as informações da largura e do 
comprimento da peça. 
- Para calcular o valor do salário depois do aumento, precisamos receber as informações do 
valor atual e o percentual de aumento. 
- Para calcular o consumo mensal de um aparelho elétrico, precisamos receber o consumo por 
hora e a quantidade de horas que o aparelho ficou ligado. 
- Para calcular a quantidade necessária de farinha para fazer cupcakes, é preciso saber quantos 
bolinhos serão feitos e a quantidade de farinha necessária para fazer uma unidade. 
 
algoritmo "salario" 
var 
 salario, aumento : real 
 funcao aumenta(valor, percentual : real):real 
inicio 
 retorne (valor + valor * (percentual/100)) 
fimfuncao 
 
inicio 
 repita 
 escreva("Digite o salario atual: ") 
 leia(salario) 
 escreva("Digite o percentual de aumento (1-100%): ") 
 leia(aumento) 
 escreval("Novo salario: ", aumenta(salario, aumento)) 
 ate salario = 0 
fimalgoritmo
SAIBA +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do 
professor:
Algoritmos e programação: Módulos/parâmetros e variáveis locais - VisuAlg..
Conteúdo interativo disponível na plataforma de ensino!
Lógica de programação - Estruturas modulares - Exercício passagem de parâmetros por 
valor. .
Conteúdo interativo disponível na plataforma de ensino!
Curso de Algoritmos – 12 – Rotinas (Parte 1) - Gustavo Guanabara
Conteúdo interativo disponível na plataforma de ensino!

Outros materiais