Questão de Pseudocódigo

Lógica de programação

Programação

22/06/2023

"Olá a todos!

Estou com uma dúvida em relação a um algoritmo que estou estudando e gostaria de entender como foi possível chegar a um resultado específico. O algoritmo em questão é o seguinte:


algoritmo "AN_TI"
var
MG: inteiro
RESP: Caractere
procedimento PRC(PX:inteiro;var PW: caractere)
inicio
PX <- 55
PW <- "BRASIL"
fimprocedimento
inicio
MG <- 99
RESP <- "ARGENTINA"
PRC(MG,RESP)
escreval(RESP:-13,MG)
fimalgoritmo



É uma questão de concurso público e o gabarito da questão é "BRASIL 99". Poderiam me ajudar a entender essa questão? Pq eu achei como resultado "ARGENTINA 99"
Gustavo Melo

Gustavo Melo

Curtidas 0

Melhor post

Arthur Heinrich

Arthur Heinrich

23/06/2023

Repare que a definição da função "procedimento PRC(PX:inteiro;var PW: caractere)" não utiliza "var" no parâmetro PX. Portanto, quado você chama este procedimento, o parâmetro é passado por valor e não por referência.

A atribuição que ocorre dentro do procedimento, atualiza a cópia, local, sem afetar o conteúdo da variável passada no parâmetro, que mantém o valor 99 atribuído fora do procedimento.
Já a variável RESP, que recebe o valor "ARGENTINA" originalmente, é passada no parâmetro PW que utiliza o "var". Desta forma, a variável é passada por referência e o procedimento altera diretamente o conteúdo da variável externa, que passa a conter o valor "BRASIL". Por isso, a resposta é "BRASIL 99".
GOSTEI 1
POSTAR