Anda di halaman 1dari 21

REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO PARA EL PODER POPULAR DE LA EDUCACIN SUPERIOR UNIVERSIDAD VALLE DEL MOMBOY FACULTAD DE INGENIERA

CATEDRA: INGENIERA DE LA PROGRAMACIN

FUNCIONES

INTEGRANTES: Restrepo Jessica Roger Carrizo Luisa Betancourt Duverlis Delgado Jess Rivas Carlos Albornoz PROFESORA: BETZABET LEN CARVAJA1, 08 DE MAYO DE 2012 INTRODUCCIN

En la mayora de los casos, un determinado problema complejo lo podemos (y debemos) dividir en problemas sencillos. Estos Subproblemas se conocen en el contexto de la programacin como Mdulos o subprogramas. Desde el punto de vista del diseo: Se tratar de descomponer el problema original en partes. Se pueden codificar de forma independiente e incluso por diferentes personas. El problema final queda resuelto y estructurado en forma de mdulos, lo que hace ms sencilla su lectura y mantenimiento. La utilizacin de funciones nos permite dividir un programa extenso en pequeos segmentos que realizan tareas concretas. Probablemente, dentro de un mismo programa se realicen las mismas tareas varias veces, lo que se facilita mediante la utilizacin de funciones. Sin embargo, es probable que ciertas funciones no sean reutilizables, pero al usarlas se mejora la legibilidad del programa. La filosofa en la que se base el diseo de C es el empleo de funciones. Por esta razn, un programa en C contiene al menos una funcin, la funcin main. Esta funcin es particular dado que la ejecucin del programa se inicia con las instrucciones contenidas en su interior. Una vez iniciada la ejecucin del programa, desde la funcin main se puede llamar a otras funciones y, posiblemente, desde estas funciones a otras. Otra particularidad de la funcin main es que se llama directamente desde el sistema operativo y no desde ninguna otra funcin. De esta manera, un programa en C slo puede contener una funcin main. Con el propsito de permitir un manejo eficiente de los datos, las funciones en C no se pueden anidar. En otras palabras, una funcin no se puede declarar dentro de otra funcin, por lo que todas las funciones son globales o externas, lo que hace que puedan llamarse desde cualquier parte de un programa. Se puede acceder (llamar) a una determinada funcin desde cualquier parte de un programa

FUNCIONES

Es una parte de cdigo del programa principal, que se divide en mdulos y subrutinas con un nombre particular, que puede ser invocadas o llamada a ejecucin desde cualquier parte del programa tantas veces sea necesario. El uso de funciones se justifica en dos palabras: organizacin y reutilizacin del cdigo. Una funcin es un conjunto de instrucciones, declaraciones, definiciones, expresiones y sentencias que realizan una tarea especfica. En general toman ciertos valores de entrada, llamados parmetros y proporcionan un valor de salida o valor de retorno, en C++ son opcionales y pueden no existir.

Importancia del uso de las Funciones Realizar tareas concretas y simplificar el programa. Evitar escribir el mismo cdigo varias veces.

Ventajas de utilizar Funciones 1.- Minimizar el problema. 2.- Escribir programas ms rpidos. 3.- crear programas ms fciles de mantener (ms legibles y ms cortos)

Definicin de una Funcin

Tipo_valor_retorno Nombre funcin (Parmetros) { Cuerpo de la funcin }

Tipo. Especifica el tipo de valor que devuelve la sentencia return de la funcin. El valor puede ser cualquier tipo vlido; si no se especifica ninguno, se asume un resultado entero. El tipo de dato se refiere a (int, float, void, char), las funciones que no retornan siempre es void.

Nombre. Es el identificador de la funcin, es muy recomendable poner nombres que indiquen lo ms claramente posible, qu es lo que hace la funcin, y que permitan interpretar qu hace el programa con slo leerlos. Cuando se precisen varias palabras para conseguir este efecto se puede usar alguna de las reglas ms usuales. Separar cada palabra con un "_". Otra consiste en escribir la primera letra de cada palabra en mayscula y el resto en minsculas, no debe ser una palabra reservada. Parmetros. Los parmetros son los datos que reciben las funciones y que utilizan para realizar las operaciones de la funcin. Son nombres de variables separados por comas con sus tipos asociados que reciben los valores de los argumentos cuando se llama a la funcin. Una funcin puede no tener parmetros, en cuyo caso la lista de parmetros est vaca, los parntesis son necesarios. Los parmetros de una funcin son los valores de entrada (y en ocasiones tambin de salida). Para la funcin se comportan exactamente igual que variables, y de hecho cada parmetro se declara igual que una variable. Una funcin puede recibir cualquier nmero de parmetros, incluso ninguno. A la hora de definir la funcin, en la cabecera, se definen los parmetros que va a recibir. Los parmetros tienen validez durante la ejecucin de la funcin, es decir, tienen un mbito local a la funcin donde se estn recibiendo. Cuando la funcin se termina, los parmetros dejan de existir. Sentencias. Conjunto de instrucciones, rutinas y declaraciones de variables locales que se crean al entrar en la funcin y destruyen al salir. Declaracin o Prototipo de una Funcin En C++ es obligatorio usar prototipos. Un prototipo es una declaracin de una funcin. Consiste en una presentacin de la funcin, exactamente con la misma estructura que la definicin, pero sin cuerpo y terminada con un ";".

