Programación Modular y Estructyrada

24,218 views

Published on

Published in: Travel
1 Comment
4 Likes
Statistics
Notes
  • ME TIENE CONFUNDIDO LO DE PSEUDOCODIGOS CASI NO ENTIENDO!!!!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
24,218
On SlideShare
0
From Embeds
0
Number of Embeds
159
Actions
Shares
0
Downloads
442
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Programación Modular y Estructyrada

  1. 1. Programación Modular y Estructurada IUTE – Mérida Prof: Duberlis González
  2. 2. Tipos de programación <ul><li>Los tipos o técnicas de programación son bastante variados, aunque puede que muchos de los lectores sólo conozcan una metodología para realizar programas. En la mayoría de los casos, las técnicas se centran en programación modular y programación estructurada, pero existen otros tipos de programación. Los explicaremos a lo largo del artículo. </li></ul>
  3. 3. Programación estructurada (PE) <ul><li>La programación estructurada esta compuesta por un conjunto de técnicas que han ido evolucionando aumentando considerablemente la productividad del programa reduciendo el tiempo de depuración y mantenimiento del mismo. Esta programación estructurada utiliza un número limitado de estructuras de control, reduciendo así considerablemente los errores. Esta técnica incorpora: Diseño descendente (top-dow): el problema se descompone en etapas o estructuras jerárquicas. </li></ul><ul><li>Recursos abstractos (simplicidad): consiste en descompones las acciones complejas en otras más simples capaces de ser resueltas con mayor facilidad. </li></ul><ul><li>Estructuras básicas: existen tres tipos de estructuras básicas: </li></ul><ul><ul><li>Estructuras secuénciales: cada acción sigue a otra acción secuencialmente. La salida de una acción es la entrada de otra. </li></ul></ul><ul><ul><li>Estructuras selectivas: en estas estructuras se evalúan las condiciones y en función del resultado de las mismas se realizan unas acciones u otras. Se utilizan expresiones lógicas. </li></ul></ul><ul><ul><li>Estructuras repetitivas: son secuencias de instrucciones que se repiten un número determinado de veces. </li></ul></ul>
  4. 4. Las principales ventajas de la programación estructurada <ul><li>Los programas son mas fáciles de entender </li></ul><ul><li>Se reduce la complejidad de las pruebas </li></ul><ul><li>Aumenta la productividad del programador </li></ul><ul><li>Los programas queden mejor documentados internamente. </li></ul><ul><li>Un programa esta estructurado si posee un único punto de entrada y sólo uno de salida, existen de &quot;1 a n&quot; caminos desde el principio hasta el fin del programa y por último, que todas las instrucciones son ejecutables sin que aparezcan bucles infinitos. </li></ul>
  5. 5. Programación modular <ul><li>En la programación modular consta de varias secciones dividas de forma que interactúan a través de llamadas a procedimientos, que integran el programa en su totalidad. En la programación modular, el programa principal coordina las llamadas a los módulos secundarios y pasa los datos necesarios en forma de parámetros. A su vez cada modulo puede contener sus propios datos y llamar a otros módulos o funciones. </li></ul>
  6. 6. <ul><li>Algunas teorías de la programación se centran en las técnicas de programación modular y programación estructurada. El diseño de un programa entraña la descomposición del problema en módulos o partes independientes – programación modular –, la programación de cada módulo mediante métodos estructurados – programación estructurada – y su unión posterior </li></ul>
  7. 7. Programación Estructurada. <ul><li>Ésta incorpora entre otros elementos: el diseño descendente, recursos abstractos y estructuras básicas. </li></ul><ul><li>Recursos abstractos. </li></ul><ul><li>Consiste en descomponer una determinada acción compleja en términos de un número de acciones más simples capaces de resolverla. </li></ul><ul><li>Diseño descendente. </li></ul><ul><li>Consiste en efectuar una relación entre las sucesivas etapas de estructuración. Es decir, se descompone el problema en etapas o estructuras jerárquicas, de modo que se puede considerar cada estructura desde dos puntos de vista: lo que hace y cómo lo hace </li></ul>
  8. 8. <ul><li>Teorema de la programación estructurada. </li></ul><ul><li>Se ha demostrado que un programa propio puede ser escrito utilizando solamente tres tipos de estructuras de control: —secuenciales, selectivas y repetitivas. Un programa es propio si posee un sólo punto de entrada y uno de salida, si existen caminos desde el inicio hasta el fin que se pueden seguir y que pasan por todas las partes del programa, y si todas las instrucciones son ejecutables sin que hayan bucles infinitos. </li></ul><ul><li>Estructura secuencial. </li></ul><ul><li>Es aquella en que una acción sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente. </li></ul><ul><li>Estructura selectiva. </li></ul><ul><li>Se utilizan para tomar decisiones lógicas. En éstas se evalúa una condición y en función del resultado de la misma se realiza una opción u otra. Las condiciones se especifican usando expresiones lógicas. En pseudocódigo éstas palabras son if, then, else. Las estructuras selectivas pueden ser: – simples, dobles o múltiples. </li></ul>
  9. 9. <ul><li>Selectivas simples . </li></ul><ul><li>Ejecuta una determinada acción cuando se cumple una determinada condición. La selección if – then (si – entonces) evalúa la condición y si es verdadera ejecuta la acción de lo contrario no hará nada. </li></ul><ul><li>Selectiva doble. </li></ul><ul><li>Permite elegir entre dos opciones posibles en función del cumplimiento o no de una determinada condición. Si la condición es verdadera, se ejecuta la acción 1, si es falsa, se ejecuta la acción 2. La selectiva en pseudocódigo es if – then – else. </li></ul><ul><li>Selectivas múltiples . </li></ul><ul><li>La estructura de selección múltiple (case en pseudocódigo) evaluará una expresión que podrá tomar n valores distintos 1, 2, 3, 4, …..n. Según sea el valor en la condición, se realizará una de las n acciones. </li></ul>
  10. 10. <ul><li>Estructuras repetitivas. </li></ul><ul><li>Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se llaman bucles, e iteración al hecho de repetir la ejecución de una secuencia de acciones. </li></ul><ul><li>Estructura mientras (while). </li></ul><ul><li>La estructura repetitiva mientras es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condición. Cuando se ejecuta esta instrucción, la primera cosa que sucede es que se evalúa la condición. Si la expresión es verdadera, entonces se ejecuta el cuerpo del bucle. Este proceso se repite una y otra vez mientras la condición sea verdadera. </li></ul><ul><li>Estructura repetir hasta (do/while). </li></ul><ul><li>Se ejecuta hasta que se cumpla una condición determinada que se comprueba al final del bucle, esto permite que la iteración se ejecute al menos una vez antes de que la condición sea evaluada. </li></ul>
  11. 11. <ul><li>Estructuras desde/para (for) . </li></ul><ul><li>Se utilizan las estructuras for cuando se conocen con certeza el número de veces que desea repetir un bucle, es decir, cuando es un número fijo de veces. </li></ul><ul><li>Estructura de decisión anidadas. </li></ul><ul><li>Se tiene una estructira de decisión anidada cuando una estructura if – then – else contiene otra dentro de sí, y ésta a su vez contiene otra dentro de sí. Estas estructuras contendrán varios si - entonces dentro de otros. Debido a que este tipo de estructuras pueden ser confusas, se implementa la identación para evitar perder el hilo de dónde comienza y dónde termina cada estructura. </li></ul>
  12. 12. Ventajas de la programación estructurada <ul><li>Con la programación estructurada elaborar programas de computador sigue siendo un albor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este nuevo estilo podemos obtener las siguientes ventajas: </li></ul><ul><li>Los programas son más fáciles de entender. Un programa estructurado puede ser leído en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lógica, lo cual es típico de otros estilos de programación. La estructura del programa es más clara puesto que las instrucciones están mas ligadas o relacionadas entre sí, por lo que es más fácil comprender lo que hace cada función. </li></ul><ul><li>Reducción del esfuerzo en las pruebas. El programa se puede tener listo para producción normal en un tiempo menor del tradicional; por otro lado, el seguimiento de las fallas ( debugging ) se facilita debido a la lógica más visible, de tal forma que los errores se pueden detectar y corregir más fácilmente. </li></ul><ul><li>Reducción de los costos de mantenimiento. </li></ul><ul><li>Programas más sencillos y más rápidos. </li></ul><ul><li>Aumento de la productividad del programador. </li></ul><ul><li>Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en programación. </li></ul><ul><li>Los programas quedan mejor documentados internamente. </li></ul>
  13. 13. RESOLUCIÓN DE PROBLEMAS A TRAVÉS DE LA COMPUTADORA. <ul><li>El proceso de resolución de problemas con computadoras conduce a la escritura de un programa y su ejecución en la misma. Aunque el proceso de diseñar programas es esencialmente un proceso creativo, se puede considerar una serie de fases o pasos comunes que generalmente deben seguir los programadores. Estas fases son las siguientes </li></ul><ul><li>Definición del Problema: Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa . </li></ul><ul><li>Análisis del Problema: Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir: </li></ul><ul><ul><ul><ul><li>Los datos de entrada. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Cual es la información que se desea producir (salida). </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Los métodos y fórmulas que se necesitan para procesar los datos. </li></ul></ul></ul></ul>
  14. 14. <ul><li>Codificación. </li></ul><ul><li>La codificación es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o pseudocódigo), en una serie de instrucciones detalladas, en un código reconocible por la computadora, la serie de instrucciones detalladas se le conoce como código fuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel. </li></ul><ul><li>Prueba y Depuración: </li></ul><ul><li>Los errores humanos dentro de la programación de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solución sin errores se le llama depuración. La depuración o prueba resulta una tarea tan creativa como el mismo desarrollo de la solución, por ello se debe considerar con el mismo interés y entusiasmo. </li></ul>
  15. 15. <ul><li>Documentación: </li></ul><ul><li>Es la guía o comunicación escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra. Por ello la documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones. </li></ul><ul><li>La documentación se divide en tres partes: </li></ul><ul><li>Documentación Interna: son los comentarios o mensajes que se añaden al código fuente para hacer mas claro el entendimiento de un proceso. </li></ul><ul><li>Documentación Externa: se define en un documento escrito los siguientes puntos: </li></ul><ul><li>Descripción del Problema. </li></ul><ul><li>Nombre del Autor. </li></ul><ul><li>Algoritmo (diagrama de flujo o pseudocódigo). </li></ul><ul><li>Diccionario de Datos. </li></ul><ul><li>Código Fuente (programa). </li></ul><ul><li>Manual del Usuario: describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado. </li></ul>
  16. 16. <ul><li>Mantenimiento: </li></ul><ul><li>Se lleva acabo después de terminado el programa, cuando se detecta que es necesario hacer algún cambio, ajuste o complementar al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado. </li></ul>
  17. 17. Programación Modular <ul><li>Es evidente que si esta metodología nos lleva a tratar con subproblemas , entonces también tengamos la necesidad de poder crear y trabajar con subprogramas para resolverlos. A estos subprogramas se les suele llamar módulos , de ahí viene el nombre de programación modular. En Pascal disponemos de dos tipos de módulos: los procedimientos y las funciones </li></ul>
  18. 18. <ul><li>Veamos un ejemplo de cómo emplear el diseño descendente para resolver un problema. Supongamos que un profesor quiere crear un programa para gestionar las notas de sus alumnos. Quiere que dicho programa le permita realizar tareas tales como asignar notas, cambiar notas, ver las notas según distintas calificaciones, etc. A continuación tines un esquema que representa una de las posibles divisiones del problema en módulos. </li></ul>
  19. 19. <ul><li>Los procedimientos </li></ul><ul><li>Un procedimiento es un subprograma que realiza una tarea específica. Para invocarlo , es decir, para hacer que se ejecute, basta con escribir su nombre en el cuerpo de otro procedimiento o en el programa principal. Pero, hay que tener muy en cuenta que su declaración debe hacerse antes de que sea llamado por otro módulo. </li></ul><ul><li>Una vez que has construido varios programillas en Pascal , crear un procedimiento no es nada complicado, pues tiene prácticamente la misma estructura que un programa. Veamos las secciones que comparten y no comparten un procedimiento y un programa principal: </li></ul><ul><li>Mientras que en el programa la cabecera consta de la palabra reservada program seguida del nombre del programa, en un procedimiento se compone de la palabra procedure seguida del nombre del procedimiento y una lista de parámetros que es opcional. </li></ul><ul><li>Las secciones de declaración de constantes ( const ), de tipos ( type ) y de variables ( var ) también pueden aparecer en la estructura de cualquier procedimiento. </li></ul><ul><li>Respecto al cuerpo del procedimiento , decir que al igual que el de un programa se delimita por las palabras reservadas begin y end , y en su interior puede contener sentencias simples o estructuradas. </li></ul><ul><li>Por último, comentar que ambos difieren en el signo de puntuación que marca su final, ya que en un programa es el punto y en un procedimiento es el punto y coma. </li></ul><ul><li>Todas estas diferencias y similitudes que hemos comentado, puedes apreciarlas en los siguientes esquemas que representan las estructuras de un programa y de un procedimiento: </li></ul>
  20. 21. <ul><li>Los parámetros (argumentos) </li></ul><ul><li>Como habrás observado, con los procedimientos nos llega un concepto nuevo, el de los parámetros. A los parámetros también se les conoce como argumentos y tienen la misión de comunicar al procedimiento con el programa que lo llama. Por ejemplo, si quieres hacer un subprograma que multimplique dos números, lo más cómodo es que al llamar al procedimiento le pases los valores que participarán en la operación. Podría ser algo como: </li></ul>
  21. 22. <ul><li>En el ejemplo anterior se observan las dos clases de argumentos que existen en Pascal : </li></ul><ul><li>Los parámetros por valor </li></ul><ul><li>Los parámetros por referencia </li></ul><ul><li>Los parámetros por valor tiene dicho nombre porque lo que recibe el subprograma no son más que copias de los valores de los datos que el programa invocador le pasa. Por tanto si en el procedimiento modificamos alguno de estos valores, los datos originales permaneceran inalterados . En el ejemplo , son a y b. </li></ul><ul><li>En cambio, en los parámetros por referencia lo que se pasa al procedimiento son los datos en sí. Y si éste los modifica, los cambios permanecerán una vez que la ejecución vuelva al módulo que invocó al procedimiento. Se utilizan para obtener valores de los cálculos que haga un subprograma, y en el anterior ejemplo es rdo </li></ul>
  22. 23. <ul><li>¿ Cómo se especifica que un parámetro es por valor o por referencia? </li></ul><ul><li>Pues es tan sencillo como anteponer la palabra reservada var cuando quieres que un argumento sea considerado como referencia . Esto se observa claramente con el parámetro rdo del ejemplo. </li></ul><ul><li>nota: si no tienes muy clara la diferencia entre parámetros por valor y por referencia, te aconsejo que vayas al ejemplo sobre procedimientos del que dispones en este tema, estoy seguro que te ayudará. </li></ul>
  23. 24. <ul><li>Las variables globales y locales </li></ul><ul><li>Despues de estudiar los procedimientos de Pascal y las diferencias entre parámetros por valor y por referencia, es hora de tratar otro aspecto clave en la programación modular: la distinción entre variables globales y locales. </li></ul><ul><li>Veamos un ejemplo que, como siempre, nos ayudará en la explicación de estos nuevos conceptos: </li></ul>
  24. 25. <ul><li>Una variable local es una variable que está declarada dentro de un subprograma, y se dice que es local al subprograma. Y lo que la caracteriza es que su valor sólo está disponible mientras se ejecuta el subprograma. Dicho de otra manera, el programa principal no tiene conocimiento alguno de las variables locales de sus procedimientos y funciones. </li></ul><ul><li>Las variables declaradas en la sección correspondiente a esta labor en el programa principal se denominan variables globales. Y a diferencia de las locales, su valor está disponible tanto en el cuerpo del programa principal como en el de cualquiera de los subprogramas </li></ul>
  25. 26. <ul><li>Las funciones predefinidas </li></ul><ul><li>Este tema trata de la programación modular, y como ya hemos dicho, Pascal nos ofrece dos tipos de módulos. Uno ya lo hemos comentado, los procedimientos, y el otro, es el que vamos a tratar ahora, las funciones. </li></ul><ul><li>La división a más alto nivel que se suele hacer con las funciones, es la que las divide según quien sea el autor de las mismas. Así tenemos funciones predifinidas o estándar, y funciones de usuario. Las de usuario las trataremos más adelante. Ahora nos centraremos en las predefinidas. </li></ul><ul><li>Las funciones predefinidas, también llamadas estándar , son las que el propio lenguaje Pascal pone a disposición del programador. Por ejemplo, si necesitas calcular el valor absoluto de un número, no es necesario que construyas la función, pues ya se dispone de una que lo hace. </li></ul><ul><li>Dependiendo del tipo de compilador de Pascal que uses, dispondrás de más o menos funciones estándar, pero siempre tendrás un grupo básico que comparten todos. A continuación se citan unas cuantas funciones de las básicas: </li></ul>
  26. 28. Funciones definidas por el usuario <ul><li>Las funciones de usuario son, como su nombre indica, las que el propio usuario declara, de igual manera que declara procedimientos. Las funciones nacen con el propósito de ser subprogramas que siempre tienen que devolver algún valor </li></ul><ul><li>Las dos principales diferencias entre procedimientos y funciones son: </li></ul><ul><li>Las funciones siempre devuelven un valor al programa que las invocó. </li></ul><ul><li>Para llamar a un procedimiento se escribe su nombre en el cuerpo del programa, y si los necesita, se incluyen los parámetros entre paréntesis. Para invocar una función es necesario hacerlo en una expresión. </li></ul><ul><li>Veamos el esqueleto básico que comparten las funciones: </li></ul>

×