Autor
|
Tema: Pasar Array de una funcion a otra (Leído 4,369 veces)
|
YDOM
Desconectado
Mensajes: 50
Cuídate del programador que lleva un atornillador
|
que tal Foro, les pido el favor que me colaboren con este problema... el problema me pida que llene un vector1[] en una funcion1() y luego en una funcion2() se muestren los valores del vector[1]... les dejo el codigo de lo que he trabajado... int AnhiadirArticulos() { int art, tran, op, cod; int cantrecibida, cantvendida;
system("cls");
cout << endl << endl; cout<<"CON CUANTOS ARTICULOS INICIA EL ALMACEN: "; cin>>art;
int codigo[art]; int cantidad[art];
for ( int i=1; i<=art; i++ ) { system("cls");
cout << endl << endl; cout << "INGRESE EL ARTICULO " << i << endl; cout << "CODIGO "; cin >> codigo[i]; cout << "CANTIDAD "; cin >> cantidad[i]; }
VerArticulos( codigo[art], cantidad[art] ); menu();
return 0; }
el contenido de este vector tengo que pasarlo a este otro... int VerArticulos( int codigo, int cantidad ) { int art; int codigo[art], articulo[art];
system("cls");
cout << endl << endl; cout << "CODIGO\t\tARTICULO" << endl << endl;
for ( int i=1; i<=art; i++ ) { cout << codigo[i] << "\t\t" << articulo[i]; }
cout << "PRESIONE UNA TECLA PARA IR AL MENU"; cin.get(); cin.get();
menu();
return 0; } y esto es parte de la cabecera del programa ...
int AnhiadirArticulos(); int Transacciones(); int VerArticulos( int codigo[], int cantidad[] );
int menu() { int opcion, codigo, cantidad; ..... cin >> opcion;
switch ( opcion ) { case 1: AnhiadirArticulos(); break; case 2: VerArticulos( int codigo, int cantidad ); break; case 3: Transacciones(); break; case 4: return 0; break; default: cout << "OPCION INVALIDA, INTENTE DE NUEVO"; menu(); }
return 0; }
|
|
« Última modificación: 31 Mayo 2014, 23:54 pm por YDOM »
|
En línea
|
Si le das a alguien un programa, lo frustarás un día. Si le enseñas a programar, lo frustarás toda la vida.
MS Windows 7 Ultimate 64-bit AMD Phenom II X4 955 3.2GHz 4,0GB RAM, NVIDIA GeForce 9400 GT
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
int VerArticulos( int codigo, int cantidad ) int VerArticulos( int codigo[], int cantidad[] );
Tienes esas 2 declaraciones en diferentes partes. Usa la segunda. EDITO: void func(int a[]){ } int main(){ int var[10]; func(var); }
Eso es un ejemplo. Espero que te sirva
|
|
« Última modificación: 1 Junio 2014, 00:18 am por ivancea96 »
|
En línea
|
|
|
|
YDOM
Desconectado
Mensajes: 50
Cuídate del programador que lleva un atornillador
|
pues me ha quedado asi... /// variables globales int AnhiadirArticulos(); int Transacciones(); int VerArticulos( int codigo[], int cantidad[] );
/// funcion que llama los articulos case 2: VerArticulos( codigo[art], cantidad[art] ); break;
aqui me lanza estos errores /// C:\Users\...s\Downloads\13 funciones.cpp||In function 'int menu()':| /// C:\Users\...\Downloads\13 funciones.cpp|30|error: invalid types 'int[int]' for array subscript| /// C:\Users\...\Downloads\13 funciones.cpp|30|error: invalid types 'int[int]' for array subscript| /// ||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| y estas son las funciones que hacen el trabajo int AnhiadirArticulos() { int art, tran, op, cod; int cantrecibida, cantvendida; cout<<"CON CUANTOS ARTICULOS INICIA EL ALMACEN: "; cin>>art; int codigo[art]; int cantidad[art]; for ( int i=1; i<=art; i++ ) { system("cls"); cout << endl << endl; cout << "INGRESE EL ARTICULO " << i << endl; cout << "CODIGO "; cin >> codigo[i]; cout << "CANTIDAD "; cin >> cantidad[i]; } VerArticulos( codigo, cantidad ); } int VerArticulos( int codigo[], int cantidad[] ) { int art; for ( int i=1; i<=art; i++ ) { cout << codigo[i] << "\t\t" << cantidad[i]; } }
|
|
|
En línea
|
Si le das a alguien un programa, lo frustarás un día. Si le enseñas a programar, lo frustarás toda la vida.
MS Windows 7 Ultimate 64-bit AMD Phenom II X4 955 3.2GHz 4,0GB RAM, NVIDIA GeForce 9400 GT
|
|
|
MessageBoxA
Desconectado
Mensajes: 229
ayudame a ayudarte
|
tienes que inicializar esta variable int art;
|
|
|
En línea
|
SI LA MATRIX FUERA PERFECTA.... ESTARÍA ESCRITA EN C++
|
|
|
kaiserr
Desconectado
Mensajes: 242
constancia y dedicacion
|
pues me ha quedado asi... for ( int i=1; i<=art; i++ ) { cout << codigo[i] << "\t\t" << cantidad[i]; } }
mmmm los arrays empiezan en el 0. y como dicen arriba mio, te falta declarar algunas variables.
|
|
|
En línea
|
|
|
|
YDOM
Desconectado
Mensajes: 50
Cuídate del programador que lleva un atornillador
|
tienes que inicializar esta variable int art;
aqui esta y el error continua, no si es que estoy declarando en el sitio incorrecto la variable, pero hay esta... using namespace std; [.....] int AnhiadirArticulos(); int Transacciones(); int VerArticulos( int codigo[], int cantidad[], int art ); int menu() { int opcion, codigo, cantidad, art; [.....] case 2: VerArticulos( codigo[art], cantidad[art], art ); break; case 3: Transacciones(); break; case 4: return 0; break; default: cout << "OPCION INVALIDA, INTENTE DE NUEVO"; menu(); } return 0; } int AnhiadirArticulos() { int art, tran, op, cod; int cantrecibida, cantvendida; system("cls"); cout << endl << endl; cout<<"CON CUANTOS ARTICULOS INICIA EL ALMACEN: "; cin>>art; int codigo[art]; int cantidad[art]; for ( int i=0; i<=art; i++ ) { system("cls"); cout << endl << endl; cout << "INGRESE EL ARTICULO " << i << endl; cout << "CODIGO "; cin >> codigo[i]; cout << "CANTIDAD "; cin >> cantidad[i]; } VerArticulos( codigo, cantidad, art ); menu(); return art; } int VerArticulos( int codigo[], int cantidad[], int art ) { int art; [.....] for ( int i=0; i<=art; i++ ) { cout << codigo[i] << "\t\t" << cantidad[i]; } [.....] menu(); return art; } [.....] /// Erro que manda el programa... /// C:\Users\Foto Artes\Downloads\13 funciones.cpp||In function 'int menu()':| /// C:\Users\Foto Artes\Downloads\13 funciones.cpp|30|error: invalid types 'int[int]' for array subscript| /// C:\Users\Foto Artes\Downloads\13 funciones.cpp|30|error: invalid types 'int[int]' for array subscript| /// ||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
|
|
|
En línea
|
Si le das a alguien un programa, lo frustarás un día. Si le enseñas a programar, lo frustarás toda la vida.
MS Windows 7 Ultimate 64-bit AMD Phenom II X4 955 3.2GHz 4,0GB RAM, NVIDIA GeForce 9400 GT
|
|
|
MessageBoxA
Desconectado
Mensajes: 229
ayudame a ayudarte
|
int menu() { int opcion, codigo, cantidad, art; //estas diciendo que "codigo" y "cantidad" son variables enteras!!! [.....] case 2: VerArticulos( codigo[art], cantidad[art], art ); // y aqui estas diciendo que son vectores. break; case 3: Transacciones(); break; case 4: return 0; break; default: cout << "OPCION INVALIDA, INTENTE DE NUEVO"; menu(); } return 0; }
conclusion: ¿o son vectores, o son variables enteras?
|
|
|
En línea
|
SI LA MATRIX FUERA PERFECTA.... ESTARÍA ESCRITA EN C++
|
|
|
YDOM
Desconectado
Mensajes: 50
Cuídate del programador que lleva un atornillador
|
que tal chicos, miren le he hecho otras modificaciones al programa pero aun me sigue arrojando problemas, debo decirles que es la primera vez que hago esto de pasar arrays entre funciones. #include <stdio.h> #include <iostream> #include <cstdlib> using namespace std; int AnhiadirArticulos(); int Transacciones( int ); int VerArticulos( const int art, int codigo[], int cantidad[] ); int menu() { int opcion, art, codigo[0], cantidad[0]; system("cls"); cout << endl << endl; cout << "MARQUE << 1 >> PARA VER NUESTROS ARTICULOS" << endl; cout << "MARQUE << 2 >> PARA HACER TRANSACCIONES" << endl; cout << "MARQUE << 3 >> PARA SALIR DEL PROGRAMA" << endl; cout << "MARQUE UNA OPCION PARA CONTINUAR "; cin >> opcion; system("cls"); switch ( opcion ) { case 1: VerArticulos( art, codigo, &cantidad[0] ); break; case 2: Transacciones( art ); break; case 3: return 0; break; default: cout << "OPCION INVALIDA, INTENTE DE NUEVO"; menu(); } return 0; } int AnhiadirArticulos() { int art, tran, op, cod; art = tran = op = cod = 0; system("cls"); cout << endl << endl; cout<<"CON CUANTOS ARTICULOS INICIA EL ALMACEN: "; cin>>art; int codigo[art]; int cantidad[art]; for ( int i=0; i<art; i++ ) { system("cls"); cout << endl << endl; cout << "INGRESE EL ARTICULO " << i+1 << endl; cout << "CODIGO "; cin >> codigo[i]; cout << "CANTIDAD "; cin >> cantidad[i]; } VerArticulos( art, codigo, &cantidad[0] ); /* aqui cuando llama a la funcion VerArticulos() me muestra la lista de los articulos sin problemas, pero cuando me sale el menu principal y le digo que me muestre la lista de articulos "funcion de mas abajo" me imprime una secuencia de numeros sin sentido alguno y al final me arroja unos ceros "0" y se cierra el programa...*/ return 0; } int VerArticulos( int art, int codigo[], int cantidad[] ) { system("cls"); cout << endl << endl; cout << "CODIGO\t\tCANTIDAD" << endl << endl; for ( int i=0; i<art; i++ ) { cout << codigo[i] << "\t\t" << cantidad[i] << endl; } cout << endl << endl; cout << "PRESIONE UNA TECLA PARA IR AL MENU"; cin.get(); cin.get(); menu(); return 0; } int Transacciones( int art ) { int tran, op, cod; int cantrecibida, cantvendida; int codigo[0], cantidad[0]; cout << endl; cout<<"TRANSSACCIONES POR DIA "; cin>>tran; for( int l=0; l<tran; l++) { system("cls"); cout<<" MARQUE << 1 >> SI ES PROVEERDOR"<<endl; cout<<" MARQUE << 2 >> SI ES UN CLIENTE"<<endl; cout<<" MARQUE UNA OPCION PARA "<<endl; cin>>op; if( op == 1 ) { cout<<"INGRESE CODIGO DEL ARTICULO "<<endl; cin>>cod; for ( int j=0; j<art; j++ ) { if ( cod == codigo[j] ) /* en esta parte del codigo me arroja siempre un error diciendome que el articulo no existe osea toma el "else" de este "if" lo mismo pasa con la condicional de mas abajo*/ { cout << "CUANTOS ARTICULOS INGRESARAN "; cin >> cantrecibida; cantidad[j] = cantidad[j] + cantrecibida; cout << "MUCHAS GRACIAS, TRANSACCION EXITOSA"; cout << "EXISTEN " << cantidad[j] << " UNIDADES DEL ARTICULO" << endl << endl; } else { cout << "EL CODIGO INGRESADO NO ES CORRECTO" << endl; cout << "PRESIONE UNA TECLA PARA IR AL MENU "; cin.get(); cin.get(); system("cls"); menu(); } } } else if ( op == 2 ) { cout<<"INGRESE CODIGO DEL ARTICULO "<<endl; cin>>cod; for ( int j=0; j<art; j++ ) { if ( cod == codigo[j] ) { cout << "ARTICULOS VENDIDOS "; cin >> cantvendida; cantidad[j] = cantidad[j] - cantvendida; cout << "MUCHAS GRACIAS, TRANSACCION EXITOSA"; cout << "EXISTEN " << cantidad[j] << " UNIDADES DEL ARTICULO" << endl << endl; } else { cout << "EL CODIGO INGRESADO NO ES CORRECTO" << endl; cout << "PRESIONE UNA TECLA PARA IR AL MENU "; cin.get(); cin.get(); system("cls"); menu(); } } } else { cout << "DIGITO UN DATO INVALIDO, POR FAVOR" << endl; cout << "PRESIONE UNA TECLA PARA CONTINUAR "; cin.get(); cin.get(); int main(); } } return art; } int main() { AnhiadirArticulos(); menu(); return 0; }
||=== Build: Debug in 13 (compiler: GNU GCC Compiler) ===| E:\C++\13\main.cpp||In function 'int menu()':| E:\C++\13\main.cpp|27|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)) ===|
|
|
|
En línea
|
Si le das a alguien un programa, lo frustarás un día. Si le enseñas a programar, lo frustarás toda la vida.
MS Windows 7 Ultimate 64-bit AMD Phenom II X4 955 3.2GHz 4,0GB RAM, NVIDIA GeForce 9400 GT
|
|
|
MessageBoxA
Desconectado
Mensajes: 229
ayudame a ayudarte
|
sucede q hay valores que no pasas por referencia fijate de las modifcaciones que le hice (solo para que funcionara la funcion de mostrar el inventario), para la funcion de transacciones te tocara hacer lo mismo #include <stdio.h> #include <iostream> #include <cstdlib> using namespace std; int art=0, *codigo, *cantidad; int menu(int art, int &codigo, int &cantidad); int AnhiadirArticulos(); int Transacciones(int art); int VerArticulos(int art, int codigo[], int cantidad[] ); int menu(int art, int &codigo, int &cantidad) { int opcion; system("cls"); cout << endl << endl; cout << "MARQUE << 1 >> PARA VER NUESTROS ARTICULOS" << endl; cout << "MARQUE << 2 >> PARA HACER TRANSACCIONES" << endl; cout << "MARQUE << 3 >> PARA SALIR DEL PROGRAMA" << endl; cout << "MARQUE UNA OPCION PARA CONTINUAR "; cin >> opcion; system("cls"); switch ( opcion ) { case 1: VerArticulos( art, &codigo, &cantidad); break; case 2: Transacciones( art ); break; case 3: return 0; break; default: cout << "OPCION INVALIDA, INTENTE DE NUEVO"; //menu(art, &codigo, &cantidad); } return 0; } int AnhiadirArticulos() { int tran=0, op=0, cod=0; system("cls"); cout << endl << endl; cout<<"CON CUANTOS ARTICULOS INICIA EL ALMACEN: "; cin>>art; int codigo[art]; int cantidad[art]; for ( int i=0; i<art; i++ ) { system("cls"); cout << endl << endl; cout << "INGRESE EL ARTICULO " << i+1 << endl; cout << "CODIGO "; cin >> codigo[i]; cout << "CANTIDAD "; cin >> cantidad[i]; } VerArticulos( art, codigo, cantidad); /* aqui cuando llama a la funcion VerArticulos() me muestra la lista de los articulos sin problemas, pero cuando me sale el menu principal y le digo que me muestre la lista de articulos "funcion de mas abajo" me imprime una secuencia de numeros sin sentido alguno y al final me arroja unos ceros "0" y se cierra el programa...*/ return 0; } int VerArticulos(int art, int codigo[], int cantidad[]) { system("cls"); cout << endl << endl; cout << "CODIGO\t\tCANTIDAD" << endl << endl; for ( int i=0; i<art; i++ ) { cout << codigo[i] << "\t\t" << cantidad[i] << endl; } cout << endl << endl; cout << "PRESIONE UNA TECLA PARA IR AL MENU"; cin.get(); cin.get(); menu(art,*codigo,*cantidad); return 0; } int Transacciones(int art ) { int tran, op, cod; int cantrecibida, cantvendida; int codigo[0], cantidad[0]; cout << endl; cout<<"TRANSSACCIONES POR DIA "; cin>>tran; for( int l=0; l<tran; l++) { system("cls"); cout<<" MARQUE << 1 >> SI ES PROVEERDOR"<<endl; cout<<" MARQUE << 2 >> SI ES UN CLIENTE"<<endl; cout<<" MARQUE UNA OPCION PARA "<<endl; cin>>op; if( op == 1 ) { cout<<"INGRESE CODIGO DEL ARTICULO "<<endl; cin>>cod; for ( int j=0; j<art; j++ ) { if ( cod == codigo[j] ) /* en esta parte del codigo me arroja siempre un error diciendome que el articulo no existe osea toma el "else" de este "if" lo mismo pasa con la condicional de mas abajo*/ { cout << "CUANTOS ARTICULOS INGRESARAN "; cin >> cantrecibida; cantidad[j] = cantidad[j] + cantrecibida; cout << "MUCHAS GRACIAS, TRANSACCION EXITOSA"; cout << "EXISTEN " << cantidad[j] << " UNIDADES DEL ARTICULO" << endl << endl; } else { cout << "EL CODIGO INGRESADO NO ES CORRECTO" << endl; cout << "PRESIONE UNA TECLA PARA IR AL MENU "; cin.get(); cin.get(); system("cls"); menu(art,*codigo,*cantidad); } } } else if ( op == 2 ) { cout<<"INGRESE CODIGO DEL ARTICULO "<<endl; cin>>cod; for ( int j=0; j<art; j++ ) { if ( cod == codigo[j] ) { cout << "ARTICULOS VENDIDOS "; cin >> cantvendida; cantidad[j] = cantidad[j] - cantvendida; cout << "MUCHAS GRACIAS, TRANSACCION EXITOSA"; cout << "EXISTEN " << cantidad[j] << " UNIDADES DEL ARTICULO" << endl << endl; } else { cout << "EL CODIGO INGRESADO NO ES CORRECTO" << endl; cout << "PRESIONE UNA TECLA PARA IR AL MENU "; cin.get(); cin.get(); system("cls"); menu(art,*codigo,*cantidad); } } } else { cout << "DIGITO UN DATO INVALIDO, POR FAVOR" << endl; cout << "PRESIONE UNA TECLA PARA CONTINUAR "; cin.get(); cin.get(); int main(); } } return art; } int main() { AnhiadirArticulos(); menu(art,*codigo,*cantidad); return 0; }
|
|
|
En línea
|
SI LA MATRIX FUERA PERFECTA.... ESTARÍA ESCRITA EN C++
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Pasar un array por una función
PHP
|
dimitrix
|
8
|
4,459
|
19 Junio 2011, 22:47 pm
por cassiani
|
|
|
Pasar a función array de punteros.-
Programación C/C++
|
NOB2014
|
5
|
3,749
|
22 Enero 2014, 15:44 pm
por NOB2014
|
|
|
Error al pasar un vector de una funcion a otra
Programación C/C++
|
loadenro
|
5
|
3,024
|
30 Mayo 2014, 08:20 am
por eferion
|
|
|
como pasar variable de una a otra desde una funcion
« 1 2 »
Programación C/C++
|
geshiro
|
16
|
8,087
|
22 Mayo 2016, 03:51 am
por geshiro
|
|
|
Pasar un array de una pagina php a otra Js
Desarrollo Web
|
protus08
|
2
|
3,166
|
27 Julio 2020, 02:25 am
por protus08
|
|