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!

1
resposta

Desafio: Simulador de pedidos em uma cafeteria

Algoritmo Cafeteria

Início
// Declaração das variáveis (o que o sistema vai guardar)
Definir quantidade_itens, contador Como Inteiro
Definir preco_item, valor_total Como Real
Definir eh_cadastrado Como Texto

// Inicializa o valor da conta zerado
valor_total <- 0

// Entrada de dados inicial
Escreva("Quantos itens o cliente vai pedir?")
Leia(quantidade_itens)

// Repetição para pedir o preço de cada item
Para contador De 1 Até quantidade_itens Faça
    Escreva("Digite o preço do item:")
    Leia(preco_item)
    
    // Acumula o preço no valor total
    valor_total <- valor_total + preco_item
FimPara

// Verificação do desconto
Escreva("O cliente é cadastrado? (S/N)")
Leia(eh_cadastrado)

Se eh_cadastrado = "S" Então
    valor_total <- valor_total * 0.90
FimSe

// Saída do resultado
Escreva("Valor total a pagar: R$ ", valor_total)
1 resposta

Olá, Gustavo. Como vai?

Seu algoritmo ficou excelente e muito bem estruturado! Você aplicou perfeitamente os conceitos fundamentais do Pensamento Computacional e da lógica de programação para resolver o desafio do simulador da cafeteria.

A escolha das estruturas está impecável: você utilizou uma variável acumuladora de forma correta (valor_total), implementou um laço de repetição (Para) ideal para quando já sabemos a quantidade exata de repetições, e fechou com uma estrutura condicional (Se) muito bem pensada para aplicar o desconto de 10% (multiplicar por 0.90 é uma ótima estratégia matemática linear).

Para agregar ainda mais valor ao seu projeto e trazer algumas boas práticas de lógica, apresento alguns pontos de melhoria que tornariam o seu sistema ainda mais robusto:

1. Tratamento de variações no texto (Maiúsculas e Minúsculas)
No seu código, a condição para o desconto é Se eh_cadastrado = "S". Se o atendente da cafeteria estiver com o teclado com o Caps Lock desligado e digitar "s" minúsculo, o sistema não aplicará o desconto. Para resolver isso, podemos usar o operador lógico OU.

2. Inicialização de variáveis
Você inicializou muito bem a variável valor_total <- 0. Como boa prática, é recomendável garantir que o contador do laço também comece limpo, embora o próprio comando Para já faça o controle do escopo.

Exemplo de Algoritmo Otimizado:
Veja como o seu código ganharia uma camada extra de segurança contra erros de digitação:

Algoritmo Cafeteria
Início
// Declaração das variáveis
Definir quantidade_itens, contador Como Inteiro
Definir preco_item, valor_total Como Real
Definir eh_cadastrado Como Texto

// Inicializa o valor da conta zerado
valor_total <- 0

// Entrada de dados inicial
Escreva("Quantos itens o cliente vai pedir?")
Leia(quantidade_itens)

// Repetição para pedir o preço de cada item
Para contador De 1 Até quantidade_itens Faça
    Escreva("Digite o preço do item ", contador, ":")
    Leia(preco_item)
    
    // Acumula o preço no valor total
    valor_total <- valor_total + preco_item
FimPara

// Verificação do desconto com tratamento para "S" ou "s"
Escreva("O cliente é cadastrado? (S/N)")
Leia(eh_cadastrado)

Se (eh_cadastrado = "S") OU (eh_cadastrado = "s") Então
    valor_total <- valor_total * 0.90
    Escreva("Desconto de 10% aplicado com sucesso!")
FimSe

// Saída do resultado
Escreva("Valor total a pagar: R$ ", valor_total)
Fim

Note que no laço Para eu também adicionei a variável contador dentro da frase de exibição: Escreva("Digite o preço do item ", contador, ":"). Isso melhora a experiência do usuário, pois o sistema mostrará na tela "Digite o preço do item 1:", "Digite o preço do item 2:", facilitando o acompanhamento de quem está operando o caixa da cafeteria.

Seu raciocínio lógico está afiadíssimo e o escopo do problema foi completamente atendido. Parabéns pelo projeto!

Espero que possa ter lhe ajudado!