• Diseño descendente. Consiste en diseñar los algoritmos en etapas, yendo de los conceptos generales a los de detalle. El diseño descendente se verá completado y ampliado con el modular.
• Programación modular: El diseño descendente resuelve un problema efectuando descomposiciones en otros problemas más sencillos a través de distintos niveles de refinamiento.
Los módulos o sub-algoritmos deberán ser pequeños, seguirán todas las reglas de la programación estructurada y podrán ser representados con las herramientas de programación habituales. Un problema complejo se puede dividir en pequeños subproblemas más sencillos.
Estos subproblemas se conocen como “Módulos” y su complementación en un lenguaje se llama subprograma (procedimientos y funciones).
1.2 VENTAJAS Y DESVENTAJAS DE LA PROGRAMACIÓN MODULAR:
Ventajas:
1.2 VENTAJAS Y DESVENTAJAS DE LA PROGRAMACIÓN MODULAR:
Ventajas:
- Simplifica el diseño.
- Disminuye la complejidad de los algoritmos.
- Disminuye el tamaño total del programa.
- Ahorra en tiempo de programación porque promueve la reusabilidad del código.
- Es fácil de mantener y modificar.
- Favorece el trabajo en equipo.
- Facilita la escritura, depuración y prueba.
- Facilita el mantenimiento.
- Permite la estructuración de librerías específicas.
- Separación de módulos.
- No se dispone de algoritmos formales de modularidad, por lo que a veces los programadores no tienen claras las ideas de los módulos
- La programación modular requiere más memoria y tiempo de ejecución.
1.3 METODOLOGÍA DEL DISEÑO:
La programación modular es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa. En programación modular el programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y se codifican independientemente de otros módulos.
Cada uno de estos módulos se analiza, codifican por separado. Cada programa contiene un módulo denominado programa principal, que controla todo lo que sucede, se transfiere el control a submódulos (posteriormente se denominan subprogramas), de modo que ellos puedan ejecutar sus funciones; sin embargo, cada submódulo devuelve el control al módulo principal cuando termina su tarea.
Si la tarea asignada a cada submódulo es demasiado compleja, éste deberá dividirse en otros módulos más pequeños.
El proceso sucesivo de subdivisión de módulos continúa hasta que cada módulo tenga solamente una tareas específica que ejecutar.
II. Módulos (FUNCIONES):
• Internas: Las funciones internas son funciones escritas en lenguaje C que han sido enlazadas estáticamente en el proceso backend de Postgres
. • Creadas por el usuario: Son aquellas que crea usted mismo para usarlas en aplicaciones, a diferencia de las funciones en las clases incorporadas, que realizan funciones predefinidas.
2.2 COMPONENTES:

2.2.1 Declaración:
Es una construcción del lenguaje que asocia un nombre con una entidad. Una declaración introduce uno o más nombres en un programa. Las declaraciones pueden aparecer varias veces en un programa. Por tanto, las clases, estructuras, tipos enumerados y otros tipos definidos por el usuario se pueden declarar para cada unidad de compilación. La restricción de esta declaración múltiple es que todas las declaraciones deben ser idénticas.
2.2.2 Argumentos:
Es una variable utilizada para recibir valores de entrada en una rutina o subrutina. Dichos valores, que serán enviados desde la rutina invocante, son llamados argumentos. Un argumento representa el valor que se transfiere a un parámetro del procedimiento cuando se llama al procedimiento. El código de llamada proporciona los argumentos cuando llama al procedimiento. Cuando se llama al procedimiento Function o Sub, se incluye una lista de argumentos entre paréntesis que van inmediatamente después del nombre del procedimiento. Cada argumento se corresponde con el parámetro situado en la misma posición de la lista. A diferencia de la definición de parámetros, los argumentos no tienen nombres. Cada argumento es una expresión que puede contener cero o más variables, constantes y literales.
2.2.3 Parámetros:
Es un valor que la función espera recibir cuando sea llamada (invocada), a fin de ejecutar acciones en base al mismo. Un parámetro representa un valor que el procedimiento espera que se transfiera cuando es llamado. La declaración del procedimiento define sus parámetros. Cuando se define un procedimiento Function o Sub, se especifica una lista de parámetros entre paréntesis que va inmediatamente después del nombre de procedimiento. Para cada parámetro, se especifica un nombre, un tipo de datos y un mecanismo para pasar argumentos (ByVal o ByRef). También puede indicar que un parámetro es opcional. Esto significa que el código de llamada no tiene que transferir un valor. El nombre de cada parámetro actúa como una variable local en el procedimiento. El nombre del parámetro se utiliza del mismo modo que cualquier otra variable.
2.3 INVOCACIÓN Y RETORNO DEL VALOR DE LA FUNCIÓN:

por la función Main () o alguna otra función, y como ésta regresará un valor, necesitamos indicar su tipo. El tipo dependerá del valor devuelto. Si el valor es un entero, entonces el tipo de la función es int. Si el valor es un flotante, la función tendrá tipo float.
III. PROGRAMACIÓN PSEINT:
PSeInt es una herramienta para asistir a un estudiante en sus primeros pasos en programación. Mediante un simple e intuitivo pseudolenguaje en español (complementado con un editor de diagramas de flujo), le permite centrar su atención en los conceptos fundamentales de la algoritmia computacional, minimizando las dificultades propias de un lenguaje y proporcionando un entorno de trabajo con numerosas ayudas y recursos didácticos.
Características y Funcionalidades de PSeInt:

• Permite la edición simultánea de múltiple algoritmos
• Presenta ayudas para la escritura
• Plantillas de Comandos
• Coloreado de Sintaxis
• Puede ejecutar los algoritmos escritos
3.2 PROGRAMAS:
3.2.1 Coloque 3 ejemplos de programas (De su elección) en Pseint y coloque el diagrama de flujo de cada uno:
Ejemplo 1:
Proceso Avión
Leer conseguir hoja de papel ;
Leer doblarla;
Leer formar el avión ;
Leer verlo volar ;
Fin Proceso
Diagrama de Flujo :
Ejemplo 2 :
Proceso INICIO
Radio<-0
Altura<-0
Área<-0
Volumen<-0
Escribir "Ingrese radio del cilindro";
Leer radio;
Escribir "Ingrese altura del cilindro";
Escribir altura;
Área<-6.28*radio*(radio+altura)
Volumen<-3.1416*(radio*radio)*altura
Escribir "el volumen del cilindro es....", volumen;
Escribir "el área del cilindro es....", área;
FinProceso
Ejemplo 3 :
1. Crear un algoritmo que pida al usuario un número y le diga si es positivo, negativo o cero.
Escribir "Dime un numero";
Leer x;
Si x > 0 Entonces
Escribir "Es positivo";
Sino
Si x < 0 Entonces
Escribir "Es negativo";
Sino
Escribir "Es cero";
FinSi
FinSi
FinProceso