Page 146

3.1 Definici´ on de funciones El tipo de retorno indica de qu´e tipo de datos es el valor devuelto por la funci´on como resultado (m´ as adelante veremos c´omo definir procedimientos, es decir, funciones sin valor de retorno). Puedes considerar esto como una limitaci´on frente a Python: en C, cada funci´ on devuelve valores de un u ´nico tipo. No podemos definir una funci´on que, seg´ un convenga, devuelva un entero, un flotante o una cadena, como hicimos en Python cuando nos convino. En nuestro ejemplo, la funci´ on devuelve un valor de tipo float. 1 2 3

float logaritmo (float x, int b) { float logbase, resultado ;

4

logbase = log10(b); resultado = log10(x)/logbase; return resultado ;

5 6 7 8

}

El identificador es el nombre de la funci´on y, para estar bien formado, debe observar las mismas reglas que se siguen para construir nombres de variables. Eso s´ı, no puedes definir una funci´ on con un identificador que ya hayas usado para una variable (u otra funci´on). El identificador de nuestra funci´on de ejemplo es logaritmo: 1 2 3

float logaritmo (float x, int b) { float logbase, resultado;

4

logbase = log10(b); resultado = log10(x)/logbase; return resultado;

5 6 7 8

}

Entre par´entesis aparece una lista de declaraciones de par´ ametros separadas por comas. Cada declaraci´ on de par´ ametro indica tanto el tipo del mismo como su identificador1 . Nuestra funci´ on tiene dos par´ ametros, uno de tipo float y otro de tipo int. 1 2 3

float logaritmo ( float x , int b ) { float logbase, resultado;

4

logbase = log10(b); resultado = log10(x)/logbase; return resultado;

5 6 7 8

}

El cuerpo de la funci´ on debe ir encerrado entre llaves, aunque s´olo conste de una sentencia. Puede empezar por una declaraci´on de variables locales a la que sigue una o m´as sentencias C. La sentencia return permite finalizar la ejecuci´on de la funci´on y devolver un valor (que debe ser del mismo tipo que el indicado como tipo de retorno). Si no hay sentencia return, la ejecuci´ on de la funci´on finaliza tambi´en al acabar de ejecutar la u ´ltima de las sentencias de su cuerpo, pero es un error no devolver nada con return si se ha declarado la funci´ on como tal, y no como procedimiento. Nuestra funci´ on de ejemplo tiene un cuerpo muy sencillo. Hay una declaraci´on de variables (locales) y est´ a formado por tres sentencias, dos de asignaci´on y una de devoluci´on de valor: 1 2 3

float logaritmo (float x, int b) { float logbase, resultado;

4

1 Eso

140

en el caso de par´ ametros escalares. Los par´ ametros de tipo vectorial se estudiar´ an m´ as adelante.

Introducci´ on a la Programaci´ on con C

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement