Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Novato en C++.. Funciones

Estas en el tema de Novato en C++.. Funciones en el foro de C/C++ en Foros del Web. Hola a todos, espero puedan ayudarme con esto, la verdad hace varios dias que intento entender pero todavia no logro hacerlo. Mi problema son las ...
  #1 (permalink)  
Antiguo 20/09/2009, 14:03
 
Fecha de Ingreso: septiembre-2009
Mensajes: 4
Antigüedad: 14 años, 7 meses
Puntos: 0
Novato en C++.. Funciones

Hola a todos, espero puedan ayudarme con esto, la verdad hace varios dias que intento entender pero todavia no logro hacerlo.
Mi problema son las funciones: No entiendo lo basico. Por lo que yo tengo entendido, esta la funcion "main" que segun lei en MUCHOS manuales es la que toma la cabecera del programa.. Primera duda, que significa que toma la cabecera? Y ademas, que deberia ir dentro de "main()"? :S
Segunda duda: No logro entender como es en C++ la ejecucion de las funciones, voy a intentar explicar lo que quiero decir:
Lei sobre prototipos, y lo que entiendo es que seria la "creacion" de la funcion, pero que no cumple ninguna accion:
<int/void/char/etc> funcion(parametros);

Por lo que pude entender, eso es el ejemplo que se me ocurre.
Ahora bien, cuando yo quiero crear el cuerpo de esa funcion, ahi no me queda mas que "intentar deducir" porque realmente no entiendo :S, seria algo asi?:
Funcion(Parametros); {
Blabla;
return 0;
}
Y si yo quiero llamar esa funcion? eso no lo entiendo, asi que ni puedo poner un ejemplo de lo que pude entender...
Y parametros:
Parametros seria lo que admite la funcion? Es decir, si yo pongo [Por ejemplo]
int CrearVariable(int VarA, int VarB);
Esa funcion solo trabajaria con esas dos variables de tipo entero? Y si en el caso [lo mas probable] de que este equivocado, para que sirven los parametros?
Y return todavia no me queda claro:
Si yo pongo "return 0;" es porque no tiene que devolver error? :S
Seguramente lo que entiendo es cualquier cosa, pero bueno eso es lo que intento, hace dias que intento mostrar un mensaje en pantalla y se me borra al instante que aparece la pantalla, me lei varios tutoriales, y ahora en muchos lados vi que recomiendan el tuto "C con Clase", y voy por la parte de operadores, pero no puedo entender funciones para nada, y lei muchos otros como "Aprenda C como si estuviera en primero" y ademas de muchos otros, pero no puedo entender eso, muchos me dicen "vos segui leyendo" pero si no practico no puedo seguir leyendo, porque no lo entiendo, y viendo que las funciones son algo importante y no las entiendo...Yo en los ejemplos que puse fue lo que entiendo, no crean que eso fue en el manual, o sea, lo puse porque creo que es asi, y se que esta mal.

En fin, agradeceria cualquier tipo de ayuda, y por favor no pongan codigos a emnos que sea necesario, o que sea un codigo de ejemplo NO funcional [por ejemplo poniendo "blabla" o cosas asi]. Si quieren puedo subir todos los tuto que tengo o no se, ya me estoy volviendo loco con esto..
Atte, Saludos.
  #2 (permalink)  
Antiguo 20/09/2009, 14:20
 
Fecha de Ingreso: agosto-2009
Ubicación: Cartagena, Colombia
Mensajes: 516
Antigüedad: 14 años, 8 meses
Puntos: 13
Respuesta: Novato en C++.. Funciones

Son muchas dudas....
Empezemos por la primera, se dice que la funcion main() es la cabecera por que siempre es la primera en ejeuctarse al correr el programa, de ahi su nombre funcion principal, el desarrollo del programa depende de lo que ella tenga adentro.

Funciones
Prototipo de una funcion es como definirla para poder usarla en cualquier parte del programa
(Declarar una funcion).

En una funcion debes terner en cuenta dos cosas, el tipo de funcion y los parametros;
el tipo de funcion hace referencia a el valor que va retornar la funcion (return) y los parametros las valores que recibe.

Ejemplo: Esta es una funcion que recibe un numero entero y retorna el cuadrado de este (el cuadrado de 4 es 16)

int cuadrado(int num){
int c;
c=num*num;
return c;
}

o puede ser de esta forma (el resultado es igual)


int cuadrado(int num){

return num*num;
}

el primer int que aparece antes del nombre de la funcion es por que el valor que a retornar es de tipo int

despues de tener es funcion asi komo esta aqui, dentro del main puedes hacer el llamado a esta:
void main(){
int x=5;
cout<<"El cuadrado de "<<x<<" es: "<<cuadrado(x);
}
  #3 (permalink)  
Antiguo 20/09/2009, 14:23
 
Fecha de Ingreso: agosto-2009
Ubicación: Cartagena, Colombia
Mensajes: 516
Antigüedad: 14 años, 8 meses
Puntos: 13
Respuesta: Novato en C++.. Funciones

