Um usuário implementou uma rotina de um programa, denominad...

Próximas questões
Com base no mesmo assunto
Q500547 Programação
Um usuário implementou uma rotina de um programa, denominada Fatorial, e passou para essa rotina um parâmetro com o valor 6, mas deseja receber, após a execução da rotina, nesse mesmo parâmetro, o valor 6! (seis fatorial). Para isso, a passagem de parâmetro deverá ser por
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a D - referência.

Para compreender esta questão é necessário entender os conceitos de passagem de parâmetros em sub-rotinas (ou funções) dentro da programação. Quando uma função é chamada, pode-se passar valores para ela de duas formas principais: por valor ou por referência.

Na passagem por valor, uma cópia do valor do argumento é feita e passada para a função. Assim, alterações feitas nesse valor dentro da função não afetam a variável original fora dela. Já na passagem por referência, ao invés de passar uma cópia do valor, a função recebe um endereço de memória que aponta para a variável original. Portanto, qualquer modificação no parâmetro dentro da função reflete na variável que foi passada.

No caso do enunciado, o usuário deseja que a função "Fatorial" retorne o resultado do fatorial de 6 não apenas como um valor de retorno comum, mas que altere o próprio valor do parâmetro que foi passado para a função. Isso só é possível se a passagem for por referência, pois assim a função tem acesso direto à variável e pode modificá-la, fazendo com que, após a execução da função, a variável original contenha o resultado do fatorial.

As demais opções não são aplicáveis ao contexto:

  • Escopo refere-se ao contexto no qual nomes (variáveis, funções, etc.) são conhecidos em um programa.
  • Hashing é uma técnica para converter uma grande quantidade de dados em um pequeno volume fixo de informação.
  • Módulo muitas vezes se refere a uma divisão de código ou a operação aritmética de resto da divisão.
  • Valor, como mencionado anteriormente, é um tipo de passagem de parâmetro que não permite que a função altere o valor da variável original.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Neste caso , deverá ser passado por referência , pois assim a função irá acessar o endereço da memoria onde esta o valor , e não o valor propriamente dito !

 

Gab: D

Galera, observem a pegadinha da questão: ele manda 6 (seis) como parâmetro e
no retorno da rotina o valor é 6! (seis fatorial). Observe que o valor foi modificado,
logo não pode ter sido uma passagem por valor - foi uma passagem por referência.
Caso o retorno fosse 6 (seis), a passagem provavelmente seria por valor.
Gabarito: D

Curso de Informática
Profs. Diego Carvalho e Judah Reis

Errei por falta de atenção. Deveria ter focado em "deseja receber nesse mesmo parâmetro", não no retorno.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo