elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Void, float y pasos por referencia
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Void, float y pasos por referencia  (Leído 4,493 veces)
fedegar91

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Void, float y pasos por referencia
« en: 6 Mayo 2011, 10:55 am »

hola amigos, no recuerdo mi cuenta aqui y me tuve que hacer otra ¬¬.
Al loro, nada, preguntarles acerca de los pasos por referencia que necesito para la programacion de una calculadora. Les paso una parte del codigo, ya que es extenso y lo unico que resta son los printf y los scan para guardar las variables a,b,c,d...

el subcodigo o void de la division es el que me genera problemas, lo unico que hago es realizar las ecuaciones a mano y luego poner todo en funcion de las variables, para calcular los valores de x e y. Pero no hay forma de que me funcione, segun mi profe es que necesito hacer pasos por referencias, algo que no tengo ni la mas p**a idea XD.

Creo que no me falta mucho para completar mi codigo o la duda es algo estupida, estuve leyendo posts pero no he encontrado algo "similar" a este problema.

Aqui lo dejo:

Código:
[color=red]float division(int a, int b, int c, int d, float y, float x)
  {
       y=((b/(c*c)-(d*a)/(c*c))/(1+(d*d)/c));
       x=((a-d*y)/c);
       printf("\nEl resultado de la division z1/z2 = (%d, %d)\n", x, y);
       
  }[/color]
[hr]

printf("\nEleccion: ");
  scanf("%d", &z);
 
  switch (z)
  {
         case 1:
              suma(a,b,c,d);
              break;
         case 2:
              resta(a,b,c,d);
              break;
         case 3:
              producto(a,b,c,d);
              break;
         [color=red]case 4:
              division(a,b,c,d,&y,&x);
              break;[/color]
         case 5:
              escala(a,b,k);
              break;
         case 6:
              modulo(a,b,&p);
              break;
  }



espero haber sido claro!

suerte y gracias de antemano!!


En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Void, float y pasos por referencia
« Respuesta #1 en: 6 Mayo 2011, 19:35 pm »

Si quieres modificarlos dentro de la función, necesitas pasar punteros para poder pasarlos por referencia, a menos que estes en C++, que la cosa cambia. Por cierto, para imprimir floats, se usa %f

Código
  1. float division(int a, int b, int c, int d, float* y, float* x)
  2.  {
  3.       *y=((b/(c*c)-(d*a)/(c*c))/(1+(d*d)/c));
  4.       *x=((a-d*y)/c);
  5.       printf("\nEl resultado de la division z1/z2 = (%f, %f)\n", x, y);
  6.  
  7.  }
  8.  
  9. //llamada a división:
  10. división(a,b,c,&y,&x); //de esta forma, pasas las direcciones de x,y. Otra forma sería pasar propiamente punteros a los floats.
  11.  


En c++, en vez de usar punteros, para pasar algo por referencia, simplemente pones & en el parámetro,cuando defines la función.

float division(int a, int b, int c, int d, float & y, float & x)

sería el caso. uso:

división(a,b,c,y,x)

Pero en este caso y,x si se modifican dentro de la función.


En línea

fedegar91

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Void, float y pasos por referencia
« Respuesta #2 en: 7 Mayo 2011, 10:04 am »

thanksSsSsSss
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
(void *) en funciones
Programación C/C++
Shon 4 5,372 Último mensaje 25 Enero 2011, 16:06 pm
por Littlehorse
Recursividad con funciones void, ayuda
Java
LiLou 1 3,997 Último mensaje 3 Abril 2011, 10:51 am
por LiLou
dev-c++ ----> ¿void?
Programación C/C++
lalocr 7 19,019 Último mensaje 21 Abril 2011, 11:05 am
por <<<-Basura->>>
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines