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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda en funciones en estructuras
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda en funciones en estructuras  (Leído 2,156 veces)
Mozzard

Desconectado Desconectado

Mensajes: 31


cout << "Text here" << endl;


Ver Perfil
Ayuda en funciones en estructuras
« en: 4 Enero 2019, 12:56 pm »

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:
Código:
#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

Código:
Programalo... sin miedo...
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Ayuda en funciones en estructuras
« Respuesta #1 en: 4 Enero 2019, 13:52 pm »

Las funciones se declaran fuera del main y se usan dentro de este
Código
  1.  
  2. struct Complejo{
  3.    double real;
  4.    double imaginario;
  5. };
  6.  
  7. Complejo sumar(Complejo, Complejo);
  8.  
  9. int main(){
  10.    Complejo num1, num2; // mejor declararlos locales, no globales
  11.    num1.real = 2;
  12.    num1.imaginario = 1;
  13.    num2.real = 3;
  14.    num2.imaginario = 2;
  15.  
  16.    Complejo suma = sumar(num1, num2);
  17. }
  18.  
  19. Complejo sumar(Complejo a, Complejo b){
  20.    Complejo suma;
  21.    suma.real = a.real + b.real;
  22.    suma.imaginario = a.imaginario + b.imaginario;
  23.    return suma;
  24. }

Las sumas de tu función sobra el = de cada +=. Eso se usa para otra cosa. Suerte :-X


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Cero++

Desconectado Desconectado

Mensajes: 52



Ver Perfil WWW
Re: Ayuda en funciones en estructuras
« Respuesta #2 en: 4 Enero 2019, 14:00 pm »

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:
Código:
#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:
Código
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4. struct complejo {
  5. float real, imaginario;
  6. }num1, num2;
  7. complejo sumar(complejo a,complejo b) {
  8. complejo suma;
  9. suma.real= a.real += b.real;
  10. suma.imaginario=a.imaginario += b.imaginario;
  11. return suma;
  12. }
  13. int main(int argc, char *argv[]) {
  14.  
  15.  
  16.  
  17. return 0;
  18. }
  19.  
  20.  


O podes hacer prototipo antes del main y luego seguir programandola luego del main, así:
Código
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4. struct complejo {
  5. float real, imaginario;
  6. }num1, num2;
  7.  
  8. complejo sumar(complejo a,complejo b);
  9.  
  10. int main(int argc, char *argv[]) {
  11.  
  12. return 0;
  13. }
  14. complejo sumar(complejo a,complejo b) {
  15. complejo suma;
  16. suma.real= a.real += b.real;
  17. suma.imaginario=a.imaginario += b.imaginario;
  18. return suma;
  19. }

Así pues, ya no deberías tener ningún problema de sintaxis.  ;D
En línea

Código:
Ser diligente es lo ÚNICO que importa para lograr el éxito[c/ode]
Cero++

Desconectado Desconectado

Mensajes: 52



Ver Perfil WWW
Re: Ayuda en funciones en estructuras
« Respuesta #3 en: 4 Enero 2019, 14:02 pm »

Las funciones se declaran fuera del main y se usan dentro de este
Código
  1.  
  2. struct Complejo{
  3.    double real;
  4.    double imaginario;
  5. };
  6.  
  7. Complejo sumar(Complejo, Complejo);
  8.  
  9. int main(){
  10.    Complejo num1, num2; // mejor declararlos locales, no globales
  11.    num1.real = 2;
  12.    num1.imaginario = 1;
  13.    num2.real = 3;
  14.    num2.imaginario = 2;
  15.  
  16.    Complejo suma = sumar(num1, num2);
  17. }
  18.  
  19. Complejo sumar(Complejo a, Complejo b){
  20.    Complejo suma;
  21.    suma.real = a.real + b.real;
  22.    suma.imaginario = a.imaginario + b.imaginario;
  23.    return suma;
  24. }

Las sumas de tu función sobra el = de cada +=. Eso se usa para otra cosa. Suerte :-X
A pues, es como dijo el profe  ;D
En línea

Código:
Ser diligente es lo ÚNICO que importa para lograr el éxito[c/ode]
Mozzard

Desconectado Desconectado

Mensajes: 31


cout << "Text here" << endl;


Ver Perfil
Re: Ayuda en funciones en estructuras
« Respuesta #4 en: 4 Enero 2019, 17:37 pm »

Las funciones se declaran fuera del main y se usan dentro de este
Código
  1.  
  2. struct Complejo{
  3.    double real;
  4.    double imaginario;
  5. };
  6.  
  7. Complejo sumar(Complejo, Complejo);
  8.  
  9. int main(){
  10.    Complejo num1, num2; // mejor declararlos locales, no globales
  11.    num1.real = 2;
  12.    num1.imaginario = 1;
  13.    num2.real = 3;
  14.    num2.imaginario = 2;
  15.  
  16.    Complejo suma = sumar(num1, num2);
  17. }
  18.  
  19. Complejo sumar(Complejo a, Complejo b){
  20.    Complejo suma;
  21.    suma.real = a.real + b.real;
  22.    suma.imaginario = a.imaginario + b.imaginario;
  23.    return suma;
  24. }

Las sumas de tu función sobra el = de cada +=. Eso se usa para otra cosa. Suerte :-X



Al declarar la funcion en la linea 7 que significa poner esos parametros?
Código:
Complejo sumar(Complejo, Complejo);
En línea

Código:
Programalo... sin miedo...
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Ayuda en funciones en estructuras
« Respuesta #5 en: 4 Enero 2019, 17:52 pm »

Código
  1. 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:
Código
  1. 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:
Código
  1. 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:
Código
  1. Complejo convertir(double real, double imaginaria){
  2.    Complejo resultado;
  3.    resultado.real = real;
  4.    resultado.imaginaria = imaginaria;
  5.    return resultado;
  6. }

Suerte :-X
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayuda en funciones en estructuras
« Respuesta #6 en: 5 Enero 2019, 02:10 am »

Creo que pregunta por los métodos.
En línea

Cero++

Desconectado Desconectado

Mensajes: 52



Ver Perfil WWW
Re: Ayuda en funciones en estructuras
« Respuesta #7 en: 5 Enero 2019, 02:13 am »

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  :xD
En línea

Código:
Ser diligente es lo ÚNICO que importa para lograr el éxito[c/ode]
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[C] Estructuras y punteros a funciones
Programación C/C++
Amadeo Magnus 1 6,301 Último mensaje 13 Octubre 2010, 15:05 pm
por Karman
Problema de Estructuras con Funciones « 1 2 »
Programación C/C++
diego-4 12 4,810 Último mensaje 10 Noviembre 2012, 18:46 pm
por diego-4
Array de estructuras + funciones
Programación C/C++
maikelowen 7 3,781 Último mensaje 4 Enero 2015, 02:25 am
por Yoel Alejandro
[?]Estructuras y funciones.
Programación C/C++
Ultra Holocaust 0 2,730 Último mensaje 22 Junio 2015, 05:02 am
por Ultra Holocaust
duda sobre estructuras y funciones
Programación C/C++
fernaEDLP 4 2,020 Último mensaje 2 Febrero 2019, 20:03 pm
por fernaEDLP
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines