llamado de una funcion

6
35 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION Llamados de Función Una vez que en su programa se ha definido una función, esta puede ser llamada las veces que sean necesarias. Para llamar a una función basta con hacer referencia a su nombre y si la misma requiere de parámetros estos deberán indicarse dentro de paréntesis. Para llamar a una función que no requiera de parámetros se deberá indicar el nombre de la misma seguida de paréntesis vacios. Por ejemplo, para llamar una función llamada “cuadrado”, se escribiría: cuadrado(); Si la función cuadrado utiliza un parámetro de tipo int, se escribiría: cout << cuadrado(25); ó cout << cuadrado(X); Si la función cuadrado utiliza un parámetro y además devuelve un valor, su llamada sería: R = cuadrado(X); // guardar en R el cuadrado de X Prototipos: para utilizar una función en un programa, se requiere en primer lugar declararla y después definirla. La declaración de la función le indica al compilador el nombre, el tipo de dato devuelto por la función y los parámetros pasados a la función. A la declaración de una función se le llama también el prototipo Un prototipo es una declaración de una función. Consiste simplemente en el encabezado de la función, terminado con punto y coma (;) lo que hace es avisar al compilador, como se va a llamar la función y si recibe y devuelve información La estructura de un prototipo es: <tipo> func(<lista de declaración de parámetros>); Ejemplo: int Mayor(int a, int b); // es un prototipo de función que devuelve un entero y recibe dos parámetros enteros. Aunque C permite realizar el prototipo de la siguiente manera: int Mayor(int,int); Sin necesidad de escribir el nombre de las variables; entonces La estructura de un programa en C quedaría así: [directivas del pre-procesador: include y define] [declaración de variables y constantes globales]

Upload: eduardo-andres-rubiano

Post on 12-Sep-2015

219 views

Category:

Documents


4 download

DESCRIPTION

como se llama una funcion

TRANSCRIPT

  • 35

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNADESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIACONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

    Llamados de Funcin

    Una vez que en su programa se ha definido una funcin, esta puede ser llamadalas veces que sean necesarias. Para llamar a una funcin basta con hacerreferencia a su nombre y si la misma requiere de parmetros estos debernindicarse dentro de parntesis.

    Para llamar a una funcin que no requiera de parmetros se deber indicar elnombre de la misma seguida de parntesis vacios. Por ejemplo, para llamaruna funcin llamada cuadrado, se escribira:

    cuadrado();

    Si la funcin cuadrado utiliza un parmetro de tipo int, se escribira:cout

  • 36

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNADESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIACONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

    [prototipos de funciones]funcin main ()[definiciones de funciones] //definidas en los prototipos

    Recursividad

    Esta es la propiedad que tienen las funciones en C de poder llamarse a smismas. Se dice que una funcin es recursiva cuando se autollama. No todaslas funciones pueden llamarse a s mismas (ser recursivas), debenestar diseadas especialmente para que tengan un final y no se conviertan enciclos o bucles infinitos.

    Es importante notar que cuando una funcin se llama a s misma, una nuevacopia de esta funcin es la que se ejecuta. Las variables locales de la segundafuncin no interfieren con las variables locales de la primera, as mismo, lasvariables locales no se pueden afectar mutuamente. Se tomar como ejemploun programa que calcule el factorial de un nmero entero introducido por elusuario. El factorial est definido como el producto del nmero en cuestin portodos los nmeros enteros menores que l, de tal manera que el factorial de5=5*4*3*2*1 = 120. El cdigo puede quedar as:

    #include double factorial(int valor);

    int K=1; // variable global, para un contador generalint main(){

    int num;cout num;cout

  • 37

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNADESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIACONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

    }

    1. La funcin se declara de tipo doble, puesto que los valores que retorna lafuncin pueden ser demasiado grandes.

    2. Tambin se utiliza una variable global (K), que sirve de contador, paradeterminar el nmero de iteraciones que la funcin se repite

    3. El programa empieza solicitndole un nmero entero y despus llama porprimera vez a la funcin factorial ( ). La recursividad necesita una condicinpara terminar el proceso en el momento especifico, por sta razn, la funcinfactorial () determina en primer lugar si el valor pasado como parmetro de lafuncin es igual a 1, en cuyo caso la funcin retorna 1. Si el valor delparmetro es mayor que 1, entonces la funcin factorial ( ) se llama a smisma tomando como parmetro el valor original menos uno, multiplicandoste valor por el valor del parmetro original y almacenando elresultado en la variable llamada resultado. (se recomienda realizar unaprueba de escritorio para entender un poco ms el movimiento de lafuncin y sus iteraciones).

    Tipos de funciones

    En atencin a su formato, se pueden encontrar diferentes tipos de funciones, acontinuacin se analizarn las ms importantes.

    Funciones que devuelven un tipo void

    Cabe recordar que void significa vacio, por lo tanto las funciones que utilizan estetipo no retornan valores. Si la funcin no devuelve nada, entonces no se debeincluir en su codificacin la sentencia return, aunque su uso es opcional.

    Para llamar una funcin que devuelve un tipo void, slo se necesita digitar sunombre en una sentencia, e incluir parmetros si as fue diseada.

    Ahora bien, estas funciones pueden tener o no parmetros

    ? Funcin que retorna tipo void sin parmetros:void Nom_Funcion( )Ejemplo:

    void Mensaje( ) { system (cls); cout

  • 38

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNADESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIACONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

    ? Funcin que retorna tipo void con parmetros:void Nom_Funcin( parmetro 1, parmetro 2, )Ejemplo:void Edad (int ed ){ char nombre[30] = Marcela ; cout

  • 39

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNADESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIACONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

    }La funcin recibe dos valores de tipo entero; al interior de la funcin losvalores recibidos se suman y mediante la instruccin return se devuelve elresultado de la suma.

    Paso de parmetros

    En C++ hay dos mtodos para realizar el paso de parmetros a una funcin, estosson: paso por valor y paso por referencia.

    Es de aclarar que por defecto se utiliza el paso de argumentos por valor, aexcepcin de las situaciones en que se trabaja con arreglos.

    Paso por valor

    El paso por valor implica que se realiza una copia de los argumentos, antes deque stos pasen realmente a la funcin.

    Esta tcnica funciona muy bien cuando se est utilizando varibles simples, porejemplo nmeros o caracteres.

    Ejemplo:void Fun_paso_valor(int x, char y, int z){ }

    La llamada a esta funcin sera:Fun_paso_valor(3, a, 10);

    Paso por referencia

    Este mtodo posibilita cambiar el valor de los argumentos dentro de la funcin ydevolverlo modificado a la funcin o programa desde donde se llama.

    Este mtodo es utilizado cuando se utiliza como parmetros array y estructuras.

    Ejemplo:void fun_por_referencia(int *x, int *y){ }

  • 40

    UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNADESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIACONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

    La llamada a la funcin sera: fun_por_referencia(&x, &y)

    El operador & en C++ indica la direccin de una variable, dicho en otros trminoslo que se est enviando es la direccin de memoria donde se encuentraalmacenada la variable.

    Ampliar informacin consultando:Carretero Prez, Jesus, Garcia Carballeira Felix, Garcia Snchez Jos Daniel,Perez Menor Jos Maria, Snchez Garcia Luis Miguel. Pags. 94 a 96. Disponibleenhttp://books.google.es/books?id=hERLHWu5vGIC&printsec=frontcover&dq=c%2B%2B&hl=es&sa=X&ei=Jal7VNG7CcWogwTSioCYAg&ved=0CDsQ6AEwBA#v=onepage&q=c%2B%2B&f=false