1 / 19

Tema 6

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. Tema 6. Descomposición modular: funciones Conceptos:

zinna
Download Presentation

Tema 6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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. 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. Bibliografía • “Diseño e Implementación de Programas en Lenguaje C”. P.Alonso, F.García, E.Onaindia. SPUPV-98.367. • “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.97.498. Descomposición Modular. Funciones

  4. Módulo Principal Módulo 1 Módulo 2 Módulo 3 Módulo 1.2 Módulo 2.1 Módulo 2.2 Módulo 3.1 Módulo 1.1 Módulo 2.2.1 Módulo 2.2.2 Módulo 3.1.1 Definición y concepto de función 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. 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. 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. 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. main main llama a suma con los valores 2 y 3 2,3 5 suma le devuelve un 5 suma 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 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. 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

  17. 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

  18. 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

  19. 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

More Related