Autor
		 | 
		
			Tema: Error en la definición de una función  (Leído 7,228 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,719
						 | 
						
							 
							
								 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
						 | 
						
							16,419
						 | 
						
							 
							
								 9 Marzo 2012, 17:08 pm 
								por Sancho.Mazorka
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							[C++] Error en funcion..
							 
							Programación C/C++
						 | 
						
							Wazzp
						 | 
						
							2
						 | 
						
							3,131
						 | 
						
							 
							
								28 Enero 2011, 19:47 pm 
								por Wazzp
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							Error con funcion if, me da error de sintaxis
							 
							Scripting
						 | 
						
							Danyel_Casvill
						 | 
						
							4
						 | 
						
							4,178
						 | 
						
							 
							
								30 Abril 2011, 16:32 pm 
								por Danyel_Casvill
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							Error de definición múltiple
							 
							Programación C/C++
						 | 
						
							cNoob
						 | 
						
							1
						 | 
						
							2,335
						 | 
						
							 
							
								21 Enero 2018, 00:19 am 
								por user-marcos
							
						 | 
					 
				 
			    |