Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Resposta] Desafio: Calculando pedidos

Devemos criar uma função que calcule o valor total de um pedido em uma lanchonete. Essa função receberá como entrada as quantidades de hambúrgueres, batatas fritas e refrigerantes, e uma variável booleana que indica se há um combo (por exemplo, a combinação dos três itens, e aplica um desconto), retornando o valor final do pedido.

função calcularPedido(qtdHamburguer, qtdBatata, qtdRefri, temCombo):
    total = (qtdHamburguer * 12) + (qtdBatata * 7) + (qtdRefri * 5)
        se temCombo for verdadeiro, retornar total com desconto // a lógica do desconto vai ser abstraída para simplicidade
        caso contrário, retornar total

// Entrada: o sistema irá solicitar os itens ao usuário em loop, até que ele finalize o pedido
    // Inicializa-se os valores de cada item como zero no início do pedido
    totalHamburguer = 0
    totalBatata = 0
    totalRefri = 0

enquanto o usuário não finalizar o pedido:
    exibir "Escolha um item: 1 - Hambúrguer, 2 - Batata frita, 3 - Refrigerante, 0 - Finalizar"
    opcao = ler do usuário

    caso opcao seja 1:
        somar ao totalHamburguer
    caso opcao seja 2:
        somar ao totalBatata
    caso opcao seja 3:
        somar ao totalRefri
    caso opcao seja 0:
        encerrar o pedido e o loop

// Processamento: verificar se há combo (por exemplo, pelo menos 1 de cada item)
    se totalHamburguer > 0 e totalBatata > 0 e totalRefri > 0, temCombo será verdadeiro
    caso contrário, temCombo = falso

    valor = calcularPedido(totalHamburguer, totalBatata, totalRefri, temCombo)

// Saída: o sistema mostra o valor total do pedido para o cliente

exibir "O valor total do seu pedido é de " + valor + " reais."

Esta solução encapsula a lógica de cálculo do pedido dentro de uma função, enquanto o loop permite que o usuário adicione itens dinamicamente até finalizar. A utilização de uma variável booleana para identificar a presença de combo facilita a aplicação de regras de desconto sem complicar a lógica principal, permitindo futuras expansões no sistema."

1 resposta
solução!

Oi, Julianna!

Parabéns pela resolução desse desafio. É fantástico ver como você elevou o nível da atividade ao incluir o conceito de função e uma lógica automática para identificar combos, o que torna o seu algoritmo muito mais robusto e profissional.

Sua proposta demonstra um domínio excelente sobre a modularização. Ao criar a função calcularPedido, você separou a regra de cálculo da interação com o usuário, o que é uma prática fundamental no desenvolvimento de sistemas escaláveis. Além disso, a ideia de usar um laço enquanto para permitir que o cliente adicione itens livremente transforma o programa em um simulador de ponto de venda (PDV) muito realista.

Pra elevar ainda mais o nível da sua solução, vale notar um detalhe sobre a flexibilidade: no futuro, você poderia passar os preços de cada item como parâmetros para a função, em vez de deixá-los fixos (12, 7 e 5). Isso permitiria que o sistema se adaptasse a mudanças no cardápio sem que você precisasse reescrever a lógica interna. Você pode explorar mais sobre como organizar esses fluxos no guia sobre Lógica de Programação e Funções.

Conseguiu perceber como a sua estrutura permite que o sistema identifique o combo automaticamente, mesmo que o cliente peça os itens em ordens diferentes durante o loop?

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