Ejemplo: int Mayor(int a, int b); Un prototipo sirve para indicar al compilador los tipos de retorno y los de los parmetros de una funcin, de modo que compruebe si son del tipo correcto cada vez que se use esta funcin dentro del programa, o para hacer las conversiones de tipo cuando sea necesario. En el prototipo, los nombres de los parmetros son opcionales, y si se incluyen suele ser como documentacin y ayuda en la interpretacin y comprensin del programa. El ejemplo de prototipo anterior sera igualmente vlido si se escribiera como: int Mayor(int, int); Esto slo indica que en algn lugar del programa se definir una funcin "Mayor" que admite dos parmetros de tipo int y que devolver valor de tipo int. No es necesario escribir nombres para los parmetros, ya que el prototipo no los usa. En otro lugar del programa habr una definicin completa de la funcin. Normalmente, los prototipos de las funciones se declaran dentro del fichero del programa, o bien se incluyen desde un fichero externo, llamado fichero de cabecera, para esto se usa la directiva #include.

Las funciones son externas por defecto. Esto quiere decir que son accesibles desde cualquier punto del programa, aunque se encuentren en otros ficheros fuente del mismo programa. Las funciones declaradas estticas slo son accesibles dentro del fichero fuente donde se definen. Cada funcin debe ser declarada. Si una funcin va usar argumentos, debe declarar variables que acepten los valores de los argumentos. La declaracin de parmetros aparece despus del nombre de la funcin al definirla. Los parmetros formales tienen que ser del mismo tipo que los argumentos usados al llamar una funcin (el compilador no dar error pero los resultados sern inesperados). Al igual que las variables locales, se pueden hacer

asignaciones a los parmetros de una funcin o usarlos en cualquier expresin vlida. Se pueden usar como cualquier otra variable. Una funcin es visible para ella misma y otras funciones desde el momento en que se define. Es visible para el propio cuerpo de la funcin, es decir, la recursividad est permitida. El cdigo de una funcin es privado a esa funcin y slo se puede acceder a l mediante una llamada a esa funcin. Las variables definidas dentro de una funcin son locales (a no ser que se definan globales) por lo que no conservan su valor de una llamada a otra (excepto si se declaran como static o estticas, entonces el compilador no las destruye y almacena su valor para la prxima llamada, aunque la variable tiene limitado el mbito al interior de la funcin). En C, todas las funciones estn al mismo nivel, es decir, no se puede definir una funcin dentro de otra funcin.

Llamadas a Funciones Las funciones son llamadas para su ejecucin desde cualquier parte del cdigo, teniendo en cuenta que antes deben haber sido declaradas (y por supuesto definidas). Para llamarlas slo hay que escribir el nombre de la funcin seguido de sus parntesis y un punto y coma (;). La llamada de una funcin se produce mediante el uso de su nombre en una sentencia, pasando una lista de argumentos que deben coincidir en nmero y tipo con los especificados en la declaracin (en otro caso se producira una conversin de tipos o resultados inesperados). En general, se pueden pasar argumentos a las funciones de dos formas, por valor y por referencia.

Pase de Parmetros Por Valor. Copia el valor de un argumento en el parmetro formal de la funcin. De esta forma, los cambios en los parmetros de la funcin no afectan a las variables que se usan en la llamada (es la llamada ms usual, es decir, en general no se pueden alterar las variables usadas para llamar a la funcin). Las variables reales no se pasan a la funcin, slo copias de su valor. Por Referencia. Una referencia o variable referencia en C++ es simplemente otro nombre o alias de una variable. En esencia una referencia acta igual que un puntero (contiene la direccin de un objeto), pero funciona de diferente modo, ya que no se puede modificar la variable a la que est asociada la referencia, pero s se puede modificar el valor de la variable asociada. La referencia copia la direccin del argumento en el parmetro. Dentro de la funcin se usa la direccin para acceder al argumento pasando un puntero, significando que los cambios hechos a los parmetros afectan a la variable usada en la llamada. Lo que se realiza es enviar a la funcin la direccin de memoria donde se encuentra la variable o dato. Cualquier modificacin si afectar a las variables utilizadas en la llamada se trabajara directamente con el original. Para enviar un valor por referencia se utiliza el smbolo & (ampersand) delante de la variable enviada. Esto le indica al compilador que la funcin que se ejecutar tendr que obtener la direccin de memoria en que se encuentra la variable. Ejemplo:

