Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Descomposición Modular. Funciones
Tema 6 Descomposición modular: funciones Objetivos: Descomponer los problemas complejos en problemas más sencillos, Reutilizar el código, Facilitar la lectura de los programas Descomposición Modular. Funciones
2
Descomposición Modular. Funciones
Tema 6 Descomposición modular: funciones Conceptos: Definición, concepto de función y división de un programa en funciones. Transferencia de información entre funciones. La función main Paso de argumentos a funciones. Declaración por adelantado de funciones. Variables Locales y Globales. Trazas. Descomposición Modular. Funciones
3
Descomposición Modular. Funciones
Bibliografía “Diseño e Implementación de Programas en Lenguaje C”. P.Alonso, F.García, E.Onaindia. SPUPV “Programación Estructurada en C”. J.L.Antonakos K.C. Mansfield. Prentice-hall, 1997 “Metodología y Tecnología de la Programación”. A. Molina, P. Letelier, P. Sánchez, J. Sánchez SPUPV Descomposición Modular. Funciones
4
Definición y concepto de función
Módulo 1 Módulo Principal Módulo 3 Módulo 2 Módulo 1.1 Módulo 1.2 Módulo 2.1 Módulo 2.2 Módulo 3.1 Módulo 3.1.1 Módulo 2.2.1 Módulo 2.2.2 Nivel 0 de descomposición Datos Nivel 1 de descomposición Nivel 2 Nivel 3 de descomposición Descomposición Modular. Funciones
5
Definición y concepto de función II
Dos partes: Cabecera Cuerpo Descomposición Modular. Funciones
6
Cabecera de una función
Cabecera, se define el nombre de la función y el modo en que se va a realizar la transferencia de datos de esa función. tipo_dato nombre_funcion (lista_argumentos) tipo_dato: tipo de datos que devuelve la función. nombre_funcion: nombre que identifica a la funcion. lista_argumentos: Conjunto de tuplas (tipo_dato variable) separadas por comas a las que se denomina “argumentos formales” y será donde se almacenen los datos transferidos a la función en su llamada. Descomposición Modular. Funciones
7
Descomposición Modular. Funciones
Cuerpo de una función Cuerpo: Se encuentra encerrado entre llaves y contiene la declaración de las variables que se van a emplear en la función y a continuación un conjunto de instrucciones que realizan la tarea para la cual se diseñó la función. Descomposición Modular. Funciones
8
Transferencia de información
Ejemplo: Función que suma dos números enteros: int sumar (int a, int b) { int suma; suma=a+b; return suma; } Parámetros formales Tipo de dato que puede o no devolver la función Dato que se devuelve Descomposición Modular. Funciones
9
Transferencia de información
Otra forma de implementarla: void sumar (int a, int b) { int suma; suma=a+b; printf(“El valor de la suma es %d”, suma); } Parámetros formales Tipo de dato void Es necesario mostrar el resultado por pantalla Descomposición Modular. Funciones
10
Descomposición Modular. Funciones
Llamada a una función Llamada a una función: Para llamar a ejecutar a las instrucciones que contiene una función, debemos de nombrarla y usualmente pasarle unos valores que coinciden en número y tipo de dato con los parámetros formales de la cabecera de la función. A estos valores se les denomina parámetros actuales. El código de la función “invocada” empezará a ejecutarse con los valores pasados en cada una de las posiciones de memoria que apuntan los nombres de variable de los parámetros formales respectivamente. sumar (2,3) int sumar (int a, int b) { ... Descomposición Modular. Funciones
11
Descomposición Modular. Funciones
Ejemplo Completo: int suma (int a, int b) { int suma; suma=a+b; return suma; } void main () { int sum; sum=suma(2,3); printf(“El valor de sumar %d y %d es %d”,a,b,sum); ó printf(“El valor de sumar %d y %d es %d”,a,b,suma(2,3)); Descomposición Modular. Funciones
12
Descomposición Modular. Funciones
La función main Main: main es la función principal de un programa en C y será la encargada de llamar a ejecutarse a las demás funciones del programa. Todo programa en C debe tener una función main. Las instrucciones de un programa en C que comienzan a ejecutarse las primeras son las de la función principal Función invocadora main suma 2,3 5 main llama a suma con los valores 2 y 3 suma le devuelve un 5 Función invocada Descomposición Modular. Funciones
13
Paso de argumentos a funciones
A las funciones se les puede pasar constantes, variables simples y compuestas y resultados de expresiones: suma(2,3); /* constantes*/ suma(a,b+c/2) /* variables y expresiones*/ Descomposición Modular. Funciones
14
Paso de parámetros (argumentos)
Dos son las formas en que se pasa información a las funciones. Por valor y por referencia. Paso de argumentos por valor: Se produce una copia del valor con el que se llama a la función en la variable definida en la cabecera de la función. Las variables int, char, float, struct, etc..., constantes y el resultado de cualquier expresión se pasan de este modo. Es necesario devolver el resultado o mostrarlo por pantalla. Descomposición Modular. Funciones
15
Paso de argumentos por valor
int sumar (int a,int b) { int rdo; rdo=a+b; return rdo; } .... printf (“el rdo es: %d“,sumar(2,3)); Memoria rdo a 2 5 b 3 Descomposición Modular. Funciones
16
Descomposición Modular. Funciones
Paso de parametros Paso de argumentos por referencia: Se pasa una dirección de memoria que corresponde al lugar donde se encuentra la variable con la que se llama a la función, creándose un nuevo apuntador a esa dirección de memoria cuyo nombre es el que aparece en la cabecera de la función. Los vectores siempre se pasan por referencia. Descomposición Modular. Funciones
17
Paso de argumentos por referencia
Memoria int cargarvector (int v[ ]) { int i; for (i=0;i<N;i++) scanf(“%d”,v[i]); } .... int vector[4]; cargarvector(vector); vector 2 ? 3 ? ? ? v Se pasa una dirección a la cual apunta v, con lo cual cualquier modificación sobre v es también sobre vector Descomposición Modular. Funciones
18
Variables locales y globales
Ámbito de una variable: es aquella porción del programa en la que se puede acceder a una variable, para leer su valor o escribirlo. Variable local: su ámbito se restringe a la función que la ha declarado, una vez se ejecuta esta función la variable desaparece. Variable global: se define fuera del cuerpo de cualquier función (normalmente al principio del programa) y su ámbito es todo el programa. Descomposición Modular. Funciones
19
Variables locales y globales con el mismo nombre
Existen casos en los cuales los nombres de una variable global y una local pueden coincidir en un trozo de programa, en este caso son las variables locales a las que se hace referencia. Existen también casos en que coincide el nombre de un argumento formal y una variable global, siendo el argumento formal al que se hace referencia en vez de a la variable global. Descomposición Modular. Funciones
20
Descomposición Modular. Funciones
Las trazas Toda esta duplicidad de nombres puede inducir a errores pues se piensa que se está utilizando la variable global y es la local o arg. formal el que se está referenciando, para seguir estos programas se emplean las trazas. Una traza es el seguimiento de una variable a lo largo de la ejecución del programa. Descomposición Modular. Funciones
21
Descomposición Modular. Funciones
Ejercicios Calcular: Para ello crear una función que calcule el factorial de un número y llamarla con los valores m y (m-n). Descomposición Modular. Funciones
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.