O algoritmo abaixo procura o maior e menor valor de uma série de números positivos. Faça o teste de mesa do algoritmo para os seguintes valores: 12,30,20,438,10,283,5,0. Se for digitado somente 0 qual será a saída do algoritmo? Justifique sua resposta.
algoritmo maior_menor;
    declare número inteiro maior, menor, valor;
    inicio
        escreva('Entre com um número inteiro: ');
        leia(valor);
        maior \leftarrow valor;
        menor \leftarrow valor;
        enquanto (valor }=0\mathrm{ ) faça
            se (valor > maior) então
                maior \leftarrow valor;
            fim-se;
            se (valor < menor) então
                menor \leftarrow valor;
            fim-se;
            escreva('Entre com um número inteiro: ');
            leia(valor);
        fim-enquanto;
        escreva('Maior=' ,maior,' Menor=',menor) ;
    fim;
fim-algoritmo.

Passo 1

Este exercício implementa um laço com sentinela (valor 0) para encontrar o maior e o menor número lido. O conteúdo aqui é laço de repetição (enquanto), sentinela e comparações condicionais para atualizar dois acumuladores (maior e menor). Vamos precisar entender como o algoritmo faz a primeira leitura para inicializar e depois entra no loop até receber 0.

Passo 2

O algoritmo faz a primeira leitura com valor = 12. Em seguida executa: maior \leftarrow 12 e menor \leftarrow 12.

Passo 3

A seguir o algoritmo entra no laço enquanto valor ≠ 0 e repete: compara e atualiza maior/menor, depois lê o próximo valor. Processando cada valor temos: • valor=12: não altera (maior=12, menor=12) • valor=30: atualiza maior para 30 (maior=30, menor=12) • valor=20: sem alteração (maior=30, menor=12) • valor=438: atualiza maior para 438 (maior=438, menor=12) • valor=10: atualiza menor para 10 (maior=438, menor=10) • valor=283: sem alteração (maior=438, menor=10) • valor=5: atualiza menor para 5 (maior=438, menor=5)

Passo 4

Após processar 5 o próximo valor lido é 0. Nesse momento a condição do while falha e o loop termina. O algoritmo então imprime: Maior=438 Menor=5.

Passo 5

Se for digitado somente 0 na primeira leitura, temos valor=0, maior←0 e menor←0, o while nem chega a executar e o programa sai imprimindo: Maior=0 Menor=0, pois não houve outro número para alterar esses valores. Justificativa: as variáveis foram inicializadas com o próprio 0 e não foram atualizadas antes do fim do loop.

Resposta

Para a sequência 12,30,20,438,10,283,5,0 o algoritmo exibe: Maior=438 Menor=5. Se for digitado somente 0, a saída será: Maior=0 Menor=0.

Exercícios relacionados