Sunteți pe pagina 1din 8

TEORIA Y LOGICA DE PROGRAMACION C++ - Devc 4.9.9.

2
U.D. - Ing. Angela M. Cuervo M. 5

FUNCIONES Y VARIABLES DE FUNCION

Cuando es necesario escribir programas complicados para resolver problemas complejos, una prctica comn entre los programadores es descomponer el algoritmo (el diagrama de flujo) en varias partes. Cada de una de stas partes puede codificarse en forma independiente en la forma de subprogramas. As, habr un cierto nmero de subprogramas que se encargan de realizar slo parte de las tareas requeridas para resolver el problema; estos subprogramas estarn relacionados de forma que su ejecucin conjunta permitir la solucin del programa global. Concepto de funcin C++ se puede utilizar como lenguaje de programacin estructurada, tambin conocida como programacin modular. Por esta razn, para escribir un programa, ste se divide en varios mdulos, en lugar de uno largo. El programa se divide en muchos mdulos (rutinas pequeas denominadas funciones), que producen muchos beneficios: aislar mejor los problemas, escribir programas correctos ms rpidos y producir programas que son ms fciles de mantener.

As, pues, un programa en C++ se compone de varias funciones, cada una de las cuales realiza una tarea principal. En C++ todas las acciones se llevan a cabo mediante funciones. El programa principal es una funcin llamada main.

Declaracin de una funcin tipo nombre (lista de parmetros)

{ declaracin de variables locales; estatutos; return valor; } donde: Tipo es el valor de retorno de la funcin. Si la funcin no regresa ningn valor se pone el tipo void para indicarlo. Nombre es un identificador, el cual se recomienda sea un nombre representativo de lo que hace la funcin. Lista de parmetros es una lista de cero, una o ms declaraciones de variables (parmetros) separadas por coma. Cada parmetro se debe de declarar con su tipo de dato. En C++ las funciones pueden declararse en 2 lugares distintos: 1. Despus de la declaracin de variables globales y antes de la funcin main() o la funcin que la vaya a llamar. 2. Despus de la funcin main() o de la funcin que la vaya a llamar, en cuyo caso deben ser identificadas antes, para ello debe declararse solamente el encabezado de la funcin, al que se llama prototipo, despus de la declaracin de variables y antes de la funcin main(). Esta funcin prototipo le indica al compilador el tipo de dato que regresar la funcin, el nmero de parmetros que la funcin espera recibir, el tipo de estos parmetros y el orden en el cual los parmetros deben ser esperados. El compilador usa esta funcin prototipo par validar las llamadas a las funciones. En algunas versiones de C no se realiza este tipo de verificacin, pero en el caso de C++ si. Una funcin no puede declararse dentro de otra funcin. Toda funcin que no es void debe tener un return. Al llegar al estatuto return, la funcin se deja de ejecutar y enva el valor especificado como valor de retorno.

Orden de ejecucin de las funciones en C++: C++ se basa en funciones siendo main() la funcin principal. por lo que: La ejecucin de un programa empieza en la funcin main(). Las otras funciones se ejecutan cuando se mandan llamar. Si una funcin no se manda llamar, nunca se ejecuta.

Como se coment en las notas anteriores, para que una funcin sea llamada tiene que declararse antes.

