Ir ao conteúdo
  • Cadastre-se
brenno00

VisualG Algoritmo troco / Cédulas e moedas

Recommended Posts

Olá, pensei em disponibilizar esse algoritmo em VisualG, pois quando tinha algumas dúvidas sobre ele, infelizmente, não encontrei muita coisa.

 

 

Vamos ao problema:

Elabore um programa no Visualg que calcule o troco a ser fornecido em uma compra, ao ser informado o valor da compra e o valor pago. Além disso, o algoritmo deve fornecer menor número de cédulas de 2,5,10,20,50 e 100 reais, de moedas de 1 real, e de moedas de 1,5,10,25 e 50 centavos a ser dado de troco.

 

Vamos ao código:

algoritmo "TROCO"
var

//Valor da compra e Valor pago
V1, V2 : real


// X é o troco e a variável M é utilizada para fazer a troca de Real para inteiro
X, M : real


//Y é o valor inteiro do troco utilizado para as cédulas
Y : inteiro


//Z é o valor inteiro das moedas (multiplicado por 100)
Z : inteiro


//N são as cédulas
N50, N20, N10, N5, N2, N1: inteiro


//M são as moedas

M50, M25, M10, M5, M1 : inteiro
Inicio
      Escreval ("Valor da compra:")
               leia (V1)
      Escreval ("Valor Pago:")
               leia (V2)


//Aqui vamos obter o troco

X<- V2-V1


//Aqui vamos obter apenas a parte inteira do troco. Exemplo : X= 13,45 , logo o Y= 13
Y<- int(X)


//Aqui vamos pegar a parte "quebrada" do troco, ou seja, as moedas. É o inverso da função anterior.
M<- X-Y


//Aqui vamos transformar o número "quebrado" em número inteiro, ou seja, transforma-lo de Real para Inteiro.
M<- M*100


//Aqui o Z (troco quebrado) recebe a parte inteira de M
Z<- int(M)


               Escreval ("Troco=",X)

Se (V1 > V2) então

N50<- (Y div 50)
Y<- (Y mod 50)
N20<- (Y div 20)
Y<- (Y mod 20)
N10<- (Y div 10)
Y<- (Y mod 10)
N5<- (Y div 5)
Y<- (Y mod 5)
N2<- (Y div 2)
Y<- (Y mod 2)
N1<- (Y div 1)
Y<- (Y mod 1)
fimse

Se n50>0 então
Escreval (n50,"_", "Nota(s) de 50")
fimse
Se n20>0 então
Escreval (n20,"_", "Nota(s) de 20")
fimse
Se n10>0 então
Escreval (n10,"_", "Nota(s) de 10")
fimse
Se n5>0 então
Escreval (n5,"_", "Nota(s) de 5")
fimse
Se n2>0 então
Escreval (n2,"_", "Nota(s) de 2")
fimse
Se n1>0 então
Escreval (n1,"_", "Nota(s) de 1")
fimse

Se (V2 > V1) então

M50 <- (Z div 50)
Z <- (Z mod 50)
M25 <- (Z div 25)
Z <- (Z mod 25)
M10 <- (Z div 10)
Z <- (Z mod 10)
M5 <- (Z div 5)
Z <- (Z mod 5)
M1 <- (Z div 1)
Z <- (Z mod 1)

fimse

Se M50>0 então
Escreval (M50,"_", "Moeda(s) de 50 centavos")
fimse
Se M25>0 então
Escreval (M25,"_", "Moeda(s) de 25 centavos")
fimse
Se M10>0 então
Escreval (M10,"_", "Moeda(s) de 10 centavos")
fimse
Se M5>0 então
Escreval (M5,"_", "Moeda(s) de 5 centavos")
fimse
Se M1>0 então
Escreval (M1,"_", "Moeda(s) de 1 centavos")
fimse


fimalgoritmo
 

Bons estudos !!          ;)

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×