void demo(int &valor) { valor=5; cout<<valor<<endl; } void main() { int n=10; cout<<n<<endl; demo(n); cout<<n<<endl; } La salida de este programa ser: 10 5 5 Una limitacin del mtodo de paso por referencia es que se pueden pasar slo variables a la funcin. No se pueden utilizar constantes ni expresiones en la lnea de llamada a la misma. Una funcin puede hacer o no dos cosas: 1. Recibir datos 2. Retornar datos.

De esto surgen los cuatro tipos de funciones: 1. 2. No Reciben ni Retornan Reciben y no Retornan

3. 4.

No Reciben y Retornan Reciben y Retornan

Ejemplo: 1. No reciben ni retornan Las ms sencillas. Una funcin se crea de esta forma general: #include<iostream> using namespace std; void sumar() { int num1, num2, r; cout << "Numero 1: "; cin >> num1; cout << "Numero 2: "; cin >> num2; r = num1 + num2; cout << "La suma es " << r; } int main() { sumar(); } Desde el main llamamos la funcin. Una funcin siempre tiene que ir antes del main.

2. Reciben y No Retornan Para pedir los nmeros en el main y la funcin realice la suma, se debe hacer una funcin capaz de recibir datos. tipo nombre(tipo_var1 nombre_var1, tipo_var2 nombre_var2){} Para llamar la funcin hay que poner las variables que se van a enviar dentro del parntesis en el mismo orden que se declaro en la funcin: Nombre (var1, var2); #include<iostream> using namespace std; void sumar (int num1, int num2) { int r; r = num1 + num2; cout << "La suma es " << r; } int main() { int num1, num2; cout << "Numero 1: "; cin >> num1; cout << "Numero 2: "; cin >> num2; sumar (num1, num2); }

Se pide los dos nmeros en el main, se enva a la funcin, sta la suma y los muestra. 3. Retornan y No Reciben Si se quiere lo contrario, se debe pedir los nmeros en la funcin, pero se muestra el resultado en el main. Para eso es necesaria una funcin que retorne. Recibir es enviar datos del main a la funcin. Retornar es enviar datos de la funcin al main. Para retornar datos no se debe usar void como tipo y usar return. tipo nombre() { return var; } El tipo tiene que ser del tipo de variable que se quiere retornar, si la variable retorna una variable int, pues el tipo de la funcin es int. Para indicar qu variable se est retornando se usara la palabra return seguido de la variable. Usualmente esto va al final de la funcin. Para llamar a la funcin hay que preparar una variable auxiliar. var = nombre(); La variable que est retornando nuestra funcin se va a almacenar en la variable var. Este es un buen momento para recordarles que las variables declaradas entre dos llaves {} nicamente existen entre esas dos llaves. Nuestro programa quedara as: #include<iostream> using namespace std; int sumar() {

int num1, num2, r; cout << "Numero 1: "; cin >> num1; cout << "Numero 2: "; cin >> num2; r = num1 + num2; return r; } int main() { int r; r = sumar(); cout << "La suma es " << r; } 4. Reciben y Retornan Ahora el main se va a encargar de pedir los nmeros y sumar los resultados. Para eso la funcin debe recibir las variables y adems retornar el resultado. Es slo cuestin de combinar las funciones que reciben y no retornan con las que retornan y no reciben.

#include<iostream> using namespace std; int sumar (int num1, int num2) { int r;

r = num1 + num2; return r; } int main() { int num1, num2, r; cout << "Numero 1: "; cin >> num1; cout << "Numero 2: "; cin >> num2; r = sumar(num1, num2); cout << "La suma es " << r; } Funcin Main Un programa en C suele estar dividido en funciones, donde se hacen cada una de las partes del programa. El significado de la palabra main en ingles es "principal", que es la que se ejecutar en primer lugar. Por ello, main() es conocida como funcin principal o programa principal. Los parntesis tras el nombre main indican que es un nombre de funcin. Todo lo que hay entre las llaves que siguen al nombre es el cuerpo de la funcin.

El cuerpo est formado por una lista de sentencias, separadas por el carcter ;. En principio, las sentencias se procesan de forma secuencial, se comienza por la primera sentencia de la funcin main(), y despus de procesar una sentencia se contina con la siguiente. El tipo de retorno de main es un valor entero int. La funcin main, se trata de la funcin de entrada, y debe existir siempre, ser la que tome el control cuando se ejecute el programa.

