Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

[Dúvida] DESAFIO: Calculando Pedidos

por Carolina Dias Santos | 11.2k xp | 7 posts
Estou em dúvida se a minha solução funcionaria.

INÍCIO

selecione 1 item:
se item = hambúrguer : item = 12.00 se não, se item = batata : item = 7.00, se não, se item = refrigerante : item = 5.00
selecione quantidade
calcule: total = item x quantidade
deseja acrescentar algo?
se sim: some (total + (volte ao início)), se não: exiba "O total a pagar é R$ (total)."

FIM

Editar
2 respostas
solução!

por Mike de Sousa | 5080.7k xp | 10583 posts Alura Scuba Team
Analista de Suporte Educacional
23 horas atrás
Oi, Carolina. Tudo bem com você?

Sua solução está no caminho certo e a lógica está funcionando bem. Você conseguiu identificar os principais elementos necessários: capturar o item selecionado, armazenar o valor correspondente, multiplicar pela quantidade e exibir o resultado. A forma como você estruturou a decisão entre continuar adicionando itens ou finalizar o pedido é uma abordagem prática e faz sentido para um sistema real de lanchonete. O uso de condicionais aninhadas para identificar qual item foi selecionado é uma estratégia válida nesse contexto.

Uma observação importante sobre sua estrutura: quando o usuário escolhe acrescentar algo e você faz o sistema voltar ao início, é necessário garantir que você está acumulando os totais corretamente. Nesse momento, você soma o total anterior com o novo item multiplicado pela quantidade. A forma como você descreveu isso funcionaria, mas seria interessante deixar explícito que você está guardando esse valor acumulado em uma variável separada que persiste durante toda a interação do cliente, não apenas o valor do item individual. Por exemplo, você poderia usar uma variável como "total_pedido" que vai recebendo os novos valores a cada item adicionado.

Pensando nisso, qual seria a melhor forma de você garantir que nenhum valor se perde quando o cliente decide adicionar mais itens ao pedido?

Obrigado por compartilhar sua solução conosco. Você está no caminho certo e continue trazendo suas dúvidas para o fórum, pois essas reflexões são fundamentais para evoluir seu pensamento computacional.

por Carolina Dias Santos | 11.2k xp | 7 posts
agora há pouco

Desculpe, mas não consegui implementar no código que criei o que você pediu. Eu não sei onde implementar a variável no código e onde fazer a repetição ao início sem que desse erro. Poderia me ajudar, por favor?

2 respostas
solução!

Oi, Carolina. Tudo bem com você?

A questão central aqui é que você precisa de um espaço na memória que persista durante todo o processo de compra, mantendo o total anterior enquanto adiciona novos itens. Vou te mostrar como organizar isso de forma mais clara no seu pseudocódigo, pensando em uma estrutura que permita voltar ao início sem perder os valores já calculados.

A chave é inicializar uma variável antes de tudo começar e, depois que calcular o valor de cada item, sempre adicionar esse resultado ao total acumulado. Assim, quando o usuário escolhe continuar comprando, o sistema volta ao passo de seleção de item, mas o total anterior já está guardado. Veja como ficaria:

total_pedido = 0
repita:
    selecione 1 item
    se item = hambúrguer: 
        preco = 12.00
    senão, se item = batata: 
        preco = 7.00
    senão, se item = refrigerante: 
        preco = 5.00
    
    selecione quantidade
    
    total_item = preco x quantidade
    total_pedido = total_pedido + total_item
    
    deseja acrescentar algo?
    se não: exiba "O total a pagar é R$ " + total_pedido
            saia da repetição

Repare que total_pedido é criada uma única vez no início e a cada iteração ela recebe o valor anterior mais o novo item. Dessa forma, nada se perde. A estrutura de repetição faz o fluxo voltar ao ponto de seleção de item automaticamente, sem você precisar escrever "volte ao início".

Obrigado por retornar com essa pergunta e por se dedicar a entender melhor como organizar esses dados. O fórum está à disposição sempre que precisar.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Muito obrigada! Ajudou muito mesmo!