



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Este apunte teórico explora la programación modular, una técnica fundamental en el desarrollo de software. Se centra en el uso de procedimientos y funciones como herramientas para dividir un programa en unidades más pequeñas y manejables, mejorando la organización, la reutilización del código y la legibilidad. Se explican los conceptos de parámetros, tipos de parámetros (entrada, salida, entrada/salida) y los métodos de pasaje de parámetros (por copia o valor, por referencia). Se incluyen ejemplos de código para ilustrar la implementación de procedimientos y funciones en la práctica.
Tipo: Apuntes
1 / 6
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Apunte teórico – Programación modular.
LA PROGRAMACION MODULAR: USO DE PROCEDIMIENTOS Y FUNCIONES.
Una estrategia para la resolución de problemas complejos con computadoras, es la división o descomposición del mismo en subproblemas más pequeños. Estos subproblemas se implementan mediante módulos o subprogramas. Los subprogramas son una herramienta importante para el desarrollo de algoritmos y programas, ya que un proyecto de programación normalmente se compone de un programa principal, y de un conjunto de subprogramas, los cuales son llamados o invocados desde el programa principal.
¿Cómo llegar a la programación modular? Como dijimos, uno de los métodos fundamentales para resolver problemas, es dividirlos en problemas más pequeños. Estos subproblemas pueden, a su vez, ser divididos repetidamente en problemas aún más pequeños, hasta que tales problemas más pequeños sean indivisibles y fáciles de resolver. Este tipo de diseño recibe el nombre de Diseño modular, descendente o top-down. Se basa en la técnica ‘divide y vencerás’ expuesta anteriormente. La resolución en este diseño, comienza con una descomposición modular y luego nuevas descomposiciones de cada módulo, constituyendo un proceso que se llama refinamientos sucesivos. Así, el problema principal se resuelve con el programa principal , y los módulos o subproblemas, con los subprogramas.
Subprogramas.
Un subprograma es una unidad de programa que desarrolla una tarea específica.
Los subprogramas tienen las mismas componentes que un programa principal: una cabecera, una zona de declaraciones locales, un conjunto de instrucciones ejecutables y un conjunto de comentarios que documentan su función. Un subprograma puede realizar las mismas tareas que un programa, la diferencia está en la manera de ejecutarlo o ponerlo en actividad: deben ser invocados o llamados por otra unidad de programa. Es decir, que para que un subprograma se ejecute, debe existir una instrucción en el programa llamador que lo invoque explícitamente al mismo, por lo cual en ese momento el S.O detiene la ejecución del programa llamador, cede el control al procedimiento invocado, crea todos los datos propios del subprograma en otra zona de la memoria RAM, y ejecuta secuencialmente cada una de las instrucciones del mismo, y recién cuando éste termine de ejecutarse, le devolverá el control al programa principal que continuará su ejecución.
Tipos de subprogramas. Los subprogramas se clasifican en: procedimientos y funciones. Un procedimiento es un subprograma que puede recibir cero o más valores desde la unidad que lo llama y lo activa, y devolver cero o más valores a dicha unidad llamadora. Una función en un subprograma que puede recibir 0 o más valores de entrada, pero siempre devuelve un solo resultado y de tipo estándar: entero, real, carácter o booleano, de una manera muy particular: en su nombre. El conjunto de datos que se envía como comunicación entre las unidades de programa recibe el nombre de parámetros.
Declaración de subprogramas. Para que un programa pueda utilizar un subprograma éste tiene que estar declarado y definido dentro del mismo. Luego de la declaración de constantes, tipos y variables, viene la zona de declaración de subprogramas.
Sintaxis:
Programa Ejemplo Constantes ….. Variables ... Procedimiento Nombre1; Declaraciones locales Hacer ... cuerpo del proc .. FinHacer FinProcedimiento
Procedimiento Nombre2 ( lista de parámetros formales ) Declaraciones locales Hacer... cuerpo del proc
Apunte teórico – Programación modular.
.. FinHacer FinProcedimiento
Función nombre3: tipo de la función; Declaraciones locales
Hacer .. cuerpo de la función .. nombre3:= valor resultante FinHacer FinFuncion …. Función nombre4( lista de parámetros formales ): tipo de la función; Declaraciones locales Hacer .. cuerpo de la función .. nombre4:= valor resultante FinHacer FinFuncion …. ……
Hacer { cuerpo del prog principal} .. nombre .. llamada o invocación al proc .. nombre2 ( lista de parámetros actuales ) … X:= nombre3 invocación a la func .. Imprimir: ‘el resultado es:’, nombre4 ( lista de parámetros actuales ) …. FinHacer FinPrograma.
Observación:
Ejemplos:
Programa primero Variables Lista de parámetros formales Ar, X,y: real 4, Per: real 5, Procedimiento rectan ( lado1: real4,2; lado2: real 4,2; ref Area: real 4,2; ref Perim : real 5,2)
{retorna el área y el perímetro de un rectánfulo}
Hacer Perim:= 2lado1 + 2lado Area:=lado1 * lado Finhacer finprocedimiento
Hacer {del programa principal} Imprimir: ‘ingrese el primer lado del rectangulo’
Apunte teórico – Programación modular.
fin funcion;
b) por referencia : bidireccionales, se utilizan para llevar información desde el programa principal al subprograma y viceversa. Se antepone al parámetro la palabra reservada ref y de esa manera, al realizarse el llamado al subprograma, el parámetro formal se convierte en un puntero o una referencia a la zona de la memoria del parámetro actual, de manera tal que cualquier cambio que se haga sobre el parámetro formal en realidad se estará llevando a cabo sobre el parámetro actual. Este pasaje se usa con parámetros de salida y de Entrada/salida.
Ej. Realizar un procedimiento que intercambie el valor de dos variables.
programa cambio; variables val1, val2: real 5,2;
procedimiento intercam ( ref a: real 5,2; ref b: real 5,2); variables aux: real 5,2; hacer aux:= a a:= b b:= aux fin hacer fin procedimiento;
hacer leer: val1,val imprimir: 'valores originales:', val1, val intercam(val1,val2) imprimir: 'valores intercambiados:', val1, val fin hacer fin programa.
Correspondencia entre parámetros.
En las llamadas o invocaciones a los subprogramas aparecen 2 partes significativas: el nombre del subprograma llamado y la lista de parámetros actuales o reales. Cuando se ejecuta la sentencia de llamada, dichos parámetros actuales deben tener valor. En el encabezamiento de los subprogramas también aparece el nombre del mismo, y la lista de parámetros formales o ficticios. Son estos parámetros los que reciben el valor de los parámetros actuales cuando se llama al subprograma. Por esta razón, los parámetros actuales deben coincidir en número, orden y tipo con los formales. Es decir que existe una correspondencia entre los parámetros actuales y los formales.
Reglas.
Las ventajas más destacables de usar subprogramas son :
Apunte teórico – Programación modular.
Conclusión: Un programa que se ha desarrollado usando la técnica de diseño modular, que está bien organizado e implementado utiliza parámetros para compartir y transmitir datos entre los módulos del mismo. Es indispensable conocer el método de transmisión de datos adoptado por el lenguaje de programación elegido y es fundamental tener en claro cuál es el uso que se le ha de dar a cada parámetro (es decir de E, E/S, o S) para poder seleccionar cuál es el pasaje de parámetros adecuado: copia o referencia.
Ejemplos.
Escribir un programa que dados los lados de un rectángulo calcule e imprima el área y el perímetro del mismo.
Programa ejemplo; Variables Lado1, lado2: entero 1 Area, perim: entero 2
Procedimiento Calculo ( base: entero1 ; altura: entero 1; REF ar: entero 2; REF per: entero 2) Hacer per:= 2* base + 2altura ar:=basealtura Finhacer Finprocedimiento
Hacer Imprimir: ‘ingrese lado mayor y lado menor’ Leer: lado1, lado Calculo (lado1, lado2, area, perim) Imprimir:’area’, area, ‘Perimetro’, perim Finhacer Finprograma.
Escribir un programa que permita calcular el cubo de un conjunto de números dados. El proceso finaliza cuando se lee un 0.
Programa resul; variables aux, num : real 4,2;
funcion cubo ( val: real 4,2) : real 4,2; hacer cubo := val * val * val fin hacer fin funcion;
hacer imprimir: 'ingrese valor:' leer: num repetir mientras (num <> 0 ) imprimir: 'el cubo de:' , num, 'es:', cubo(num) imprimir: 'ingrese otro valor. 0 para finalizar el proceso' leer: num fin repetir mientras fin hacer fin programa.
Ej.: Calcular el máximo entre 2 nº dados.
programa calcul; variables max, x, y: real 4,2; función maxim( vx: real 4,2; vy : real 4,2): real 4,