Autor
|
Tema: Ayuda en funciones en estructuras (Leído 2,117 veces)
|
Mozzard
Desconectado
Mensajes: 31
cout << "Text here" << endl;
|
Bueno pues yo programaba lo básico en c, y decidí pasarme a c++,pues me compré un libro que parecía ser el ideal. Ahora este en un ejercicio supone que yo ya se hacer funciones en estructuras, pero por alguna razón, las hago como si fueran las normales y no compila el visual studio: #include "pch.h" #include <iostream> #include <math.h> using namespace std;
struct complejo { float real, imaginario; }num1, num2; int main() { complejo sumar(complejo a,complejo b) { complejo suma; suma.real= a.real += b.real; suma.imaginario=a.imaginario += b.imaginario; return suma; } } He buscado bastante en google, pero tampoco me deja las cosas claras.
|
|
|
En línea
|
Programalo... sin miedo...
|
|
|
K-YreX
|
Las funciones se declaran fuera del main y se usan dentro de este struct Complejo{ double real; double imaginario; }; Complejo sumar(Complejo, Complejo); int main(){ Complejo num1, num2; // mejor declararlos locales, no globales num1.real = 2; num1.imaginario = 1; num2.real = 3; num2.imaginario = 2; Complejo suma = sumar(num1, num2); } Complejo sumar(Complejo a, Complejo b){ Complejo suma; suma.real = a.real + b.real; suma.imaginario = a.imaginario + b.imaginario; return suma; }
Las sumas de tu función sobra el = de cada +=. Eso se usa para otra cosa. Suerte
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
Cero++
|
Bueno pues yo programaba lo básico en c, y decidí pasarme a c++,pues me compré un libro que parecía ser el ideal. Ahora este en un ejercicio supone que yo ya se hacer funciones en estructuras, pero por alguna razón, las hago como si fueran las normales y no compila el visual studio: #include "pch.h" #include <iostream> #include <math.h> using namespace std;
struct complejo { float real, imaginario; }num1, num2; int main() { complejo sumar(complejo a,complejo b) { complejo suma; suma.real= a.real += b.real; suma.imaginario=a.imaginario += b.imaginario; return suma; } } He buscado bastante en google, pero tampoco me deja las cosas claras. A ver, si no mal entiendo, por lo que veo (corrígeme si me equivoco) has programado la función dentro del main verdad? Las funciones siempre se programan por fuera del main, de este modo: #include <iostream> #include <math.h> using namespace std; struct complejo { float real, imaginario; }num1, num2; complejo sumar(complejo a,complejo b) { complejo suma; suma.real= a.real += b.real; suma.imaginario=a.imaginario += b.imaginario; return suma; } int main(int argc, char *argv[]) { return 0; }
O podes hacer prototipo antes del main y luego seguir programandola luego del main, así: #include <iostream> #include <math.h> using namespace std; struct complejo { float real, imaginario; }num1, num2; complejo sumar(complejo a,complejo b); int main(int argc, char *argv[]) { return 0; } complejo sumar(complejo a,complejo b) { complejo suma; suma.real= a.real += b.real; suma.imaginario=a.imaginario += b.imaginario; return suma; }
Así pues, ya no deberías tener ningún problema de sintaxis.
|
|
|
En línea
|
Ser diligente es lo ÚNICO que importa para lograr el éxito[c/ode]
|
|
|
Cero++
|
Las funciones se declaran fuera del main y se usan dentro de este struct Complejo{ double real; double imaginario; }; Complejo sumar(Complejo, Complejo); int main(){ Complejo num1, num2; // mejor declararlos locales, no globales num1.real = 2; num1.imaginario = 1; num2.real = 3; num2.imaginario = 2; Complejo suma = sumar(num1, num2); } Complejo sumar(Complejo a, Complejo b){ Complejo suma; suma.real = a.real + b.real; suma.imaginario = a.imaginario + b.imaginario; return suma; }
Las sumas de tu función sobra el = de cada +=. Eso se usa para otra cosa. Suerte A pues, es como dijo el profe
|
|
|
En línea
|
Ser diligente es lo ÚNICO que importa para lograr el éxito[c/ode]
|
|
|
Mozzard
Desconectado
Mensajes: 31
cout << "Text here" << endl;
|
Las funciones se declaran fuera del main y se usan dentro de este struct Complejo{ double real; double imaginario; }; Complejo sumar(Complejo, Complejo); int main(){ Complejo num1, num2; // mejor declararlos locales, no globales num1.real = 2; num1.imaginario = 1; num2.real = 3; num2.imaginario = 2; Complejo suma = sumar(num1, num2); } Complejo sumar(Complejo a, Complejo b){ Complejo suma; suma.real = a.real + b.real; suma.imaginario = a.imaginario + b.imaginario; return suma; }
Las sumas de tu función sobra el = de cada +=. Eso se usa para otra cosa. Suerte Al declarar la funcion en la linea 7 que significa poner esos parametros? Complejo sumar(Complejo, Complejo);
|
|
|
En línea
|
Programalo... sin miedo...
|
|
|
K-YreX
|
Complejo sumar(Complejo, Complejo);
Esto es el prototipo de una función a la que se le pasan dos variables de tipo <Complejo> (que es la <struct> que has creado) y retorna otro valor de tipo <Complejo>. Es como poner: int sumar(int, int); // suma dos enteros y retorna la suma
Cuando haces un prototipo no es necesario poner el nombre de la variable ya que no lo vas a usar pero cuando defines la función, sí. Por eso en el prototipo (línea 7) sólo he puesto el tipo de variable que toma como parámetros y en la definición de la función (líneas 19-24) les pongo nombre a cada parámetro (a y b respectivamente) porque en la definición sí los voy a usar. Si pones en la línea 7: Complejo sumar(Complejo a, Complejo b);
también es válido. O con cualquier otro nombre en vez de a y b puedes poner num1, num2 o lo que quieras. En esta función no importa mucho el nombre porque es algo muy sencillo pero en funciones más largas o complejas es recomendable usar nombres que te ayuden a entender lo que hacen por ejemplo: Complejo convertir(double real, double imaginaria){ Complejo resultado; resultado.real = real; resultado.imaginaria = imaginaria; return resultado; }
Suerte
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Creo que pregunta por los métodos.
|
|
|
En línea
|
|
|
|
Cero++
|
Creo que pregunta por los métodos.
Puede ser, pero el código que puso de ejemplo me hizo pensar que se refería a funciones
|
|
|
En línea
|
Ser diligente es lo ÚNICO que importa para lograr el éxito[c/ode]
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[C] Estructuras y punteros a funciones
Programación C/C++
|
Amadeo Magnus
|
1
|
6,272
|
13 Octubre 2010, 15:05 pm
por Karman
|
|
|
Problema de Estructuras con Funciones
« 1 2 »
Programación C/C++
|
diego-4
|
12
|
4,745
|
10 Noviembre 2012, 18:46 pm
por diego-4
|
|
|
Array de estructuras + funciones
Programación C/C++
|
maikelowen
|
7
|
3,754
|
4 Enero 2015, 02:25 am
por Yoel Alejandro
|
|
|
[?]Estructuras y funciones.
Programación C/C++
|
Ultra Holocaust
|
0
|
2,704
|
22 Junio 2015, 05:02 am
por Ultra Holocaust
|
|
|
duda sobre estructuras y funciones
Programación C/C++
|
fernaEDLP
|
4
|
1,992
|
2 Febrero 2019, 20:03 pm
por fernaEDLP
|
|