Palabra Reservada "Void" La palabra reservada void define en C++ el concepto de no existencia o no atribucin de un tipo en una variable o declaracin. Como tal, puede ser usada para destacar que una funcin no recibe parmetros. El void no es un tipo de dato, se utiliza para las funciones que realizan una tarea especifican pero no retornan un valor al programa principal o a la funcin que la llamo. Una funcin void, en programacin, se denomina un procedimiento, que se diferencia con una funcin en los siguientes aspectos :

Devuelven 2 o ms valores o ninguno. No se utiliza return Se comienza el procedimiento con la palabra reservada void.

Palabra Reservada Return Las funciones pueden retornar un valor. Esto se hace mediante la instruccin return, que finaliza la ejecucin de la funcin, devolviendo o no un valor. En una misma funcin podemos tener ms de una instruccin return. La forma de retornar un valor es la siguiente: return (valor o expresin);.

El valor devuelto por la funcin debe asignarse a una variable. De lo contrario, el valor se perder. Cualquier cambio que se realice dentro de la funcin en el argumento enviado, no afectar al valor original de las variables utilizadas en la llamada. Es como si se trabajara con una copia, no con el original. Tres observaciones sobre la sentencia Return: A) La sentencia return tiene dos usos importantes. Primero, fuerza a una salida inmediata de la funcin, esto es, no espera a que se llegue a la ltima sentencia de la funcin para acabar. Segundo, se puede utilizar para devolver un valor. B) return no es una funcin sino una palabra clave del C ++, por lo tanto no necesita parntesis como las funciones, aunque tambin es correcto: return(expresin); pero teniendo en cuenta que los parntesis forman parte de la expresin, no representa una llamada a una funcin. C) En las funciones de tipo void se puede hacer: return; y de esta forma se provoca la salida inmediata de la funcin. La funcin (como hemos dicho, en realidad es una sentencia de C++ admite cualquier expresin valida . Ejemplo. int multiplica (int x, int y) { return (x*y); } En el caso de los arrays. Basta con poner los nombres en la lista de los argumentos. Un array no se puede pasar como valor, sino slo como referencia, es decir, se pasa su direccin. Veamos a continuacin un ejemplo:

Funciones Recursivas: El C++ es un lenguaje de programacin que admite la recursividad, esto es, funciones que pueden llamarse a s mismas. Cuando una funcin es llamada por s misma, se crea un nuevo juego de parmetros y variables locales, pero el cdigo ejecutable es el mismo. Es muy importante definir las condiciones dentro de la funcin para que la recursividad finalice y no genere un bucle infinito. Veamos un ejemplo

CONCLUSIN

CONCLUSIONES

La modularizacin, es una tcnica usada por los programadores para hacer sus cdigos ms cortos, ya que consiste en reducir un gran problema complejo, en pequeos problemitas ms sencillos, concentrndose en la solucin por separado, de cada uno de ellos. En C, se conocen como funciones aquellos trozos de cdigos utilizados para dividir un programa con el objetivo que, cada bloque realice una tarea determinada. En las funciones juegan un papel muy importe las variables, ya que como se ha dicho estas pueden ser locales o globales. Variables Globales: Estas se crean durante toda la ejecucin del programa, y son globales, ya que pueden ser llamadas, ledas, modificadas, etc.; desde cualquier funcin. Se definen antes del main (). Variables Locales: Estas, pueden ser utilizadas nicamente en la funcin que hayan sido declaradas.

Una funcin, termina con la llave de cerrar, pero antes de esta llave, debemos colocarle la instruccin return, con la cual devolver un valor especfico. Es necesario recalcar que si la funcin no devuelve ningn valor, es decir, es tipo void, no tiene que ir la sentencia return, ya que de lo contrario, nos dar un error. Si un programa, est constituido por ms de una funcin, las llamadas a la misma, pueden realizarse desde cualquier parte del programa, y la definicin de ellas debe ser independiente unas de otras.

BIBLIOGRAFA http://www.desarrolloweb.com/articulos/1484.php http://www.programacion.com/articulo/lenguaje_c_202/8 http://c.conclase.net/curso/?cap=003 http://www.emagister.com/curso-informatica-funciones-c/funciones-cdeclaracion-funciones http://gpd.sip.ucm.es/yolanda/ProgI0910/P1-004.pdf http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Uso_de_funciones http://www.atc.us.es/asignaturas/fi/curso_de_c/Sintaxis_del_lenguaje_C.html http://sopa.dis.ulpgc.es/so/cpp/intro_c/

Anda mungkin juga menyukai