Informática, perguntado por hudsonvalmor, 1 ano atrás

A estrutura de repetição ENQUANTO permite que um trecho de instruções seja executado repetidamente enquanto uma condição for avaliada como verdadeira.


O seguinte trecho de código faz uso de uma variável contadora para obter o total de nomes digitados:

nomes <- 0

enquanto nome <> "FIM" faca

Leia(nome)

nomes <- nomes + 1

fimenquanto


Assinale a alternativa correta que justifique a necessidade da variável contadora ter um valor inicial antes do laço de repetição ser executado.
Alternativas
Alternativa 1:
Por mera conveniência do desenvolvedor do algoritmo.

Alternativa 2:
Permitir a edição dos nomes dentro do laço de repetição.

Alternativa 3:
Toda variável deve ter um valor inicial dentro do algoritmo.

Alternativa 4:
Prevenir a variável de conter "lixos" em seu espaço de memória.

Alternativa 5:
Possibilitar a digitação da palavra "FIM" para terminar o laço de repetição.

Soluções para a tarefa

Respondido por jvsilvictorox7rfj
2


Alternativa 4:
Prevenir a variável de conter "lixos" em seu espaço de memória.



Quando uma variável não é inicializada no código enquanto ela não receber um valor via programa, ela possui um valor referente ao espaço de memória em que ela foi alocado. Esse valor é apelidado de "lixo de memória".

Por exemplo,  se no espaço de memória X  há o valor "999"  e a variável não inicializada for alocada no endereço X, ela terá um valor inicial de 999. O que, no caso desse código exemplo causaria problemas nas contagens de nomes, que não começaria com 0, mas sim em 999.  Esse valor do lixo é "aleatório", 999 foi apenas um exemplo.

Respondido por eduardopaulog
0
Alternativa 3. Se a variável contadora não tivesse um valor inicial, ela não poderia ter um valor que dependesse dela mesma, como a própria contagem "nomes <- nomes + 1".


eduardopaulog: Aliás, meu raciocínio se aplica à alternativa 4. Perdão.
jvsilvictorox7rfj: Pode sim haver o "nomes <- nomes + 1" sem inicializá-la, porém ficaria somando 1 ao lixo inicial que ela herdou do local de memória.
eduardopaulog: Sim, obrigado.
Perguntas interessantes