Crie um algoritmo que leia os nomes e os preços dos produtos de uma loja e que escreva o nome do produto mais caro. Considere que o final da lista é marcado pelo produto ‘XXX’ e que não existem preços repetidos.

Passo 1

O enunciado pede um algoritmo que leia repetidamente o nome e o preço de produtos de uma loja até o nome ser “XXX” (sentinela) e, ao final, escreva o nome do produto com o maior preço. O conteúdo aqui é controle de laços com sentinela e manutenção de um valor máximo usando variáveis de controle.

Passo 2

Precisamos de duas variáveis de controle: uma para armazenar o maior preço encontrado e outra para guardar o nome do produto que corresponde a esse preço. Como não sabemos qual será o primeiro preço, podemos inicializar o maior preço com um valor muito baixo (conceitualmente -infty) ou com algum número que fique sempre abaixo de qualquer preço real que possa aparecer.

Passo 3

Em seguida, entramos num laço infinito (por exemplo, enquanto verdadeiro) que, em cada iteração, lê o nome do produto. Se o nome for “XXX”, interrompemos o laço. Caso contrário, lemos o preço e comparamos com o maior preço armazenado. Se o preço lido for maior, atualizamos tanto o maior preço quanto o nome do produto mais caro.

Passo 4

Quando o laço terminar (ou seja, ao encontrar “XXX”), a variável que guarda o nome do produto mais caro já estará corretamente atualizada. Basta então exibir esse nome ao usuário.

Resposta

Algoritmo ProdutoMaisCaro
    var nome, nomeMaisCaro: cadeia
        preco, precoMaisAlto: real

    precoMaisAlto <- -\(1\)e\(9\)        // valor inicial muito baixo
    nomeMaisCaro <- ""

    enquanto verdadeiro faca
        escreva("Digite o nome do produto (XXX para sair): ")
        leia(nome)
        se nome \(=\) "XXX" entao
            pare
        fimse

        escreva("Digite o preco de ", nome, ": ")
        leia(preco)

        se preco > precoMaisAlto entao
            precoMaisAlto <- preco
            nomeMaisCaro <- nome
        fimse
    fimenquanto

    escreva("O produto mais caro eh: ", nomeMaisCaro)
Fimalgoritmo

Exercícios relacionados