• Jueves 30 de Mayo de 2024, 12:52

Autor Tema:  problema con codigo C++  (Leído 2310 veces)

aneroeancoh

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
problema con codigo C++
« en: Lunes 2 de Mayo de 2011, 19:04 »
0
Hola amigos, tengo que hacer un codigo que dado el valor de un producto, calcule el cambio (devuelto) dependiendo el billete o moneda que entregue.

tengo este codigo, pero no se si sea cuestion de librerias o de algun error en los array ya que no compila o se queda mostrando un valor basura sin fin.

lo traduci yo personalmente desde c#, pero evidentemente hay un error que no me permite que el programa se ejecute bien.


Código: C++
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5. using namespace std;
  6.  
  7. int main(string[])
  8. {
  9. int bri;
  10. bri [15]={ 50000, 20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 20, 10};// Identificando el arreglo
  11. int guardar;
  12. guardar [10];// Estbleciendo el limite del nuevo arreglo
  13.  
  14.  
  15. double total, pago, devuelta;//Declarandolas como reales porque puede tolerar valores decimales
  16. int r;
  17.  
  18. cout<<"n Programa para calcular la devuelta ideal de una compra:";
  19. cout<<"nIntroduzca el Total de su compra: $ ";
  20. cin>>total;
  21. cout<<" nMe Pagara con un billete de :$";
  22. cin>>pago;
  23.  
  24.  
  25. devuelta = pago - total;//Operacion
  26.  
  27. r = 0;
  28. while (devuelta != 0 && r != 10)// Ahora el bucle de la devuelta (Como fue expuesto en clase)
  29. {
  30. while (devuelta >= bri)
  31. {
  32. guardar[r]++;// El contador de la cantidad de billetes
  33. devuelta -= bri;
  34. }
  35. r++;
  36. }
  37.  
  38. for (r = 0; r < bri; r++)// El contador de los tipos de billetes
  39. {
  40. if (guardar[r] != 0)//Condicionante para saber que no se quedara debiendo!!
  41. cout<<guardar<< " billetes de " << " " << bri;
  42. }
  43. }
  44.  
  45.  
muchas gracias

ssaammuu

  • Miembro activo
  • **
  • Mensajes: 41
  • Nacionalidad: es
    • Ver Perfil
    • http://desarrollodejuegos.net
Re: problema con codigo C++
« Respuesta #1 en: Lunes 2 de Mayo de 2011, 19:19 »
0
Código: C++
  1. int bri;
  2. bri [15]={ 50000, 20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 20, 10};// Identificando el arreglo
  3. int guardar;
  4. guardar [10];// Estbleciendo el limite del nuevo arreglo
  5.  
No se puede declarar una variable y despues convertirla en un array

Código: C++
  1. while (devuelta >= bri)
  2. devuelta -= bri;
  3. for (r = 0; r < bri; r++)
  4. cout<<guardar<< " billetes de " << " " << bri;
  5.  
En estas líneas, estás usando arrays como si de variables individuales se trataran, entonces, en lugar de estar usando el contenido de las variables, estás usando la dirección en memoria de el primer elemento del array.

ssaammuu

  • Miembro activo
  • **
  • Mensajes: 41
  • Nacionalidad: es
    • Ver Perfil
    • http://desarrollodejuegos.net