Ejemplo completo:
Código c++:
Ver original
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4. int cuadrado(int a);
  5.  
  6. void main(){
  7. int x;
  8. cout<<"Ingrese numero: ";
  9. cin>>x;
  10.  
  11. cout<<"El cuadrado del numero  "<<x<<" es: "<<cuadrado(x);
  12.  
  13.  
  14. }
  15.  
  16. int cuadrado(int a){
  17.  return a*a;
  18. }

Última edición por mhax; 20/09/2009 a las 14:40
  #4 (permalink)  
Antiguo 20/09/2009, 14:40
Avatar de fradve  
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años
Puntos: 7
Información Respuesta: Novato en C++.. Funciones

Mira, el manejo de la funciones es algo simple en c++ solo tienes que enteder como funcionan y sobre todo porque se la utiliza.

La función main se dice que la que toma la cabecera porque como su nombre mismo lo indica es la función principal a partir de la cual el programa a arrancar, cuando ejecutas tu codigo lo que el compilador busca es que tengas tu función main, es decir, que se ejecutará todo lo contenido dentro de esta como operaciones aritméticas, llamados a función, en fin todo lo que contenga. Así:

Código c++:
Ver original
  1. #include<iostream.h>
  2. #include<conio.h>
  3.  
  4. void main()
  5. {
  6.    cout << "HOLA MUNDO";
  7.    getch();
  8. }

El código anterior presenta un mensaje en pantalla, como ves dicho codigo se encuentra dentro de la función principal (main), que es la primera en ejecutarse.


Ahora, si lo que tu quieres es crear funciones a parte, hay que tomar en cuenta las siguientes consideraciones: Una función por hecho de serlo debe retornar un valor de un determinado tipo (tu decides cual), así una función puede retornar un entero (int), un flotante(float), un doble(double), un caracter(char), void (viene a ser una funcion que este caso no retorna nada, puede denominarse también procedimiento), incluyendo tipos de datos complejos, es decir, los que tu mismo crees; Además las funciones también reciben parámetros (no es obligatorio), el porque de los parámetros va de acuerdo al uso que le des a tu función, así si yo quiero sumar dos números mediante el uso de una función debo indicarle que números son, y eso lo hago mediante los parámetros, así mismo ese resultado que he obtenido debo retornarlo para ello utilizas el return seguido de la variable donde almacenaste el resultado que debe de ser del mismo tipo de la función. Al momento de llamar a la funcion simplemente lo hacemos mediante el nombre y si recibe parámetros pues se los colo. Por ejemplo:

Código c++:
Ver original
  1. #include<iostream.h>
  2. #include<conio.h>
  3.  
  4. int suma(int a, int b)
  5. {
  6.     int resultado;
  7.     resultado=a+b;
  8.     return resultado;
  9. }
  10.  
  11. void main()
  12. {
  13.    int a,b,resultado;
  14.    
  15.    cout << "INGRESE PRIMER VALOR: ";
  16.    cin >> a;
  17.    cout << "INGRESE SEGUNDO VALOR: ";
  18.    cin >> b;
  19.    resultado=suma(a,b);
  20.    cout << "LA SUMA ES: " << resultado;
  21.    //TAMBIEN PUEDES INVOCARLA DIRECTAMENTE
  22.    cout << "LA SUMA ES: " << suma(a,b,);
  23.    gecth();
  24. }

Como puedes ver en el código anterior a mas de la funcion de cabecera (main), está una función llamada suma, la cual recibe dos parámetros de tipo entero y retorna la suma de ambos números. Podrás notar que lo primero que se ejecutará es lo que está dentro del main, es decir, la solicitud de los números, ya que como te dije anteriormente el main por ser la funcion de cabera o entrada siempre se ejecutará primero.

Cualquier otra inquietud puedes plantearla que con todo gusto te responderé.
__________________
En programación hay mil y un formas de hacer lo mismo...
  #5 (permalink)  
Antiguo 20/09/2009, 15:32
 
Fecha de Ingreso: septiembre-2009
Mensajes: 4
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Novato en C++.. Funciones

Perdon mi demora en responder, se me cayo internet :S

Esto era lo que no entendia, ya entendi todo, entre los 3 entendi perfectamente todo, ya pude hacer una mini calculadoria [suma y resta =P] gracias a que pude entender esto.. Gracias nuevamente, lejos la mejor explicacion que vi sobre el tema, disculpen que les ahya hecho perder el tiempo.. Muchisimas gracias.. De corazon les agradezco me hayan explicado.. :)

Saludos. Atte.

Emilio.
  #6 (permalink)  
Antiguo 22/02/2010, 16:03
 
Fecha de Ingreso: febrero-2010
Mensajes: 1
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Novato en C++.. Funciones

Estoy viendo funciones y tampoco entendía nada por más que buscaba, solo encontraba ejemplos que no se entendían porque no se ejecutaba nada, ahora ya entiendo todo, muchas gracias!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:12.