2
respostas

[Projeto] Desafio: Simulador de pedidos em uma cafeteria

algoritmo "sistema_auto_cafeteria"

var
   numItens: inteiro
   nomes: vetor[1..30] de caractere   // vetor para armazenar o nome dos itens pedido
   precos: vetor[1..30] de real       // vetor para armazenar o valor do itens pedido
   i: inteiro                         // contador para o loop
   resposta: caractere                // resposta para o booleano
   tem_cadastro: logico               // booleano
   desconto, precoF, soma: real       // variaveis do desconto
inicio
      escreva("Quantos itens o cliente vai pedir? ")
      leia(numItens)
  // estrutura de repetição: para cada item, solicita nome e preço
  para i de 1 ate numItens faca
       escreva("Digite o nome do item ", i, ": ")
       leia(nomes[i])
       escreva("Digite o preço do item ", i, ": ")
       leia(precos[i])
  fimpara
  
  //verificar se o cliente tem ou não cadastro
  escreval("Você tem cadrasto conosco?")
  escreval("Sim ou Não")
  leia(resposta)

  //convertendo resposta para booleano
  se (resposta = "sim") ou (resposta = "s") entao
     tem_cadastro <- verdadeiro
  senao
     tem_cadastro <- falso
  fimse
  
  //soma dos valores do vetor
  soma <- 0
  para i de 1 ate 30 faca
       soma <- soma + precos[i]
  fimpara
  
  //Definindo descontos
  desconto <- 0.10
  precoF <- soma - (soma * desconto)
  
  //Aplicar o desconto
  se (tem_cadastro) entao
     escreva("Cliente com cadastro! O valor final da sua comanda é $ ", precoF)
  senao
       precoF <- precos[i]
       escreva("Cliente sem cadrastro. O valor final da sua comanda é $ ", precoF)
  fimse

fimalgoritmo

2 respostas

Oi, Carlos! Tudo na paz?

Mandou bem demais na estrutura dos vetores e na lógica para converter a resposta do cliente! É muito legal ver você usando o Visualg para treinar essa lógica inicial.

Vamos fazer dois ajustes rápidos para o seu simulador funcionar perfeitamente?

Você configurou o loop para rodar até 30 (ate 30), mas o ideal é somar apenas a quantidade que o cliente pediu (numItens). Assim a gente evita erros e o código fica mais rápido!
*
Ali no finalzinho, no senao (caso sem cadastro), você atribuiu precoF <- precos[i]. Como o i já terminou o loop, isso pode gerar um erro ou trazer um valor errado. Nesse caso, basta exibir a variável soma direto, já que não tem desconto a aplicar.

Com esses detalhes, seu caixa fecha certinho! Continue praticando!

Bons estudos!

Sucesso

Imagem da comunidade

Tudo na paz!! Obrigado pela devolutiva, vou me atentar nesses detalhes