Publicado el 12 de Diciembre del 2018
519 visualizaciones desde el 12 de Diciembre del 2018
674,9 KB
58 paginas
Creado hace 7a (10/10/2016)
Objetivos
• Comprender el concepto de subprograma para escribir
programas y facilitar así las tareas de diseño descendente,
depuración...
• Saber diseñar, codificar e invocar una función para que haga
una determinada tarea.
• Entender y saber realizar el seguimiento de subprogramas
recursivos.
Tema: Subprogramación
2
Índice
• Funciones
• Declaración de funciones. Prototipo
• Definición de funciones
• Llamada a la función
• Parámetros
• Recursividad
Tema: Subprogramación
3
Funciones
• Definición y finalidad:
– Una función es un conjunto de sentencias a las que se
les asocia un nombre (identificador) y que pueden generan
un valor nuevo, calculado a partir de los datos que puede
recibir (argumentos).
– Una función en C es un segmento independiente de
código, diseñado para realizar una tarea específica.
– Las funciones facilitan el desarrollo y mantenimiento
de los programas, evitan errores y ahorran memoria y
trabajo innecesario.
– Mediante el uso de funciones se consigue un código más
limpio y claro.
Tema: Subprogramación
4
Utilidades de los Subprogramas
• Descomponer el programa en partes:
– Facilita el diseño descendente y la modularidad
– Mejora la depuración y mantenimiento
– Las partes son reutilizables
• Programa más legible
• Reducir el tamaño del programa
Tema: Subprogramación
5
Funciones
Prototipo (declaración)
de la función
Llamada
a la función
Definición
de la función
#include <stdio.h>
int cuadrado (int y);
void main ()
{
int x;
for (x=1; x<=10; x++)
printf (“%d ”, cuadrado (x) );
}
int cuadrado (int y)
{
return y * y;
}
Tema: Subprogramación
6
Funciones
• Elementos de la función:
– Identificador: es el nombre que sirve para invocar o
llamar a la función.
– Parámetros es el conjunto de datos que se le pueden
facilitar a la función para que realice su tarea.
– Cuerpo o conjunto de sentencias. Las que realizan la tarea
para la que ha sido definida la función.
– Valor de retorno. Sólo para las funciones que generan
algún valor.
Tema: Subprogramación
7
Ejemplo
#include <stdio.h>
int cuadrado (int y);
void main ()
{
int
x;
printf (" Introduce un valor entero: ");
scanf("%d", &x);
printf ("\nEl cuadrado de %d es %d", x, cuadrado(x));
}
int cuadrado (int y)
{
return y * y;
}
Obsérvese que la variable x sigue teniendo su valor inicial 3
Tema: Subprogramación
8
Ejemplo
#include <stdio.h>
int cuadrado (int y);
int positivo (int y);
void main ()
{
x;
int
printf (" Introduce un valor entero: ");
scanf("%d", &x);
if (positivo(x))
printf ("%d ", cuadrado(x));
else printf ("Numero no valido");
}
int cuadrado (int y)
{
y = y * y;
y;
return
}
int positivo (int y)
{
return y > 0;
}
Tema: Subprogramación
9
Funciones en C
• La primera función que aparece en todo programa C es la
función principal, o main. La función main es la única
función que no puede ser utilizada por ninguna otra.
• En un programa se pueden encontrar además de la función
main, funciones creadas por el programador para esa
aplicación, o funciones ya creadas e implementadas y
compiladas en librerías pertenecientes al estándar de ANSI C
o de creación propia.
• Todas las variables que se definen en una función son
variables locales, es decir, se conocen sólo en la función en
la que se definen.
Tema: Subprogramación
10
Índice
• Funciones
• Declaración de funciones. Prototipo
• Definición de funciones
• Llamada a la función
• Parámetros
• Recursividad
Tema: Subprogramación
11
Declaración de funciones: Prototipo
• La declaración se realiza a través de su prototipo. Sintaxis de
la declaración (prototipo):
tipo-función nombre-función ([tipo1 [var1]],… ,[tipoN [varN]]);
tipo-función: declara de qué tipo es el valor que devolverá la
función (puede ser cualquier tipo, si no devuelve ningún valor
entonces es de tipo void).
nombre _ función: cualquier identificador que indique lo que hace
la función.
tipo1,… tipoN: declara de qué tipo es cada uno de los valores que
la función recibirá como parámetros al ser
invocada. En la
declaración del prototipo es opcional escribir el nombre de las
variables.
Ejm:
int cuadrado (int y);
/* prototipo (declaración) de la función */
int cuadrado (int);
Tema: Subprogramación
12
Declaración de funciones: Prototipo
El prototipo de una función presenta el modo en que esa función
debe ser empleada. Qué valores, de qué tipo y en qué orden
debe recibir la función los argumentos al ser invocada.
• Todas las declaraciones de función deben preceder a la
definición del cuerpo de la función main.
• Los paréntesis
son obligatorios,
aunque
no
tenga
parámetros.
• La única función que no requiere prototipo es main(),
puesto que es la primera función que se ejecuta cuando
comienza el programa.
• No se puede declarar, ni definir, una función dentro de otra
función.
Tema: Subprogramación
13
Funciones. Ejemplos
Realizar la declaración de una función esLetra, en lenguaje
C, que reciba un carácter y devuelva un valor entero lógico
indicando si el carácter es una letra o no lo es. Es decir
devolverá 1 ó 0
Declaración:
int esLetra (char car);
Realizar la declaración de una función esLetra, en lenguaje
C, que reciba un carácter y escriba un mensaje en pantalla
indicando si el carácter es una letra o si el carácter no es una
letra.
Declaración:
void esLetra (char car);
Tema: Subprogramación
14
Índice
• Funciones
• Declaración de funciones. Prototipo
• Definición de funciones
• Llamada a la función
• Parámetros
• Recursividad
Tema: Subprogramación
15
Definición de funciones
Cabecera de la función
func_ejemplo ( char car, int n, int m, float x )
int
i, sum;
char c, letra;
…
return sum;
Cuerpo de la función
int
{
}
Tema: Subprogramación
16
Definición de funciones
Tipo de resultado
Nombre de la función
Lista de parámetros
formales
int
{
}
func_ejemplo (char car, int n, int m, float x )
int
i, sum;
char c, letra;
…
return sum;
Declaración de
variables locales
Valor que devuelve
la función
Tema: Subprogramación
17
Definición de funciones
• El formato de definición de una función es:
tipo_función nombre_función ([tipo1 var1],…,[tipoN varN])
{
}
[declaraciones de variables locales]
[sentencias]
[return [expresión];]
cuerpo
tipo_función, nombre_función:
igual que en el prototipo
([tipo1 var1],…,[tipoN varN])
lista de parámetros formales, los
nombres de las variables no son opcionales
Tema: Subprogramación
18
Definición de funciones
([tipo1 var1],…,[tipoN varN]) lista de parámetros formales, los
nombres de las variables no son opcionales.
Son los identificadores de las variables que recogen los valores
que se le pasan en la llamada.
Son variables locales a la función. Es decir: se crean cuando la
función es llamada y se destruyen cuando termina su ejecución.
Tema: Subprogramación
19
Funciones. Ejemplo
#include <stdio.h>
int sumatorio (int n);
void main ()
{
/* prototipo (declaración) de la función */
int x, y;
x = 4;
printf ("\n sumatorio de 1 a %d = %d", x, sumatorio(x));
y = 3;
printf ("\n sumatorio de 1 a %d = %d", y, sumatorio(y));
}
i, sum;
int sumatorio (int n)
{
int
sum = 0;
for (i=1; i<=n; i++)
sum = sum + i;
return sum;
}
20
Definición de funciones
• La lista de parámetros es una lista de nombres de variable
separados por comas con sus tipos asociados.
• Los parámetros reciben los valores que le pasan en la
llamada (de los argumentos).
• Una función puede no tener parámetros, los paréntesis son
obligatorios en cualquier caso.
• Si no existe parámetros puede expresarse de dos formas:
tipo_función
tipo_función
nombre_función ()
nombre_función (void)
• Todos los parámetros deben declararse individualmente,
no ocurre como en las declaraciones de variables.
Ejem.- cabecera de una declaración de función:
int f (int i, int k, float j)
/*correcto */
int f (int i, k, float j)
/*incorrecto, le falte el tipo a K */
Tema: Subprogramación
21
Definición de funciones
• El cuerpo de una función aparece entre { } aunque esté
formado por una sola sentencia.
• Las variables definidas dentro de la función son variables
locales. Una variable local comienza a existir cuando se entra
en la función y se destruye al salir de ella (se podrán usar
nombres idénticos en otras funciones).
• Los parámetros son también valores locales a la función.
• Terminación de una función: return
Fuerza la salida de la función. Toda función que no devuelva
tipo void debe tener al menos una sentencia return y a
continuación el valor que devuelve la función.
Tema: Subprogramación
22
Resultado de la función: sentencia return
• La forma general de la sentencia return es:
return [expresión];
• Si el tipo de datos de la expresión no coincide con el tipo de
retorno de la función, el tipo de datos de la expresión se
convierte al de retorno de la función.
• El valor devuelto puede ser cualquier tipo de dato conocido
por el lenguaje C
• Cuando el tipo de resultado es void (la función no devuelve
ningún valor) el
formato será: return; o no se pone la
sentencia return y la función termina cuando se encuentra }
Tema: Subprogramación
23
Función main
• La primera función que aparece (se ejecuta) en todo
programa C es la función principal (función main)
• Todo programa ejecutable tiene una y sólo una función main
• Es la única función que no puede ser utilizada (invocada) por
nadie.
• No puede llamarse a sí misma.
Tema: Subprogramación
24
Funciones
Realizar la definición de una función esLetra, en lenguaje C,
que reciba un carácter y devuelva un 1 si es una letra y 0 si
no es una letra.
Definición:
int esLetra (char c)
{
return(c>=‘A’&& c<=‘Z’)|| (c>=‘a’&& c<=‘z’);
}
De otra forma:
int esLetra (char c)
{
int vocal;
if ((c>=‘A’&& c<=‘Z’)|| (c>=‘a’&& c<=‘z’)) vocal=1;
else vocal=0;
return vocal;
}
Tema: Subprogramación
25
Funciones
Realizar la definición de una función esLetra, en lengua
Comentarios de: Tema 4 - Subprogramación (0)
No hay comentarios