Script de caixa eletrônico em C

Publicado por Angelito Monteiro Goulart 30/05/2009

[ Hits: 23.816 ]

Homepage: http://angelitomg.com

Download cx.c




Script de caixa eletrônico em C. O usuário digita o valor e o programa informa quantas notas de cada valor serão necessárias para formar aquele valor.

O programa procura sempre formar o valor com o menor número de notas possíveis.

  



Esconder código-fonte

/*
Desenvolvido por Angelito M. Goulart
ange.sap@hotmail.com
http://twitter.com/angelitomg
http://angelitomg.wordpress.com
*/
#include <stdio.h>
int valor, n100=0, n50=0, n20=0, n10=0, n5=0, n2=0, n1=0;
int main()
{
   printf ("Digite o valor a ser sacado: ");
   scanf ("%d", &valor);
   if (valor>=0) 
   {
      verifica();
   }
   else
   {
      main();
   }
}
verifica()
{
   if (valor>=100)
   {
      v100();
   }
   if (valor>=50 && valor<100)
   {
      v50();
   }
   if (valor>=20)
   {
      v20();
   }
   if (valor>=10)
   {
      v10();
   }
   if (valor>=2)
   {
      v2();
   }
   if (valor==1)
   {
      v1();
   }
}
v100()
{
   while (valor>=100)
   {
      valor = valor-100;
      n100++;
   }
   v50();
}
v50()
{
   while (valor>=50)
   {
      valor = valor-50;
      n50++;
   }
   v20();
}
v20()
{
   while (valor>=20)
   {
      valor = valor-20;
      n20++;
   }
   v10();
}
v10()
{
   while (valor>=10)
   {
      valor = valor-10;
      n10++;
   }
   v5();
}
v5()
{
   while (valor>=5)
   {
      valor = valor-5;
      n5++;
   }
   v2();
}
v2()
{
   while (valor>=2)
   {
      valor = valor-2;
      n2++;
   }
   v1();
}
v1()
{
   while (valor>=1)
   {
      valor = valor-1;
      n1++;
   }
   printf ("Notas de 100: %d \n", n100);
   printf ("Notas de  50: %d \n",  n50);
   printf ("Notas de  20: %d \n", n20);
   printf ("Notas de  10: %d \n", n10);
   printf ("Notas de   5: %d \n", n5);
   printf ("Notas de   2: %d \n", n2);
   printf ("Notas de   1: %d \n", n1);
}

Scripts recomendados

Verificação de ano bissexto

Ordenando valores

Transforma a quantidade de dias digitados em anos, meses e dias

Converter um vetor em uma matriz multidimensional

Barra de progresso em forma de "roda"


  

Comentários
[1] Comentário enviado por eldermarco em 30/05/2009 - 19:21h

Rapaz, sua idéia foi interessante, mas perceba que existe muito código aí que segue uma mesma lógica e faz a mesma tarefa no final das contas. Aí então entraria o conceito de função, onde você poderia usar elas sempre que necessitar para realizar sempre uma mesma rotina, apenas mudando os valores. Você também poderia usar o resto da divisão e a divisão para se descobrir o número de notas. Não é necessário nenhum comando condicional para isso.
Eu fiz rapidinho esse programa para usar como exemplo ilustrativo:

http://pastebin.com/f19908de

Dê uma olhada.

Mas continue aprendendo que é quebrando a cabeça que se alcança bons resultados. :-)

Abraços e bons estudos.

Elder Marco.

[2] Comentário enviado por angelito em 04/06/2009 - 20:56h

Muito obrigado pela dica eldermarco, nao tinha pensado nisso :D

Abração. ;)

[3] Comentário enviado por rodrigopleite em 10/09/2009 - 07:28h

Eldermarco , sera que poderia me ajudar preciso elabora um program de caiaxa eletronico porém so a intarce não e necessario usar banco de dados, apenas com a tela mostra extrato,saque etc.. poderia me ajudar??? e-mail rodrigopleite@uol.com.br abraços

[4] Comentário enviado por Fernando (C) em 19/09/2009 - 23:34h

eu estou com o mesmo problema do amigo ai decima
se alguem conseguir me ajudar eu agradeço.
e-mail only.fe@hotmail.com
Grato.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts