• Jueves 14 de Noviembre de 2024, 04:32

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - oliveros.maestre

Páginas: [1]
1
C/C++ / Re:Pasar Array de una funcion a otra
« en: Domingo 1 de Junio de 2014, 22:54 »
que tal, aqui le dejo el codigo completo, no lo puse porque eran cosas que no interferian con lo que necesito, bueno eso creo...

Citar
lo que el programa pretende es: llenar dos vectores codigo y cantidad de determinados articulos, Ud. le dara la opcion a clientes y proveedores de ver cuantos articulos existen, ademas de ello si un cliente compra una determinada cantidad de articulos debera descontarlos y actualizar el vector a la nueva cantidad, asi mismo si un proveedor trajere otra determinada cantidad de articulos Ud. debera sumar al respctivo articulo la cantidad correcta y actualizar el vector, el cualquier momento se puede solicitar ver la cantidad de articulos existentes con sus respectivos codigos...

Código: C++
  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. using namespace std;
  5.  
  6. int AnhiadirArticulos();
  7. int Transacciones( int );
  8. int VerArticulos( const int art, int codigo[], int cantidad[] );
  9.  
  10. /* permite al usuario seleccionar una opcion del programa */
  11. int menu()  
  12. {
  13.     int opcion, art, codigo[0], cantidad[0];
  14.     system("cls");
  15.     cout << endl << endl;
  16.     cout << "MARQUE << 1 >> PARA VER NUESTROS ARTICULOS" << endl;
  17.     cout << "MARQUE << 2 >> PARA HACER   TRANSACCIONES" <<  endl;
  18.     cout << "MARQUE << 3 >> PARA  SALIR   DEL  PROGRAMA" << endl;
  19.     cout << "MARQUE UNA OPCION PARA CONTINUAR        ";
  20.     cin >> opcion;
  21.  
  22.     system("cls");
  23.  
  24.     switch ( opcion )
  25.     {
  26.     case 1:
  27.         /* me debe mostrar la lista de articulos registrados en el vector */
  28.         VerArticulos( art, codigo, &cantidad[0] );
  29.         break;
  30.     case 2:
  31.         /* aqui estoy llamando la funcion que sumara o restara del vector segun sea el caso */
  32.         Transacciones( art );  
  33.         break;
  34.     case 3:
  35.         return 0;
  36.         break;
  37.     default:
  38.         cout << "OPCION INVALIDA, INTENTE DE NUEVO";
  39.         menu();
  40.     }
  41.  
  42.     return 0;
  43. }
  44.  
  45. int AnhiadirArticulos()  
  46. /* esta funcion  es la primera que se ejecuta, pues de no hacerlo asi arrojara un error porque si el usuario selecciona verarticulos()
  47. este estara vacio al inicio del porgrama, su funcion es llenar llenar un vector con una cantidad 'x' de articulos para luego poder proceder con la otra parte del programa*/
  48. {
  49.     int art, tran, op, cod;
  50.    
  51.     /* esto la verdad me recomendaron hacerlo pero aun no me queda claro cual es la funcion */
  52.     art = tran = op = cod = 0;
  53.  
  54.     system("cls");
  55.  
  56.     cout << endl << endl;
  57.     cout<<"CON CUANTOS ARTICULOS INICIA EL ALMACEN:  ";
  58.     cin>>art;
  59.  
  60.     int codigo[art];
  61.     int cantidad[art];
  62.  
  63.     /* aqui ya corregi el problema que la verdad no me habia percatado de el.
  64.         este ciclo lo llena los vector para luego poder mostrarlo si el usario lo requiere */
  65.     for ( int i=0; i<art; i++ )  
  66.     {
  67.         system("cls");
  68.  
  69.         cout << endl << endl;
  70.         cout << "INGRESE EL ARTICULO " << i+1 << endl;
  71.         cout << "CODIGO    ";
  72.         cin >> codigo[i];
  73.         cout << "CANTIDAD  ";
  74.         cin >> cantidad[i];
  75.     }
  76.  
  77.     /* aqui estoy pasando a la funcion verArticulos() el contenido que acabo de llenar,
  78.         cuando ejecuto el programa, desde aqui, me muestra la lista de articulos y codigos
  79.         sin problema alguno, el problema esta cuando llamo a esta misma funcion desde el menu */
  80.     VerArticulos( art, codigo, &cantidad[0] );
  81.  
  82.     return 0;
  83. }
  84.  
  85. /* esta es la funcion que me muestra los articulos, pero como les dijo, si la invoco desde el menu me arroja
  86. varios errores en el programa, me empieza a generar "numeros aleatorios" y finaliza con ceros "0" y luego de eso se detiene el programa*/
  87.  
  88. int VerArticulos( int art, int codigo[], int cantidad[] )
  89. {
  90.     system("cls");
  91.  
  92.     cout << endl << endl;
  93.     cout << "CODIGO\t\tCANTIDAD" << endl << endl;
  94.  
  95.     for ( int i=0; i<art; i++ )
  96.     {
  97.         cout << codigo[i] << "\t\t" << cantidad[i] << endl;
  98.     }
  99.  
  100.     cout << endl << endl;
  101.     cout << "PRESIONE UNA TECLA PARA IR AL MENU";
  102.     cin.get();
  103.     cin.get();
  104.  
  105.     menu();
  106.  
  107.     return 0;
  108. }
  109.  
  110. int Transacciones( int art )
  111. {
  112.     int tran, op, cod;
  113.     int cantrecibida, cantvendida;
  114.     int codigo[0], cantidad[0];
  115.  
  116.     cout << endl;
  117.     cout<<"TRANSSACCIONES POR DIA  ";
  118.     cin>>tran;
  119.  
  120.     for( int l=0; l<tran; l++)
  121.     {
  122.         system("cls");
  123.  
  124.         cout<<" MARQUE << 1 >> SI ES PROVEERDOR"<<endl;
  125.         cout<<" MARQUE << 2 >> SI ES UN CLIENTE"<<endl;
  126.         cout<<" MARQUE UNA OPCION PARA        "<<endl;
  127.         cin>>op;
  128.  
  129.         if( op == 1 )
  130.         {
  131.             cout<<"INGRESE CODIGO DEL ARTICULO    "<<endl;
  132.             cin>>cod;
  133.  
  134.             for ( int j=0; j<art; j++ )
  135.             {
  136.                 /* en esta parte el programa tambien me arroja un error, explico, si ingreso en el CIN anterior un 1
  137.                    (codigo previamente ingresado en la funcion anhiadirArticulos() ) este for se lanza para el ELSE,
  138.                    diciendo que el codigo ingresado no es correcto, porque? si el codigo ingresado realmente si es correcto?*/
  139.                 if ( cod == codigo[j] )
  140.                 {
  141.                     cout << "CUANTOS ARTICULOS INGRESARAN    ";
  142.                     cin >> cantrecibida;
  143.                     cantidad[j] = cantidad[j] + cantrecibida;
  144.                     cout << "MUCHAS GRACIAS, TRANSACCION EXITOSA";
  145.                     cout << "EXISTEN " << cantidad[j] << " UNIDADES DEL ARTICULO" << endl << endl;
  146.                 }
  147.                 else
  148.                 {
  149.                     cout << "EL CODIGO INGRESADO NO ES CORRECTO" << endl;
  150.                     cout << "PRESIONE UNA TECLA PARA IR AL MENU ";
  151.                     cin.get();
  152.                     cin.get();
  153.                     system("cls");
  154.                     menu();
  155.                 }
  156.  
  157.             }
  158.         }
  159.         else if ( op == 2 )
  160.         {
  161.             cout<<"INGRESE CODIGO DEL ARTICULO "<<endl;
  162.             cin>>cod;
  163.  
  164.             for ( int j=0; j<art; j++ )
  165.             {
  166.                    /* en esta parte el programa tambien me arroja un error, el mismo de hace un momento*/
  167.                 if ( cod == codigo[j] )
  168.                 {
  169.                     cout << "ARTICULOS VENDIDOS     ";
  170.                     cin >> cantvendida;
  171.                     cantidad[j] = cantidad[j] - cantvendida;
  172.                     cout << "MUCHAS GRACIAS, TRANSACCION EXITOSA";
  173.                     cout << "EXISTEN " << cantidad[j] << " UNIDADES DEL ARTICULO" << endl << endl;
  174.                 }
  175.                 else
  176.                 {
  177.                     cout << "EL CODIGO INGRESADO NO ES CORRECTO" << endl;
  178.                     cout << "PRESIONE UNA TECLA PARA IR AL MENU ";
  179.                     cin.get();
  180.                     cin.get();
  181.                     system("cls");
  182.                     menu();
  183.                 }
  184.             }
  185.         }
  186.         else
  187.         {
  188.             cout << "DIGITO UN DATO INVALIDO, POR FAVOR" << endl;
  189.             cout << "PRESIONE UNA TECLA PARA CONTINUAR ";
  190.             cin.get();
  191.             cin.get();
  192.             int main();
  193.         }
  194.     }
  195.  
  196.     return art;
  197. }
  198.  
  199. int main()
  200. {
  201.     AnhiadirArticulos();
  202.     menu();
  203.  
  204.     return 0;
  205. }
  206.  

aca entonces les dejo el error que me lanza el compilador

Código: [Seleccionar]
||=== Build: Debug in 13 (compiler: GNU GCC Compiler) ===|
E:\C++\13\main.cpp||In function 'int menu()':|
E:\C++\13\main.cpp|26|warning: 'art' may be used uninitialized in this function [-Wmaybe-uninitialized]|
||=== Build finished: 0 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===|

2
C/C++ / Pasar Array de una funcion a otra
« en: Domingo 1 de Junio de 2014, 03:50 »
Saludos a todos, antes que nada soy nuevo en el foro y espero en la medida de lo posible poder ayudarles, de momento me gustaria que me ayudaran a salir de un problema que se me presenta con el siguiente codigo, explico en que consiste, su fin es llenar dos vectores codigo[], cantidad[] en una funcion AnhiadirArticulos() y luego si el usuario desea ver los articulos la funcion VerArticulos() debe encargarse de mostrar los dos arreglos contenidos en la funcion primero mencionada...

el problema esta en que no se como hacer que eso suceda, agradezco toda ayuda que me puedan facilitar...

Código: C++
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <iostream>
  4. #include <cstdlib>
  5.  
  6. using namespace std;
  7.  
  8. int AnhiadirArticulos();
  9. int Transacciones();
  10. int VerArticulos( int codigo[], int cantidad[], int art );
  11.  
  12. int menu()
  13. {
  14.     int opcion, codigo, cantidad, art;
  15.  
  16.     [.....]
  17.  
  18.     cin >> opcion;
  19.  
  20.      [.....]
  21.  
  22.     case 2:
  23.         VerArticulos( codigo[art], cantidad[art], art );
  24.         break;
  25.  
  26.     [.....]
  27. }
  28.  
  29. int AnhiadirArticulos()
  30. {
  31.     int art, tran, op, cod;
  32.     int cantrecibida, cantvendida;
  33.  
  34.     cout<<"CON CUANTOS ARTICULOS INICIA EL ALMACEN:  ";
  35.     cin>>art;
  36.  
  37.     int codigo[art];
  38.     int cantidad[art];
  39.  
  40.     for ( int i=0; i<=art; i++ )
  41.     {
  42.         system("cls");
  43.  
  44.         cout << endl << endl;
  45.         cout << "INGRESE EL ARTICULO " << i << endl;
  46.         cout << "CODIGO    ";
  47.         cin >> codigo[i];
  48.         cout << "CANTIDAD  ";
  49.         cin >> cantidad[i];
  50.     }
  51.  
  52.     VerArticulos( codigo, cantidad, art );
  53.  
  54.     menu();
  55.  
  56.     return art;
  57. }
  58.  
  59. int VerArticulos( int codigo[], int cantidad[] )
  60. {
  61.     int art;
  62.  
  63.      [.....]
  64.  
  65.     for ( int i=1; i<=art; i++ )
  66.     {
  67.         cout << codigo[i] << "\t\t" << cantidad[i];
  68.     }
  69.  
  70.     [.....]
  71.  
  72.     return art;
  73. }
  74.  
  75.     [.....]
  76.  
  77. int main()
  78. {
  79.     menu();
  80.  
  81.     return 0;
  82. }
  83.  

Páginas: [1]