Autor
|
Tema: Error en la definición de una función (Leído 6,326 veces)
|
iramonf
Desconectado
Mensajes: 10
|
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
|
|
|
|
|
iramonf
Desconectado
Mensajes: 10
|
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.hCon 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
Mensajes: 3.412
ASMático
|
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
Mensajes: 10
|
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
Mensajes: 24
Si quieres conocerme buscame...
|
He optado por definir una estructura
No seria mas interesante usar una clase? por cierto, si lo haces asi no da errores... #include <complex.h> void funcion(std::complex <double>, std::complex <double>, std::complex <double>, int); int main(){ return 0; }
|
|
|
En línea
|
|
|
|
iramonf
Desconectado
Mensajes: 10
|
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
Mensajes: 1.603
|
Pásate por la página que te ha dado Gunhack. En ella te explican como usar esa clase.
|
|
|
En línea
|
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
Veo estas mezclando bastante: #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: #include <stdio.h> #include <complex.h> int main(void) { double complex z1 = 1.0 + 3.0 * I; double complex z2 = 1.0 - 4.0 * I; printf("Z1 = %.2f + %.2fi\nZ2 = %.2f %+.2fi\n\n", double complex sum = z1 + z2; }
#include <stdio.h> #include <complex> using namespace std; int main(void) { // definiciones typedef complex<double> cpx; cpx i = cpx (0.0, 1.0); // defino la parte imaginaria cpx z1,z2,z3,sum; z1 = 1.0 + 3.0 * i; z2 = 1.0 - 4.0 * i; printf("Z1 = %.2f + %.2fi\nZ2 = %.2f %+.2fi\n\n", real(z1), imag(z1), real(z2), imag(z2)); sum = z1 + z2; printf("Z1 + Z2 = %.2f %+.2fi\n", real(sum), imag(sum)); }
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
Mensajes: 10
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Que error hay en esta funcion php?
PHP
|
Alex_bro
|
4
|
2,198
|
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
|
9 Marzo 2012, 17:08 pm
por Sancho.Mazorka
|
|
|
[C++] Error en funcion..
Programación C/C++
|
Wazzp
|
2
|
2,732
|
28 Enero 2011, 19:47 pm
por Wazzp
|
|
|
Error con funcion if, me da error de sintaxis
Scripting
|
Danyel_Casvill
|
4
|
3,703
|
30 Abril 2011, 16:32 pm
por Danyel_Casvill
|
|
|
Error de definición múltiple
Programación C/C++
|
cNoob
|
1
|
2,016
|
21 Enero 2018, 00:19 am
por user-marcos
|
|