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

[Resposta] Desafio: Simulador de pedidos em uma cafeteria

Vamos criar uma função que calcule o valor final de um pedido em uma cafeteria. Essa função receberá como entrada o valor total dos itens e uma variável booleana que indicará se o cliente é cadastrado ou não, retornando o valor final do pedido em reais, com ou sem desconto aplicado.

função calcularTotal(valorTotal, clienteCadastrado):
se clienteCadastrado for verdadeiro, retornar valorTotal com 10% de desconto
caso contrário, retornar valorTotal

// Entrada: o sistema irá solicitar ao atendente a quantidade de itens do pedido
exibir "Quantos itens o cliente deseja pedir?"
quantidadeItens = ler do usuário

// Inicialização do total
valorTotal = 0

// Loop para registrar cada item do pedido
para cada item dentro de quantidadeItens:
    exibir "Digite o nome do item:"
    nomeItem = ler do usuário

    // consultar no sistema o preço do item, a partir do nome recebido
    precoItem = ler do sistema

    valorTotal = valorTotal + precoItem

// Verificar se o cliente é cadastrado
exibir "O cliente é cadastrado?"
clienteCadastrado = ler do sistema

// Processamento: calcular o valor final com base na função definida
valorFinal = calcularTotal(valorTotal, clienteCadastrado)

// Saída: o sistema mostra o valor total do pedido para o cliente
se clienteCadastrado for verdadeiro:
exibir "O valor total com desconto é de " + valorFinal + " reais."
caso contrário:
exibir "O valor total do pedido é de " + valorFinal + " reais."

Esta solução encapsula a lógica de aplicação de desconto dentro de uma função, enquanto o loop permite registrar múltiplos itens de forma organizada. A utilização de uma variável booleana para identificar clientes cadastrados simplifica a aplicação da regra de desconto, tornando o algoritmo mais claro e fácil de manter ou expandir no futuro

1 resposta
solução!

Oii, Julianna! Tudo bem?

Agradeço por compartilhar.

Você mandou muito bem ao utilizar o conceito de encapsulamento, criando a função calcularTotal para cuidar especificamente da regra de negócio do desconto. Além disso, o uso do loop para cada para somar os itens demonstra que você compreendeu perfeitamente como automatizar processos repetitivos, o que é um dos pilares do pensamento computacional, né? Citar a consulta de preços no sistema como um comentário também ajuda muito na legibilidade do algoritmo.

Para ir além, um ponto que dá pra aprofundar é a validação dos dados de entrada. Já pensou o que aconteceria se o atendente digitasse um número negativo na quantidade de itens? Adicionar uma pequena verificação logo no início para garantir que a quantidadeItens seja maior que zero deixaria seu simulador ainda mais robusto, tá?

Sua solução está completa e muito clara. Sabia que essa estrutura de separar a entrada de dados, o processamento e a saída é o que chamamos de modelo IPO (Input-Process-Output)? Seguir esse padrão facilita muito a vida de outros desenvolvedores que precisarem ler ou expandir seu sistema no futuro.

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