Questão de Pseudocódigo
"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"
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
Curtidas 0
Melhor post
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".
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