Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Retorno de parametreos en C++

Estas en el tema de Retorno de parametreos en C++ en el foro de C/C++ en Foros del Web. Hola amigos hoy haciendo un programa de c++ donde manejo el paso de parametros eh tenido un problema que si bien no es complicado no ...
  #1 (permalink)  
Antiguo 24/03/2012, 00:56
Avatar de UNDR4  
Fecha de Ingreso: marzo-2012
Ubicación: Death Valley
Mensajes: 46
Antigüedad: 7 años, 8 meses
Puntos: 2
Pregunta Retorno de parametreos en C++

Hola amigos hoy haciendo un programa de c++ donde manejo el paso de parametros eh tenido un problema que si bien no es complicado no eh terminado de entender, que es el retorno de parametros, la estructura del programa es la siguiente:

int suma(int t,int t1)
{
int s;
cout<<"*****Suma*****"<<endl;
cout<<"cantidad?"<<endl;
cin>>s;
t1=t1+s;
t=t+s;
cout<<"Valor sumas totales"<<t1<<endl;
cout<<"Valor Actual"<<t<<endl;
system("pause");
return(t,t1);
}
int resta(int t,int t2)
{

int r=0;
cout<<"*****Resta*****"<<endl;
cout<<"Cantidad? "<<endl;
cin>>r;
t2=t2+r;
t=t-r;
cout<<"Valor restas totales"<<t2<<endl;
cout<<"Valor Actual"<<t<<endl;
system("pause");
return(t,t2);
}
int ver(int i,int t,int t1, int t2)
{
if((t1==0)&&(t2==0))// si t1 y t2 son cero el valor no ah sido modificado aun
{
cout<<"Valor= "<<t<<endl;
}
else
{
// Mostra valor inicial,valor actual, valor de todas la sumas realizadas,valor de todas las restas realizadas
}
system("pause");
}
int menu()
{
int t=0,s=0,r=0,t1=0,n=0,i=0;
cout<<"Dame el valor incial: "<<endl;
cin>>t;
i=t;//Guarda el valor inicial
for(;;)
{
system("cls");
cout<<"*******Menu*******"<<endl;
cout<<"1.-Suma."<<endl;
cout<<"2.-Resta."<<endl;
cout<<"3.-Valor actual."<<endl;
cout<<"4.-Salir."<<endl;
cin>>n;
if(num==1){suma(t,t1);}
else if(num==2){resta(t,t2);}
else if(num==3){ver(i,t,t1,t2);}
else if(num==4){ break; }
}
system("pause");
return 0;
}

lo que intento conseguir es que al ingresar x valor, me permita sumarle y restarle valores, guardando el valor inicial, el valor total de las sumas realizadas, el valor total de las restas realizadas y el valor final, pero no logro retornar el valor final y el valor total de la suma y resta respectiva.
__________________
†UNDR4†
Un programador es un mamífero nocturno de ojos rojos capaz de conversar con objetos inanimados.
  #2 (permalink)  
Antiguo 24/03/2012, 10:09
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 8 años, 7 meses
Puntos: 344
Respuesta: Retorno de parametreos en C++

No puedes devolver más de un valor en una función de C++, eso quiere decir que tu sintaxis es incorrecta.

Si quieres devolver varios valores solo te queda pasar los parámetros por referencia

Tienes dos opciones, utilizar punteros o utilizar referencias, que es una opción nueva en C++ (respecto de C).

Con referencias:

Código C++:
Ver original
  1. void suma(int& t,int& t1)
  2. {
  3. int s;
  4. cout<<"*****Suma*****"<<endl;
  5. cout<<"cantidad?"<<endl;
  6. cin>>s;
  7. t1=t1+s;
  8. t=t+s;
  9. }

Con punteros:

Código C++:
Ver original
  1. void suma(int* t,int* t1)
  2. {
  3. int s;
  4. cout<<"*****Suma*****"<<endl;
  5. cout<<"cantidad?"<<endl;
  6. cin>>s;
  7. *t1=*t1+s;
  8. *t=*t+s;
  9. }

En estas páginas explican sobre las referencias:

http://arco.esi.uclm.es/~david.villa...1/ch11s02.html

http://unoyunodiez.com/2011/03/01/el...c-referencias/

Y sobre punteros:

http://c.conclase.net/curso/?cap=012

Saludos
  #3 (permalink)  
Antiguo 24/03/2012, 10:41
Avatar de UNDR4  
Fecha de Ingreso: marzo-2012
Ubicación: Death Valley
Mensajes: 46
Antigüedad: 7 años, 8 meses
Puntos: 2
Respuesta: Retorno de parametreos en C++

Mucha gracias por la aclaración, por ahora optare por usar punteros pero revisare las referencias, saludos

supongo que serial algo así para las funciones suma y resta

Código:
void suma(int* t,int* t1)
{
 int s;
 cout<<"*****Suma*****"<<endl;
 cout<<"cantidad?"<<endl;
 cin>>s;
 *t1=*t1+s;
 *t=*t+s;
}
void main()
{
 int total=0;
 int *t=0,*t1=0,*t2=0;
 t=&total;
 suma(t,t1);
 //...
}
__________________
†UNDR4†
Un programador es un mamífero nocturno de ojos rojos capaz de conversar con objetos inanimados.

Última edición por UNDR4; 24/03/2012 a las 11:46 Razón: informacion extra

Etiquetas: c++, parametros, paso, retorno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:35.