Ir ao conteúdo
  • Cadastre-se

Projeto Algoritmo Visualg


Cassandra

Posts recomendados

//Escreva um algoritmo que calcule o número de notas e de moedas que

//deve ser dado de troco para um pagamento efetuado. O algoritmo deve

//ler o valor a ser pago e o valor efetivamente pago. Supor que

//o troco seja dado em notas de 50, 20,10, 5, 2 e 1 real. Verifique se existe

//as notas no caixa.

O algoritmo deve garantir alguns pontos como:

• Ao iniciar o programa, deve-se pedir:

◦ Informa notas: informar se existe no caixa as notas de 50, 20, 10, 5, 2 e 1.

• Quando o caixa estiver em operação teve-se ter as opções para:

◦ Informa notas: informar se existe no caixa as notas de 50, 20, 10, 5, 2 e 1.

◦ Calcular troco: informar quantas quais e quantas notas são necessário para o troco.

◦ Verificar faltas: informar quais as contas e os valores que faltaram dar de troco (como

no exemplo) e indicar o total.

◦ Verificar subtotal: informar quanto o caixa faturou até o momento em um resumo de

valor da conta, valor recebido e resto da conta.

◦ Sair do programa: sair do programa, finalizando a operação.

◦ Busca de conta: procurar e informar as informações sobre uma conta, ou seja, eu quero

todas as informações da conta 35, ela deve retornar: valor da conta, valor recebido e

resto da conta.

• Quando o caixa for finalizado, deve-se informar ao usuário:

◦ Total: informar quanto o caixa faturou até o momento em um resumo de valor da conta,

valor recebido e resto da conta. Essa informação deve perguntar como ela quer ordenar a

informação, se de forma crescente ou decrescente, pelo valor da conta ou resto da conta.

Link para o comentário
Compartilhar em outros sites

Cassandra, incentivo a você a tentar fazer o algoritmo, e ao encontrar dificuldades postar aqui que a ajudaremos assim que possivel.

Fazer todo o programa para você nao seria legal, porque prejudicaria seu aprendizado.

Mas para começar, crie variáveis para o caixa, que indicam a quantidade de cada nota que o caixa possui, tambem variável para valor total que o caixa possui.

Para o troco, sempre prefira comecar pelas notas mais altas possiveis e daí ir descendo (exemplo: troco R$67,00. dê uma nota de 50, uma de 10, uma de 5 e uma de 2)

Abraço.

Link para o comentário
Compartilhar em outros sites

algoritmo "Projeto_Final_Troco"
var

valor_pago, total_conta : real
nota50, nota10,nota20, nota5, nota2,nota1 : logico
selecao : inteiro
opcao : literal

funcao busca (valor_pago, total_conta : real): literal

var
x : vetor [1..100,1..4 ] de real
contador : inteiro
contaa, pagoo : real

inicio
contador <- 1
contaa <- -1
enquanto (contaa <> 0) faca
escreva("Conta: ")
leia(contaa)
se (contaa <> 0) e (contaa <> -1) então
escreva("Pago: ")
leia(pagoo)
x[contador, 1] <- contaa
x[contador, 2] <- pagoo - contaa
contador <- contador + 1
senao
resumo(contador)
fimse
fimenquanto
resumo(contador)
fimse
fimfuncao

procedimento resumo(x : inteiro)
var
i : inteiro
totalConta, totalTroco, xx, yy : real
inicio
totalConta <- 0
totalTroco <- 0
para i de 1 ate x faca
escreva("Conta: ", i, " Valor: ", x[i,1])
escreval(" troco: ", x[i,2])
totalConta <- totalConta + x[i,1]
totalTroco <- totalTroco + x[i,2]
fimpara
escreva("Total das contas", totalConta)
escreval(", Total de Troco: ", totalTroco )
fimprocedimento

procedimento caixa()
var
opcao: literal
inicio
escreval("Deseja Abrir o Caixa?(S/N)")
leia(opcao)
se (opcao = "s") então
escreval("Caixa Aberto")
se (opcao <> "s") então
fimse
fimprocedimento

procedimento notas()
var
teste : literal
inicio

