Ir ao conteúdo

Posts recomendados

Postado

Alguém poderia me ajudar nesse algoritmo?

O algoritmo deve receber um valor que representa um troco e retorna a forma de dar esse troco utilizando o menor número possível de notas e moedas (Moedas e notas atuais em reais).

 

 

Atualmente existem notas de cem reais, cinquenta reais, vinte reais, dez reais, cinco reais e dois reais. Além disso existem as moedas de um real, cinquenta centavos, vinte e cinco centavos, dez centavos, cinco centavos e um centavo.

  • Obrigado 1
  • Membro VIP
Postado

Em vez de:

7 horas atrás, Victor_Toledo disse:

se (valor_compra > valor_pago) entao

 

Seria:

se (valor_pago > valor_compra) entao

 

ADENDO 1: quando o "valor da compra" é maior que o "valor pago", seria necessário receber o restante!

 

ADENDO 2: as estruturas de seleções que verificam se precisaram de determinadas notas ou moedas devem ficar dentro do da estrutura de seleção que verifica se o valor pago é maior que o valor da compra, ou seja: quando não tem troco, não tem porquê verificar notas e moedas.

 

ADENDO 3: sobre o adendo 1 e 2, o enunciado não pede valor da compra. Vide:

 

Em 05/12/2019 às 17:12, Victor_Toledo disse:

O algoritmo deve receber um valor que representa um troco e retorna a forma de dar esse troco utilizando o menor número possível de notas e moedas (Moedas e notas atuais em reais).

 

 

Atualmente existem notas de cem reais, cinquenta reais, vinte reais, dez reais, cinco reais e dois reais. Além disso existem as moedas de um real, cinquenta centavos, vinte e cinco centavos, dez centavos, cinco centavos e um centavo.

 

Ou seja: você simplesmente deveria perguntar algo como "qual o valor do troco?", e retornar quais cédulas e moedas devem ser entregues.

 

DICA: procure sempre focar no problema. Nada a mais, nada a menos. Este é o segredo da busca por uma solução.

DICA 2: daí, caso tenha interesse, fazer OUTRO programa com características extras/diferentes do que foi pedido, ou seja: entrega "uma solução para o problema proposto original" (recebe o valor do troco e retorna as notas e moedas correspondentes) e "mostra outra solução para um problema relacionado" (que vai além do solicitado). A depender, pergunta se é permitido extrapolar o enunciado... mas veja: por definição, tente sempre fazer especificamente o que foi pedido.

 

  • 4 semanas depois...
Postado
Em 11/12/2019 às 16:04, Simon Viegas disse:

@Victor_Toledo, por favor, posta o código para analisarmos e também poder servi de referência para outros visitantes.

 

No aguardo.

algoritmo "menor troco"
// Função : De o troco com o menor número de notas e moedas possíveis.
// Autor : Victor Toledo
// Seção de Declarações
var
   p100, p50, p20, p10, p5, p2: inteiro
   coin1, coin5, coin10, coin25, coin20, coin50, coin1real: inteiro
   troco, conversao: real
   val, val2: inteiro
inicio
   // Seção de Comandos
   escreval ("Qual o valor do troco?")
   leia (troco)
   val <- int(troco)
   conversao <- troco-val
   conversao <- conversao*100
   val2 <- int(conversao)
   Escreval ("Aqui está o seu troco: ", troco)
   p100 <- (val div 100)
   val <- (val mod 100)
   p50 <- (val div 50)
   val <- (val mod 50)
   p20 <- (val div 20)
   val <- (val mod 20)
   p10 <- (val div 10)
   val <- (val mod 10)
   p5 <- (val div 5)
   val <- (val mod 5)
   p2 <- (val div 2)
   val <- (val mod 2)
   coin1real <- (val div 1)
   val <- (val mod 1)
   se p100> 0 entao
      escreval (p100, " Notas (s) de 100 reais")
   fimse
   se p50> 0 entao
      escreval (p50, " Nota(s) de 50 reais")
   fimse
   se p20> 0 entao
      escreval (p20, " Nota(s) de 20 reais")
   fimse
   se p10> 0 entao
      escreval (p10, " Nota(s) de 10 reais")
   fimse
   se p5> 0 entao
      escreval (p5, " Nota(s) de 5 reais")
   fimse
   se p2> 0 entao
      escreval (p2, " Nota(s) de 2 reais")
   fimse
   se coin1real> 0 entao
      escreval (coin1real, " Moeda(s) de 1 real")
   fimse

   coin50 <- (val2 div 50)
   val2 <- (val2 mod 50)
   coin25 <- (val2 div 25)
   val2 <- (val2 mod 25)
   coin20 <- (val2 div 20)
   val2 <- (val2 mod 20)
   coin10 <- (val2 div 10)
   val2 <- (val2 mod 10)
   coin5 <- (val2 div 5)
   val2 <- (val2 mod 5)
   coin1 <- (val2 div 1)
   val2 <- (val2 mod 1)
   se coin50> 0 entao
      escreval (coin50, " Moeda(s) de 50 centavos")
   fimse
   se coin25> 0 entao
      escreval (coin25, " Moeda(s) de 25 centavos")
   fimse
   se coin20> 0 entao
      escreval (coin20, " Moeda(s) de 20 centavos")
   fimse
   se coin10> 0 entao
      escreval (coin10, " Moeda(s) de 10 centavos")
   fimse
   se coin5> 0 entao
      escreval (coin5, " Moeda(s) de 5 centavos")
   fimse
   se coin1> 0 entao
      escreval (coin1, " Moeda(s) de 1 centavo")
   fimse

fimalgoritmo

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!