Ir ao conteúdo
  • Cadastre-se

Ajuda em exercício de algoritmos


henriquenpaulo

Posts recomendados

_ A máquina pode ser abastecida com até 6 tipos de refrigerantes em lata (considerar para o algoritmo até 3 preços diferentes. R$ 0,50 para chá mate em lata, R$ 1,00 para soda e água tônica em lata e R$ 1,50 para Coca Cola e Guaraná em lata.

_ Os cartuchos serão abastecidos com Coca Cola, Guaraná, Soda Limonada, Água Tônica, Chá Mate Preto e Chá Mate Limão. Em cada cartucho de uma determinada bebida cabem até 30 latas.

_ Existe um contador (que será simulado com uma entrada via teclado) que informa a quantidade de lata de cada bebida.

_ Estes contadores serão variáveis definidas obrigatoriamente com os nomes NLMP (número de latas de mate preto), NLML (numero de latas de mate limão), NLSL (numero de latas de soda limonada), NLAT (Agua Tonica), NLCC (Coca Cola) e NLGR (Guaraná). Ao iniciar, o programa pede para informar a quantidade de latas em cada cartucho.

_ Internamente na máquina, existem também cartuchos para moedas de R$ 0,50 e notas de R$ 1,00 de R$ 5,00 e R$ 10,00. Considera-se que não existe controle do número máximo de moedas ou notas nos cartuchos apropriados

_ Existe um contador (que será simulado com uma entrada via teclado) que informa a quantidade de cada nota ou moeda.

_ Estes contadores serão definidos obrigatoriamente como NMOE (número de moedas), NN01 (numero de notas de R$ 1), NN05 (numero de notas de R$ 5), NN10. Ao iniciar, o programa também pede para informar a quantidade de notas e moedas em cada cartucho.

_ A máquina possui um dispositivo de entrada de nota que pode “ler” a nota, identificando se é uma nota de R$ 1,00 R$ 2,00 R$ 5,00 R$ 10,00 ou R$ 20,00. A máquina não aceita moedas e também não aceita notas superiores a R$ 20,00, ou seja, caso o valor esteja fora desta faixa, o programa deve imprimir a seguinte mensagem “Erro nº SUAMATRICULA&VALORDIGITADO - Cédula não reconhecida”

_ O valor da nota será simulado como uma entrada via teclado.

_ a máquina então pede que o usuário escolha o tipo de bebida.

_ Uma vez escolhida a bebida, a máquina entrega a bebida certa (simulado via monitor, escrevendo “você comprou uma lata de Coca Cola”) e faz o troco, devolvendo o mesmo (simulado tb como mensagem no monitor para o troco, como no algoritmo de contagem de cédulas).

_ Existe também um totalizador que acumula o valor do numerário no início e no fim da operação. A soma dos valores das notas no início da operação ficará acumulado na variável CASHIN, e o valor final da soma após a operação ficará acumulado na variável CASHOUT.

Tratamento das exceções:

_ Se não houver possibilidade de fazer troco, a máquina deve devolver o dinheiro e informar que não é possível fazer o troco (Através de mensagens na tela).

_ Se não tiver a bebida escolhida, a maquina deve informar esta situação e perguntar se o usuário quer outra bebida, senão deve devolver o dinheiro.

_ se o dinheiro for insuficiente para a bebida escolhida a máquina deve pedir mais dinheiro, somar com o valor que já entrou e proceder normalmente.

tem que ser para rodar no visualg em portugol

Link para o comentário
Compartilhar em outros sites

Surgiu algumas dúvidas enquanto eu estava implementando.

A máquina realiza somente 1 venda? ou ela fica rodando até o dinheiro acabar ou até as latas acabarem?

ou so faz 1 venda por vez que você executa o programa?

Outra coisa,

como eu nao tenho VisualG na minha máquina, gostaria de saber onde baixar... ou onde tem algum compilador que eu consiga compilar pra ver se ta tudo certinho...

Desculpe se postei na área errada mas tá ai.

Obs: Desculpe a demora pra implementar... mas to meio sem tempo... to quase terminando =D

vamo ve se da certo.

--[EDIT]--

o Que eu tenho até agora... ta tudo identado errado e sem ordem em nada.. mas depois eu arrumo... como eu nao compilei é tudo feito no .txt mesmo..

se alguem descobrir algum erro pode falar! se alguem encontrar alguma falha pode falar! se alguem nao gostou de algum nome de alguma variavel que eu use pode falar tambem! ushAUShauH



var

Bebida, Menu, NLCC, NLGR, NLSL, NLAT, NLMP, NLML, NMOE, NN01, NN05, NN10, ValorInserido, MaisDinheiro :Inteiro





//Entrada da qtde de latas por produto

Escreval("Digite a quantidade de latas para cada produto")
Escreval("Coca Cola")
Leia("NLCC")
Escreval("Guarana")
Leia("NLGR")
Escreval("Soda Limonada")
Leia("NLSL")
Escreval("Agua Tonica")
Leia("NLAT")
Escreval("Cha Mate Preto")
Leia("NLMP")
Escreval("Cha Mate Limao")
Leia("NLML")

limpatela

//Entrada da qtde de moedas e notas

Escreval("Digite a quantidade de Notas e Moedas para os respectivos valores:")
Escreval("0,50")
Leia("NMOE")
Escreval("1,00")
Leia("NN01")
Escreval("5,00")
Leia("NN05")
Escreval("10,00")
Leia("NN10")

//Seta a variável CASHIN com o valor total inserido

CASHIN <- (NMOE*0,5)+(NN01)+(NN05*5)+(NN10*10)

limpatela


//Chamada da funcao que verifica se o valor inserido e valido ou nao

ValorInserido <- NotaInserida


limpatela

//Cliente deve selecionar a bebida depois do valor inserido ser validado

Escreval("Selecione a bebida")
Escreval("1 - Coca Cola")
Escreval("2 - Guarana")
Escreval("3 - Soda Limonada")
Escreval("4 - Agua Tonica")
Escreval("5 - Cha Mate Preto")
Escreval("6 - Cha Mate Limao")
Leia(Bebida)

//Se o valor inserido for menor que o preco da bebida a maquina deve pedir mais dinheiro

Se ValorInserido < preco(Bebida) então

//Maquina pede mais dinheiro ate que o valor seja maior ou igual a bebida selecionada.

Repita
Escreval("por favor Coloque mais dinheiro para comprar o item selecionado")

Leia(MaisDinheiro)
ValorInserido <- ValorInserido + MaisDinheiro

ate ValorInserido >= preco(Bebida)

Senao

//Diz ao cliente qual bebida ele comprou, Verifica se a maquina tem troco ou nao

Escolha Bebida

Caso 1

Se QtdeLatas(Bebida) = TRUE então

TrocoMaquina

Senao

Escreval("Sem latas para o produto selecionado")
OutraBebida
Leia (Bebida)

FimSe

Caso 2

Se QtdeLatas(Bebida) = TRUE então

TrocoMaquina

Senao

Escreval("Sem latas para o produto selecionado")
OutraBebida
Leia (Bebida)

FimSe

Caso 3

Se QtdeLatas(Bebida) = TRUE então

TrocoMaquina

Senao

Escreval("Sem latas para o produto selecionado")
OutraBebida
Leia (Bebida)

FimSe

Caso 4

Se QtdeLatas(Bebida) = TRUE então

TrocoMaquina

Senao

Escreval("Sem latas para o produto selecionado")
OutraBebida
Leia (Bebida)

FimSe

Caso 5

Se QtdeLatas(Bebida) = TRUE então

TrocoMaquina

Senao

Escreval("Sem latas para o produto selecionado")
OutraBebida
Leia (Bebida)

FimSe

Caso 6

Se QtdeLatas(Bebida) = TRUE então

TrocoMaquina

Senao

Escreval("Sem latas para o produto selecionado")
OutraBebida
Leia (Bebida)

fimse

FimEscolha

FimSe


limpatela



























--------------------------------------------------------------------

//Funcao que verifica se a nota inserida e valida ou nao

Funcao NotaInserida: Inteiro

var: validador, Nota, OutroValor, sn, ValorTotal :Inteiro
Inicio



Repita

Escreval("Esta maquina aceita SOMENTE NOTAS de:")
Escreval("R$ 1,00 R$ 2,00 R$ 5,00 R$ 10,00 R$ 20,00")
Escreval("Digite o valor da nota inserida:")
Leia(Nota)

//Verifica se nota e valida ou nao

escolha Nota
Caso 1, 2, 5, 10, 20

ValorTotal <- ValorTotal + Nota

//Se a nota for valida, o cliente pode selecionar em inserir uma nova nota

Escreval("Deseja inserir outra nota?")
Escreval("1 - SIM")
Escreval("2 - NÃO")
Leia (sn)

fimse

outrocaso

Escraval("Erro nº SUAMATRICULA&",ValorInserido," - Cédula não reconhecida")

fimescolha

//Se o usuario nao desejar mais inserir nenhuma nota, o loop termina

Ate sn = 2

retorna ValorTotal

fimfuncao




---------------------------------------------

Funcao Preco (x: inteiro): real

inicio

escolha x

caso 1, 2
retorne 1,5
caso 3, 4
retorne 1
caso 5, 6
retorne 0,5

fimescolha


fimfuncao

---------------------------------------------

Funcao QtdeLatas (produto: Inteiro): inteiro

inicio

se produto > 0 então
Produto <- produto -1
retorne TRUE

senao
retorne FALSE


fimfuncao


---------------------------------------------

Procedimento TrocoMaquina

Se CASHIN < Preco(Bebida) então

Escreval("Nao e possivel fazer troco, dinheiro inserido sera devolvido.")

Senao

Escreval("voce comprou uma lata de Coca Cola: ")
Escreval("Seu troco e de: ",ValorInserido - Preco(Bebida))

FimSe

CASHOUT <- CASHIN + Preco(Bebida)

FimProcedimento


---------------------------------------------

Procedimento OutraBebida

Escreval("Deseja outra bebida?")
Escreval("1 - SIM")
Escreval("2 - NAO")

FimProcedimento

-----------------------------------------------
//Declaração de Variaveis

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
o código pronto

Vou transcrever o texto presente no aviso Regras adicionais, olhe aqui antes de postar(link)

- Os demais frequentadores do fórum poderão ajudá-lo a tirar dúvidas, mas não irão fazer seu trabalho por você, por isso tente ao menos fazer seus exercícios e poste suas dúvidas, senão nunca irá aprender se fizerem tudo por você.

Então a minha recomendação é que você tente fazer os exercícios e traga dúvidas, assim nós poderemos te ajudar. Resolvendo os exercícios pra você nós estaremos na verdade te atrapalhando, dessa forma recomendo que você tente fazer alguma coisa, se não conseguir nós podemos dar o pontapé inicial, mas resolver os seus exercícios é algo que dificilmente será feito.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Peço desculpas a Moderação por não ter lido as regras antes de comentar..

mas o que já foi feito ... está feito...

mas já estou ciente agora das proximas vezes...

Não há problemas amigo, e eu peço desculpas se de alguma forma desmereci a sua ajuda, não foi esse meu intuito. Agradeço a sua participação e a vontade de ajudar, e entendo que você teve a melhor das intenções, mas em alguns casos é mais apropriado ir guiando o usuários aos poucos, para o próprio bem dele.

Agradeço a sua compreensão e espero vê-lo guiando outros usuários em breve.^_^

Abraços.

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!