escreval("N50? (S/N)")
leia(teste)
se (teste = "S") então
nota50 <- verdadeiro
senao
nota50 <- falso
fimse
escreval("20? (S/N)")
leia(teste)
se (teste = "S") então
nota20 <- verdadeiro
senao
nota20 <- falso
fimse
escreval("N10? (S/N)")
leia(teste)
se (teste = "S") então
nota10 <- verdadeiro
senao
nota10 <- falso
fimse
escreval("N5? (S/N)")
leia(teste)
se (teste = "S") então
nota5 <- verdadeiro
senao
nota5 <- falso
fimse
escreval("N2? (S/N)")
leia(teste)
se (teste = "S") então
nota2 <- verdadeiro
senao
nota2 <- falso
fimse
escreval("N1? (S/N)")
leia(teste)
se (teste = "S") então
nota1 <- verdadeiro
senao nota1 <- falso
fimse
se (nao(nota50 ou nota20 ou nota10 ou nota5 ou nota2 ou nota1)) então
escreval ("Sem cédulas para troco")
fimse

fimprocedimento

funcao troco (r_valor_pago, r_total_conta : real): literal
var
msg, erro : literal
quantidade50, quantidade20, quantidade10, quantidade5, quantidade2, quantidade1 : inteiro
resto : real
inicio

se (r_valor_pago >= r_total_conta) então

resto <- r_valor_pago - r_total_conta
msg <- "TROCO: R$ " + Numpcarac(resto) + ", "

se ((nota50) e (resto >= 50)) então
quantidade50 <- Int(resto/50)
resto <- (resto - (quantidade50 * 50))
msg <- msg + "[N50: " + Numpcarac(quantidade50) + "]"
fimse

se ((nota20) e (resto >= 20)) então
quantidade50 <- Int(resto/20)
resto <- (resto - (quantidade50 * 20))
msg <- msg + "[N20: " + Numpcarac(quantidade50) + "]"
fimse

se ((nota10) e (resto >= 10)) então
quantidade10 <- Int(resto/10)
resto <- resto - (quantidade10 * 10)
msg <- msg + "[N10: " + Numpcarac(quantidade10) + "]"
fimse

se ((nota5) e (resto >= 5)) então
quantidade5 <- Int(resto/5)
resto <- resto - (quantidade5 * 5)
msg <- msg + "[N5: " + Numpcarac(quantidade5) + "]"
fimse

se ((nota2) e (resto >= 2)) então
quantidade2 <- Int(resto/2)
resto <- resto - (quantidade2 * 2)
msg <- msg + "[N2: " + Numpcarac(quantidade2) + "]"
fimse

se ((nota1) e (resto >= 1)) então
quantidade1 <- Int(resto/1)
resto <- (resto - (quantidade50 * 1))
msg <- msg + "[N1: " + Numpcarac(quantidade50) + "]"
fimse

msg <- msg + ", Falta : R$ " + Numpcarac(resto)

senao
erro <- "Valor insuficiente"
se (nao(nota50 ou nota20 ou nota10 ou nota5 ou nota2 ou nota1)) então

erro <- erro + ", Sem cédulas para troco"
fimse

msg <- "Erros: " + erro
fimse

retorne msg
fimfuncao

inicio

caixa()
notas()

enquanto (selecao <> 9) faca
escreval("Digite o número correspondente:")
escreval(" 1 - Verificar Notas")
escreval(" 2 - Calcular Troco")
escreval(" 3 - Verificar Faltas")
escreval(" 4 - Verificar Subtotal")
escreval(" 5 - Buscar Conta")
escreval(" 9 - Para sair")
escreval("Seleção: ")
leia(selecao)

se (selecao = 1) então
notas()
fimse
se (selecao = 2) então
escreval("TOTAL CONTA: ")
leia(total_conta)
escreval("VALOR PAGO : ")
leia(valor_pago)
escreval(troco(valor_pago, total_conta))
fimse
se (selecao = 3) então
escreval resumo
fimse
se (selecao = 5) então
busca()
fimse
se (selecao = 9) então
fimse
fimenquanto
fimse
fimalgoritmo

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!