Assim, neste novo algoritmo, enquanto a condição definida na linha 2.7 for falsa (ou seja, enquanto a lâmpada não acender), as ações definidas em 2.7.1 e 2.7.2 serão repetidas. Abstraimos os fatos de ter de descer da escada para pegar uma lampada nova e subir novamente.
Justifique a questão.
1. Ligue o interruptor;
2. Se a lâmpada não acender:
2.1. Pegue uma escada
2.2. Posicione a escada embaixo da lâmpada;
2.3. Pegue uma lampada nova;
2.4. Suba na escada;
2.5. Retire a lâmpada velha;
2.6. Coloque a lampada nova;
2.7. Enquanto a lâmpada não acender;
2.7.1. Retire a lâmpada;
2.7.2. Coloque uma outra lâmpada.
( ) CERTO ( ) ERRADO
Respostas
Resposta:
(x) CERTO
Explicação:
Vamos analisar esse trecho de código:
Enquanto a lâmpada não acender; (Para essa condição ser falsa, ela tem que ser o oposto do que a condição pede, logo a lâmpada TEM que acender; assim não iniciando o loop. Caso fosse verdadeira, a lâmpada não acenderia e o loop seria iniciado).
Se o loop não for iniciado, isso significa que as duas linhas seguintes de código não serão executadas.
Enquanto (while) é uma instrução de repetição, isso significa que ela gerará um loop até sua condição ser satisfeita. Caso ela não seja satisfeita (der falso), o loop não é iniciado.
IMPORTANTE: Porém, essa questão está bem ambígua e sujeita a interpretações. Acredito que o autor se confundiu ao usar a palavra falsa para se referir ao não acender da proposição "enquanto a lâmpada não acender".
Logo, enquanto a instrução de repetição for verdadeira (Enquanto a lâmpada NÃO acender), o loop será inicializado:
As ações definidas em 2.7.1 e 2.7.2 seriam repetidas até a condição ser satisfeita (neste caso, a lâmpada acender) .
Se não estão descritas no código as ações de descer da escada, pegar uma nova lâmpada e subir novamente, então elas realmente serão abstraídas/ignoradas.