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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error en la definición de una función
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Error en la definición de una función  (Leído 6,326 veces)
iramonf

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Error en la definición de una función
« en: 17 Abril 2016, 18:40 pm »

  Buenas

 Estoy trabajando con CodeBlocks y gcc.

Defino una función de 4 variables que no devuelve nada. Tres de las variables son complejas y he utilizado el código:

#include <complex.h>

void funcion(complex <double>, complex <double>, complex <double>, int);

Pero al compilar me da el error:

variable or field  funcion declared void

y

"complex" was not declared in this scope

 No tengo ni idea de qué es lo que está ocurriendo pero he hecho pruebas trabajando con complejos y funcionaba...

 ¿Me puedes ayudar?







En línea

Gunhack

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: Error en la definición de una función
« Respuesta #1 en: 17 Abril 2016, 21:37 pm »

CREO estas colocando mal la librería, no es "<complex.h>" solamente es "<complex>"  ;D

http://www.cplusplus.com/reference/complex/


En línea

iramonf

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Error en la definición de una función
« Respuesta #2 en: 18 Abril 2016, 10:48 am »

Gracias por tu respuesta a la que, debo reconocer, no di crédito al principio.

Pero sí tenías razón y la prueba se encuentra en:

https://es.wikipedia.org/wiki/Complex.h

Con complex tengo un tipo de errores y con complex.h otro. ¡Un rollo!

Lo que creo que voy a hacer es crear una estructura y así no tendré este tipo de problemas, serán otros....


Repito, ¡gracias!
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Error en la definición de una función
« Respuesta #3 en: 18 Abril 2016, 14:44 pm »

Si utilizas C++, y veo que así es, utiliza <complex>.

Si tienes errores, revisa una cosa: la clase "complex" es del namespace "std". Así que o pones una directiva using, por ejemplo "using namespace std;", o std::complex. No sé si lo estás poniendo, pero solo adelanto por si acaso.

Luego, si tienes más errores, leelos y trata de corregirlos. Sinó, pon los errores y el código implicado.
En línea

iramonf

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Error en la definición de una función
« Respuesta #4 en: 19 Abril 2016, 10:36 am »

 Gracias a Gunhack y a ivancea96


  He optado por definir una estructura porque tampoco necesito realizar muchas operaciones con números complejos. Básicamente el sacar la parte real, la imaginaria y calcular su módulo.

 Mis conocimientos de C están un tanto oxidados y estoy intentando recuperar unos programillas que hice hace años con Borland sobre fractales y ayer ya empezó la cosa a visualizarse.



En línea

DanFire

Desconectado Desconectado

Mensajes: 24


Si quieres conocerme buscame...


Ver Perfil
Re: Error en la definición de una función
« Respuesta #5 en: 19 Abril 2016, 11:26 am »

 He optado por definir una estructura
No seria mas interesante usar una clase?
por cierto, si lo haces asi no da errores...

Código
  1. #include <complex.h>
  2.  
  3. void funcion(std::complex <double>, std::complex <double>, std::complex <double>, int);
  4.  
  5. int main(){
  6.  
  7.  
  8. return 0;
  9. }
  10.  
En línea

iramonf

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Error en la definición de una función
« Respuesta #6 en: 21 Abril 2016, 00:13 am »

Si utilizas C++, y veo que así es, utiliza <complex>.

Si tienes errores, revisa una cosa: ...

  Te he hecho caso y parece que se va aclarando el panorama pero ahora tengo dos dudas muy elementales pero que creo que pueden ser las últimas:

  ¿Cómo asigno un valor a una variable compleja?

  ¿Cómo extraigo la parte real y la parte imaginaria de una variable compleja?.

  Con Borland lo hacía de una manera que ahora no me funciona y estoy haciendo pruebas y no doy con la solución.

  Gracias



En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Error en la definición de una función
« Respuesta #7 en: 21 Abril 2016, 00:30 am »

Pásate por la página que te ha dado Gunhack. En ella te explican como usar esa clase.
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: Error en la definición de una función
« Respuesta #8 en: 21 Abril 2016, 01:14 am »

Veo estas mezclando bastante:

Citar
#include <complex.h>

void funcion(complex <double>, complex <double>, complex <double>, int);

Dices que usas GCC asi que te muestro un ejemplo en C pero tambien por si quieres usar C++ el mismo ejemplo traducido:

Código
  1. #include <stdio.h>    
  2. #include <complex.h>  
  3.  
  4. int main(void)
  5. {
  6.    double complex z1 = 1.0 + 3.0 * I;
  7.    double complex z2 = 1.0 - 4.0 * I;
  8.  
  9.    printf("Z1 = %.2f + %.2fi\nZ2 = %.2f %+.2fi\n\n",
  10.           creal(z1),
  11.           cimag(z1),
  12.           creal(z2),
  13.           cimag(z2));
  14.  
  15.    double complex sum = z1 + z2;
  16.    printf("Z1 + Z2 = %.2f %+.2fi\n", creal(sum), cimag(sum));
  17. }
  18.  
  19.  

Código
  1. #include <stdio.h>    
  2. #include <complex>    
  3. using namespace std;
  4.  
  5. int main(void)
  6. {
  7. // definiciones
  8. typedef complex<double> cpx;
  9. cpx i = cpx (0.0, 1.0); // defino la parte imaginaria
  10.  
  11. cpx z1,z2,z3,sum;
  12.  
  13.    z1 = 1.0 + 3.0 * i;
  14.    z2 = 1.0 - 4.0 * i;
  15.  
  16.    printf("Z1 = %.2f + %.2fi\nZ2 = %.2f %+.2fi\n\n",
  17.           real(z1),
  18.           imag(z1),
  19.           real(z2),
  20.           imag(z2));
  21.  
  22.    sum = z1 + z2;
  23.    printf("Z1 + Z2 = %.2f %+.2fi\n", real(sum), imag(sum));
  24. }
  25.  

Hay unas cuantas diferencias como podras ver y la version en C++ no te compilará en C (con gcc) ni viceversa
« Última modificación: 21 Abril 2016, 01:16 am por boctulus » En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
iramonf

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Error en la definición de una función
« Respuesta #9 en: 21 Abril 2016, 18:07 pm »

 Gracias, muy amable.

 En realidad mi única pregunta tendría que ser si me podéis recomendar un libro o un manual para resolver dudas sin necesidad de ser pesado.

 Si programo es por afición pues me lo paso muy bien machacando las neuronas.

Gracias 
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Que error hay en esta funcion php?
PHP
Alex_bro 4 2,198 Último mensaje 3 Septiembre 2007, 15:39 pm
por Alex_bro
extraño error en vista de una funcion sencilla: Runtime error '75': Path/File
Programación Visual Basic
drakolive 9 15,623 Último mensaje 9 Marzo 2012, 17:08 pm
por Sancho.Mazorka
[C++] Error en funcion..
Programación C/C++
Wazzp 2 2,732 Último mensaje 28 Enero 2011, 19:47 pm
por Wazzp
Error con funcion if, me da error de sintaxis
Scripting
Danyel_Casvill 4 3,703 Último mensaje 30 Abril 2011, 16:32 pm
por Danyel_Casvill
Error de definición múltiple
Programación C/C++
cNoob 1 2,016 Último mensaje 21 Enero 2018, 00:19 am
por user-marcos
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines