Analise o código Python a seguir. Assinale o resultado exibi...

Próximas questões
Com base no mesmo assunto
Q2096299 Programação

Analise o código Python a seguir.


66.png (177×94) 


Assinale o resultado exibido na execução desse código.

Alternativas

Comentários

Veja os comentários dos nossos alunos

O código implementa o algoritmo de Euclides para encontrar o máximo divisor comum (MDC) entre dois números. O MDC de 90 e 15 é 15, e é exatamente isso que a função retorna quando é chamada com esses valores como argumentos. Durante a execução do algoritmo, as variáveis e são atualizadas até que se torne zero, momento em que a função retorna o valor de , que é o MDC calculado.

Código comentado:

def xxx(a, b): # Inicio da função, recebe como parametros a e b

  while b != 0: # Enquanto b for diferente de zero executará o código a seguir

    a, b = b, a % b # Atenção nesse ponto! Python permite o retorno de múltiplos valores separados por vírgula

# Isso nada mais é que:

# a = b # a recebe b

# b = a% b # b recebe o resto da divisão de a por b

  return a # Após a execução do loop (while) retorna a

print(xxx(90,15)) # Exibe no console o retorno da função xxx com os parametros a = 90 e b = 15

Resposta D

def xxx(a,b):

 while b!= 0:

   a,b = b, a%b

 return a

print(xxx(90,15))

Resolução:

No código acima temos a chamada da função xxx(a,b) dentro da função print. Vamos comentar 

o código acima:

A função xxx(a,b) recebe dois parâmetros, no caso, "a, b".

Dentro da função temos o comando de repetição 'While' será executado enquanto 'b' for diferente de '0'.

A grande sacada dessa questão era saber que o comando:

a,b = b, a % b

Que significa a = b  e  b = a % b (resto da divisão entre 'a' e 'b')

No código acima, foi chamado a função xxx com os parâmetros 90 e 15.

Assim, a = 90 e b = 15

while b != 0  --> while 15 != 0 (entra no loop while)

a = b = 15

b = a % b  --> b recebe o resto da divisão entre 90 e 15, nesse caso o resto dessa divisão  é zero, ou seja, b = 0.

Feita essa primeira etapa, o loop é executado novamente agora com os seguintes valores:

a = 15 e b = 0.

Como b é igual a zero, o comando while b != 0 é falso, logo o loop não é executado. Assim,

o comando " return a" é executado retornando o valor de "a" que é igual a 15.

Assim, o gabarito dessa questão é a letra D.  

  

# 1ª iteração

b != 0 = True

a=90, b=15

a, b = 15, 90 % 15=0

# 2ª iteração

b != 0 = fALSE

a=15, b=0

print(xxx(90,15))

Logo a valerá 15 e será o resultado impresso.

Clique para visualizar este comentário

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