Llamada a una funcin Hay varias formas de llamar a una funcin, dependiendo de lo que se desea hacer con el resultado o resultados que regrese, pero laregla que siempre se conserva es que la lista de parmetros debe coincidir con los valores que recibe la funcin en su declaracin en tipo y cantidad. Un estatuto de asignacin si el valor que regresa es necesario en otra operacin a = nombre (lista de parmetros); Una expresin a = cantidad * nombre (lista de parmetros); El estatuto de salida, si solo nos interesa imprimir el resultado, en caso de que no haya parmetros de referencia cout << nombre (lista de parmetros); Si hay parmetros de referencia, debemos llamar a la funcin y luego imprimir los valores de los argumentos que hayan sido modificados. nombre (lista de parmetros); cout << parmetros; Una condicin if (nombre (lista de parmetros) > 7) while (nombre (lista de parmetros) > 7

Ejemplo 1: Se necesita una funcin que calcule la distancia entre 2 puntos con coordenadas (Xa, Ya) y (Xb, Yb) . Para calcularla se usa la frmula: DISTANCIA = (xa xb)2 + (ya yb)2

#include <iostream> #include <math> //librera para usar las operaciones pow y sqrt double distancia (double xx1, double yy1, double xx2, double yy2) { double result,p1,p2; p1 = pow((xx2-xx1),2); p2 = pow((yy2-yy1),2); result = sqrt(p1+p2); return result; }

int main() { double x1,y1,x2,y2; cout << "Dame las coordenadas del 1er punto "<<endl; cin >> x1>>y1; cout << "Dame las coordenadas del 2do punto "<<endl; cin >> x2>>y2; cout<<"La distancia entre los 2 puntos es = "<<distancia(x1,y1,x2,y2)<<endl; return 0; } Ejemplo 2: Se desea obtener el permetro de un tringulo dadas las coordenadas de los 3 puntos. Usaremos la funcin de distancia del problema anterior para resolverlo #include <iostream> #include <math> //librera para usar las operaciones pow y sqrt double distancia (double xx1, double yy1, double xx2, double yy2) { double result,p1,p2; p1 = pow((xx2-xx1),2); p2 = pow((yy2-yy1),2); result = sqrt(p1+p2); return result; }

int main() { double x1,y1,x2,y2,x3,y3,p12,p13,p23; cout << "Dame las coordenadas del 1er punto "<<endl; cin >> x1>>y1; cout << "Dame las coordenadas del 2do punto "<<endl; cin >> x2>>y2; cout << "Dame las coordenadas del 3er punto "<<endl; cin >> x3>>y3; // calculando la distancia entre el punto 1 y 2 p12 =distancia(x1,y1,x2,y2); // calculando la distancia entre el punto 1 y 3 p13 =distancia(x1,y1,x3,y3); // calculando la distancia entre el punto 2 y 3 p23 =distancia(x2,y2,x3,y3); cout << "El perimetro es " <<p12+p13+p23<<endl; return 0; }

Funciones definidas por el usuario Un programa en C++ se forma por una coleccin de funciones. Todos los programas se construyen a partir de una o ms funciones que se integran para crear una aplicacin. Todas las funciones contienen uno o ms estatutos C++ y se crean generalmente para realizar una nica tarea. La definicin de una funcin se realiza escribiendo primero el tipo del valor de retorno de la funcin, despus el nombre de la funcin, posteriormente entre parntesis las variables que utilizar dicha funcin (parmetros) y finalmente las instrucciones de la funcin. Las funciones definidas por el usuario se invocan por su nombre y los parmetros opcionales que se puedan tener. Todas las funciones tienen nombre y una lista de valores que recibe. Se puede asignar cualquier nombre a la funcin, pero normalmente se procura que dicho nombre describa el propsito de la funcin. Una declaracin de funcin indica al compilador el nombre de la funcin que se est invocando en el programa. Si la funcin no se defina, el compilador informa de un error. Por ejemplo: double promedio( int a, int b, int c) { return (a + b + c ) / 3.0; } Declara a la funcin promedio, la cual recibe tres valores enteros y calcula y regresa el promedio de ellos. int suma( int a, int b)

{ return (a + b); } Declara a la funcin suma, la cual recibe dos valores enteros y calcula y regresa la suma de ellos.

Variables globales Son las variables declaradas despus de la declaracin de libreras y antes de la declaracin de funciones. Estas variables son reconocidas en cualquier funcin del programa. Indican al compilador que las funciones definidas por el usuario o variables as declaradas son comunes a todas las funciones de su programa Si se declara global una variable promedio del tipo: float promedio; cualquier funcin de su programa, incluyendo la funcin main(), puede acceder a la variable promedio. Por ejemplo consideremos la siguiente estructura modelo que incluye declaraciones globales:

#include <iostream> // declaraciones globales int calificaciones; main ( ) { } bloque de sentencias

Variables locales

Todas las variables declaradas en una funcin son variables locales, estas variables son reconocidas en la funcin en la cual fueron definidas.

Los parmetros de una funcin son tambin variables locales de sta. La declaracin de una variable local en una funcin debe realizarse antes de ser usada, lo ms usado es declarar las variables despus del encabezado de la funcin y antes de las instrucciones Adems de tener un mbito restringido, las variables locales son especiales por otra razn: existen en memoria slo cuando la funcin est activa (es decir mientras se ejecutan las sentencias de la funcin). Cuando la funcin no se est ejecutando, sus variables locales no ocupan espacio en memoria, ya que no existen. Un error comn es declarar con el mismo nombre una variable local y un parmetro.

Ejemplo: int calcula (int a, int b) { double x; x = a *b++; } Pero tambin pude declararse entre las instrucciones antes de ser usada

Ejemplo: int ejemplo (double num) { num++; double valor; valor = 5 * num; }

Variables declaradas dentro de un ciclo for

En un ciclo for en la seccin de inicializacin puede declararse la variable del ciclo, ejemplo: for (int x=1; x<=3; x++) en estos casos la variable x solo es reconocida en el ciclo for y al salir de ah an cuando est en una funcin no es reconocida y marcar un error de sintaxis si se hace uso de ella.

Es importante notar que si tenemos la siguiente declaracin en un for for (int z=1, y=2; z!=5; z++) tanto la variable z como y son reconocidas solo en el for.

Alcance de las variables El alcance de una variable determina cules son las funciones que reconocen ciertas variables. Si una funcin reconoce una variable, la variable es visible en esa funcin. El alcance es la zona de un programa en la que es visible una variable. Podemos resumir en forma grfica lo explicado anteriormente, donde depende en qu lugar se haya declarado una variable es el alcance (lugares donde es reconocida y puede usarse).

VARIABLES GLOBALES Reconocidas en todas Las funciones del programa

Variables locales En la funcin donde se declaran

Variables de ciclo (for) Solo en el ciclo

___________________________________________________________________________________________ Fundamentos de Programacin de Luis Aguilar Fundamentos de Programacin de Luis Joyanes Universidad de la Rioja. Manual de Devc++. Instituto Tecnolgico de Celaya

S-ar putea să vă placă și