Logo Passei Direto
Buscar

Algoritmos

UNIVESP
Considere 0 seguinte programa em Python: class S: def _init_(self): self.v - [] selfi - -1 def push(self, x): selfi 1 self.v append(x) def pop(self): if(not self.empty()): selfi - 1 return self.v.pop() def empty(self): return selfi <0 $ = 50 for 1 in range(10): $ push(i) while not 5 empty): print(s pop()) Assinale a alternativa correta: a.O programa irá imprimir os números de 9a0, um em cada linha. b.O programa irá imprimir os números de 0a9, um em cada linha. c. O programa irá imprimir os números de 10 a 1, um em cada linha. d. Nenhuma das alternativas. e. O programa irá imprimir os números de 1 a 10, um em cada linha.
User badge image
anderson

ontem

User badge image
anderson

ontem

Respostas

User badge image

Ed Verified user icon

ontem

Vamos analisar o programa em Python que você forneceu, que implementa uma pilha (stack) com as operações `push`, `pop` e `empty`. 1. Inicialização: A classe `S` inicializa uma lista vazia `self.v` e um índice `self.i` que começa em -1. 2. Push: O método `push` adiciona um elemento à lista e incrementa `self.i`. 3. Pop: O método `pop` remove o último elemento adicionado (se a pilha não estiver vazia) e decrementa `self.i`. 4. Empty: O método `empty` verifica se a pilha está vazia, retornando `True` se `self.i` for menor que 0. No loop `for`, os números de 0 a 9 são empilhados (usando `push`). Depois, um loop `while` imprime os números enquanto a pilha não estiver vazia, usando `pop`. Como a pilha funciona no princípio LIFO (Last In, First Out), os números serão retirados na ordem inversa em que foram adicionados. Portanto, os números serão impressos de 9 a 0. Analisando as alternativas: a) O programa irá imprimir os números de 9 a 0, um em cada linha. (Correta) b) O programa irá imprimir os números de 0 a 9, um em cada linha. (Incorreta) c) O programa irá imprimir os números de 10 a 1, um em cada linha. (Incorreta) d) Nenhuma das alternativas. (Incorreta) e) O programa irá imprimir os números de 1 a 10, um em cada linha. (Incorreta) Portanto, a alternativa correta é: a) O programa irá imprimir os números de 9 a 0, um em cada linha.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina