miércoles, 23 de mayo de 2012

Funciones c++





Una función es un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor. Las funciones pueden tomar parámetros que modifiquen su funcionamiento. Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para implementar operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la cantidad de código. Cuando una función es invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.


Declaración y definición de funciones Al declarar una función en C++, de la misma forma que hacíamos en Hugs, debemos darle un nombre e indicar cuántos y de qué tipo son los parámetros que recibe y de qué tipo es el valor que devuelve. En C++ declaramos una función de la siguiente manera: <tipo del valor devuelto por la función> nombre (<lista de parámetros que recibe>)[2]

 Los parámetros que recibe la función se separan con comas, y cada parámetro debe tener la siguiente forma: <tipo del parámetro> nombre Así, las siguientes son declaraciones posibles de funciones: 

  • int max(int a, int b)
  • char SexoPersona(int dni_persona)
  • float producto(float x, int y)
  • int dame_un_numero_cualquiera( )
 Una vez que declaramos una función, debemos indicar qué hace o cómo calcula el valor que devuelve a partir de los valores recibidos. O sea debemos implementar la función, debemos escribir el cuerpo de la función. El mismo consta de una secuencia de operacionesencerradas entre llaves int 

max (int a, int b)

{            ... secuencia de operaciones…

} 

Para indicar el valor de retorno de la función, utilizamos la sentencia return <valor>: int max (int a, int b)

{            …secuencia de operaciones que calculan el máximo entre a y b y lo guardan en una variable c ...

return c;
}

Es importante notar que la sentencia return es un  de  de la función, o sea, una vez que el  encuentra una instrucción de este tipo, termina la ejecución de la función actual y pasa el control a la función que la llamó.

 IMPORTANTE: toda sentencia en C++ termina con un punto y coma (;). Esto le permite al compilador C++ saber cuándo termina una y empieza la siguiente. 

DEFINICION: Llamaremos bloque a:·   una sentencia (las sentencias terminan en ‘;’).· una secuencia de sentencias, encerradas entre llavessentencia1; sentencia2; sentencia3; }
 Los bloques pueden anidarse unos dentro de otros.Función especial main Para poder crear un programa en C, es necesario que haya una función especial definida. Esta función se llama main y es el punto de entrada o inicio de ejecución del programa, es decir, es el lugar por donde va a empezar la ejecución de nuestro programa. La declaración más sencilla (que alcanza para los programas que vamos a realizar) es la siguiente: int max (){sentecia1;sentencia2;} 

Entonces el programa va a comenzar la ejecución con la sentencia1, luego la sentencia2, y así sucesivamente. En el caso en que no se defina una función con el nombre de main, el compilador de C que estemos usando, no nos va a permitir crear el programa ejecutable, y nos lo informará con un error del estilo: “Error: undefined reference to ‘main’”.





EXISTEN 3 CLASES USUALES DE FUNCIONES.Las primeras son de tipo computacional que son diseñadas para realizar operaciones con los argumentos y regresan un valor basado en el resultado de esa operación.Las segundas funciones son aquellas que manipulan información y regresan un valor que indican la terminacion o la falla de esa manipulacion.Las terceras son aquellas que no regresan ningun valor, es decir son estrictamenta procedurales.Esto quiere decir que en general toda operación o calculo en un programa debera convertirse a una o muchas funcíones y el resto deberan ser procedimientos.




Ejercicio:
// Programa Que imprima los n primeros numeros pares
#include <iostream.h>

#include <conio.h>
#include <stdlib.h>
#include <string.h>


void main()
{
clrscr ();
int x=1, n, y;
cout << "ingrese nuemor N: ";
cin >> n;
while (x<=n)
{
gotoxy (1 , x+1);
y = x*2;
cout << y;
x++;
}
system ("Pause");
}