Re: problema con codigo C++
« Respuesta #2 en: Lunes 2 de Mayo de 2011, 19:39 »
0
Si no consigues hacer que funcione, intenta este código.
Código: C++
  1.  
  2. #include <iostream>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <math.h>
  6.  
  7. using namespace std;
  8.  
  9. int main(string[])
  10. {
  11. int bri []={ 50000, 20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 20, 10};// Identificando el arreglo
  12. const int numDeBilletes=sizeof(bri)/sizeof(bri[0]);//tamaño de pila
  13. int guardar [numDeBilletes];// Estbleciendo el limite del nuevo arreglo
  14. for (int i=0;i<numDeBilletes;i++)guardar[i]=0;//reiniciar a 0
  15.  
  16.  
  17. double total, pago, devuelta;//Declarandolas como reales porque puede tolerar valores decimales
  18.  
  19. cout<<"n Programa para calcular la devuelta ideal de una compra:";
  20. cout<<"nIntroduzca el Total de su compra: $ ";
  21. cin>>total;
  22. cout<<" nMe Pagara con un billete de :$";
  23. cin>>pago;
  24.  
  25.  
  26. devuelta = pago - total;//Operacion
  27.  
  28. int r=0;
  29. while (devuelta > 10)// 10 porque es el billete más pequeño
  30. {
  31. while (devuelta >= bri[r])
  32. {
  33. guardar[r]++;// El contador de la cantidad de billetes
  34. devuelta -= bri[r];
  35. }
  36. r++;
  37. }
  38.  
  39. for (r = 0; r < numDeBilletes; r++)// El contador de los tipos de billetes
  40. {
  41. if (guardar[r] != 0)//Condicionante para saber que no se quedara debiendo!!
  42. cout<<guardar[r]<< " billetes de " << " " << bri[r]<<endl;
  43. }
  44. }
  45.  
  46.  

Estaría bien que hacieras algunos chequeos, como mínimo para que el pago sea mayor que la compra...  ^_^

aneroeancoh

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: problema con codigo C++
« Respuesta #3 en: Lunes 2 de Mayo de 2011, 21:05 »
0
Muchisimas gracias, en efecto los errores se producen es porque trancribi ese codigo desde C# manualmente, y pues desconozco ese lenguaje, seguire intentando mas problemas asi para agarrar destreza.

 :good:  :good:  :good:  :good:

aneroeancoh

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: problema con codigo C++
« Respuesta #4 en: Martes 3 de Mayo de 2011, 02:07 »
0
Código: C++
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5.  
  6. using namespace std;
  7.  
  8. int fuc(string[])
  9. {
  10. int bri []={ 50000, 20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 20, 10};// Identificando el arreglo
  11. const int numDeBilletes=sizeof(bri)/sizeof(bri[0]);//tamaño de pila
  12. int guardar [numDeBilletes];// Estbleciendo el limite del nuevo arreglo
  13. for (int i=0;i<numDeBilletes;i++)guardar[i]=0;//reiniciar a 0
  14.  
  15.  
  16. double total, pago, devuelta;//Declarandolas como reales porque puede tolerar valores decimales
  17.  
  18. cout<<"nPrograma para calcular la vueltas de una compra: ";
  19. cout<<"nIntroduzca el Total de su compra: $";
  20. cin>>total;
  21. cout<<"nMe Pagara con un billete de: $";
  22. cin>>pago;
  23.  
  24.  
  25. devuelta = pago - total;//Operacion
  26.  
  27. int r=0;
  28. while (devuelta > 10)// 10 porque es el billete más pequeño
  29. {
  30. while (devuelta >= bri[r])
  31. {
  32. guardar[r]++;// El contador de la cantidad de billetes
  33. devuelta -= bri[r];
  34. }
  35. r++;
  36. }
  37.  
  38. for (r = 0; r < numDeBilletes; r++)// El contador de los tipos de billetes
  39. {
  40. if (guardar[r] != 0)//Condicionante para saber que no se quedara debiendo!!
  41.  
  42. cout<<guardar[r]<<" billetes de "<< bri[r]<<endl;
  43. }
  44. system ("pause");
  45. }
  46.  
  47. int main (){
  48.     int total, pago, guardar, bri;
  49.     system ("color 0A");//asdasdasd zZZz matrix effect
  50.     cout<<"nPrograma para calcular la vueltas de una compra: ";
  51. cout<<"nIntroduzca el Total de su compra: $";
  52. cin>>total;
  53. cout<<"nMe Pagara con un billete de: $";
  54. cin>>pago;
  55. cout<<guardar[r]<<" billetes de "<< bri[r]<<endl;
  56.     system ("pause");
  57.     return(0);
  58. }
  59.  

si le quiero poner recursividad, que me haria falta para que se ejecute debidamente?