lunes, 7 de septiembre de 2009

Funciones con retorno

Se pueden encontrar muchos usos para las funciones void pero sin embargo pueden ser algo limitantes. En estos casos resultan útiles las funciones con retorno.
Las funciones con retorno se caracterizan por ser funciones que retornan un valor al ser llamadas. Este valor puede ser de cualquier tipo nativo(int, char, float, double, etc...) o cualquier tipo de datos creado por el programador. La forma de definirlas es la siguiente:

tipo nombreDeFuncion(argumentos...);
Donde tipo es el tipo de dato que retorna la funcion. Por ejemplo, si deseamos crear una funcion que calcule el producto de 2 enteros, la podríamos definir de la siguiente manera:
int producto(int,int);
Y la implementación sería así:
int producto(int a, int b){
int res; //guardara el resultado
res = a * b; //calcula a*b y guarda el resultado en res
return res; //esta es la verdadera magia...
}


Para comprender la utilización de funciones con retorno, es necesario ver todo un programa en contexto. A continuación presentamos un programa para calcular el producto de 2 enteros, utilizando la función definida anteriormente.


#include
using namespace std;

int producto(int,int); //prototipo de la funcion

//funcion principal
int main(){
int a,b,c;
cin>>a; //pedir un valor
cin>>b; //pedir otro valor
//se llama a la funcion para calcular el producto
c=producto(a,b);
cout<<c<<endl; //desplegar resultado
return 0;
}

//implementacion de la funcion producto()
int producto(int a, int b){
int res; //guardara el resultado
res = a * b; //calcula a*b y guarda el resultado en res
return res;
}


Es importante destacar que la función int main() es una función con retorno. El retorno (return 0;) sin embargo, es para el sistema operativo, para indicar si es que la ejecución del programa termino correctamente.

A la hora de programar funciones siempre se debe tener en cuenta la diferencia entre variables locales y globales, para así evitar todo tipo de errores raros, que después son difíciles de depurar.

Dejen sus comentarios!

Estructura de una funcion

La estructura de la función va de la siguiente forma:
1:La clase de función que va ser como ser:


Void
Char
Int
Float
Double

2:el nombre que la funcion va a tener y sus paréntesis:

void Función();

3:detro de los paréntesis se colocan los parámetros si es que necesita parámetros la función:

void funcion(int,int);
y sin parametros
void funcion();

4: las llaves de apertura y cierre:

void funcion(int,int)
{
}


5: el contenido de la funcion:


void funcion(int a,int b)
{
int c;
c= a + b;
}


6: el return si es que es una funcion con retorno de lo contrario ahi queda todo:

Ej con retorno:

void funcion(int a,int b)
{
int c;
c= a + b;
return c;
}


Dejen sus comentarios!

Funciones Void

Las funciones Void son funciones sin retorno que quiere decir eso, que no llevan en su cuerpo la palabra return que es común de las funciones con retorno y las misma función main, para entender mejor vamos a ver un ejemplo.
#include<iostream>
void a(int);/*esta linea nos sirve para poder colocar la funcion despues de la main*/
using namespace std;
int main()
{
int b,c;
cin>>b;
c=a(b);/*llamamos a la funcion desde main*/
cout<<c;
return 0;
}
void a(int b) //esta es la funcion void
{
int j;
j=b + b;
}/* como podemos ver esta funcion no lleva en su parte final la palabra return es por eso que se le llama funcion sin retorno*/

Las funciones Void pueden tener parámetros como no pueden.
El primer ejemplo era una función Void sin parámetros ya que cuando se la declaraba no tenia nada dentro de sus ()
un ejemplo de una función sin parámetros es: Void función() como podemos ver no tiene nada dentro de sus paréntesis, mientras que las funciones con parámetros son aquellas que llevan variables dentro de los paréntesis de la función y también llevan el tipo de variable que va a ser, para que este mas claro este segundo aspecto vamos a ver un pequeño ejemplo.

#include<iostream>
Void f(int,int);/*para mencionar en esta parte los parámetros de la función no es necesario colocarle las variables basta con poner el tipo de variable que va a ser*/
using namespace std;
int main()
{
int a,b,c;
c=f(a,b);/* aqui si es necesario poner las variables pero no se coloca el tipo de variable que va a ser*/
cout<<c;
return 0;
}
void f(int a,int b)/* cuando se va a comenzar a crear la función si se debe poner las clase de variable que va ser y la variable*/
{
int c;
c= a+b;
}

con este ejemplo ya se puede ver la diferencia entre una función con parámetros y sin los mismos, y además ya se entiende lo que es una función void.

Siguiendo lo aprendido le reto a que realice el siguiente programa.

1: Mediante una función void obtenga el factorial de un numero que es ingresado por teclado. Teniendo en cuenta que el factorial de un numero es la multiplicación desde uno hasta ese numero ej: Factorial de 5 = 1*2*3*4*5 el cual da como resultado 120

Dejen sus comentarios!

Variables Locales y Globales

Para comenzar a comprender lo que es la programación modular hay que tocar 2 temas muy importantes que deben tenerse claros a la hora de programar.
La primera es la diferencia entre variables locales y globales
Comenzando con el primer punto las variables locales y globales son variables como cualquier otra que se encuentren en main con la diferencia de que las variables globales pueden ser usadas en cualquier función ya que se definen antes de comenzar las funciones y también antes de la función main y también pueden ser usadas por la propia main.
EJEMPLO

#include<iostream>
using namespace std;
int a=1,b=2; // variables globales
void f(int);
int main()
{
int c;
c= a+b;//se usa las variables globales
cout<<c<<endl;
f(d);
return 0;
}
void (int a)
{
int s;
s= a+2;/*a es la variable global definida antes de todas las funciones*/
cout<<s<<endl;
}

Las variables locales son aquellas que solo se pueden usar dentro de una función ya que fuera de ella desaparece para comprender mejor este segundo concepto veamos un EJEMPLO


#include<iostream>
using namespace std;
int main()
{
int a,b=2,c;//variables locales
cin>>a;
c=a+2;
cout<<c;
return 0;
}


Dejen sus comentarios!

Hello world!: Una ironía

El propósito fundamental de la programación es el de resolver problemas a través de programas computacionales. Es por eso que siempre me pareció irónico que el primer programa que la mayoría de los estudiantes hacen en sus cursos de programación es el increíblemente inútil, “Hello World!”. Sería mucho más útil realizar un programa que resuelva algún problema. Esto, además de ser útil, motivaría al alumno ya que éste vería que su programa sirve para algo.


Este sitio esta destinado a tratar de simplificar muchos de los aspectos confusos de la programación. Como su nombre lo indica, trata de hacer la programación y el software accesible (y entendible) a cualquier persona.


De todas formas, he aquí un enlace a una página que tiene implementaciones del “Hello World!” en casi todos los lenguajes de programación imaginables. ;)


http://roesler-ac.de/wolfram/hello.htm

Dejen sus comentarios!