La programación estructurada significa escribir un programa de acuerdo a las siguientes reglas:
- El programa tiene un diseño modular.
- Los módulos son diseñados de modo descendente.
- Cada modulo se codifica utilizando las tres estructuras de control básicas: secuencial, alternativa y repetitiva.
El termino programación estructurada se refiere a un conjunto de técnicas que aumentan considerablemente la productividad del programa reduciendo en elevado grado el tiempo requerido para escribir, verificar, depurar y mantener los programas. La programación estructurada utiliza un número limitado de estructuras de control que minimizan la complejidad de los programas y por consiguiente reducen los errores.
La programación estructurada es el conjunto de técnicas que incorporan:
- Recursos abstractos.
- Diseño descendente (top – Down).
- Estructuras básicas de control.
Recursos abstractos
Descomponer un programa en términos de recursos abstractos – según Dijkstra – consiste en descomponer una determinada acción compleja en términos de un número de acciones más simples.
Diseño descendente
El diseño descendente es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento. La metodología descendente consiste en efectuar una relación entre las sucesivas etapas de estructuración, de modo que se relacionen unas con otras mediante entradas y salidas de información. Es decir, se descompone el problema en etapas o estructuras jerárquicas de forma que se puede considerar cada estructura desde dos puntos de vista: ¿Qué hace? Y ¿Cómo lo hace?.
Si se considera un nivel n de refinamiento, las estructuras se consideran de la siguiente manera:
Estructuras básicas
Cualquier programa con un solo punto de entrada y un solo punto de salida puede resolverse con tres tipos de estructuras básicas de control: Secuencial, alternativa y repetitiva.
Secuencial
Es aquella que ejecuta las acciones sucesivamente unas a continuación de otras sin posibilidad de omitir ninguna, y naturalmente sin bifurcaciones (saltos a subrutinas). Todas estas estructuras tendrán una entrada y una salida.
Ejemplo: Escriba un algoritmo que permita cambiar una lámpara quemada.
Colocar la escalera debajo de la lámpara quemada.
Tomar una lámpara nueva de la misma potencia que la anterior.
Subir por la escalera con la nueva lámpara hasta alcanzar la lámpara a sustituir Desenroscar la lámpara quemada.
Enroscar la nueva lámpara hasta que quede apretada la nueva lámpara
Bajar de la escalera con lámpara quemada.
Tirar la lámpara a la basura.
Dibuja en tu cuaderno el diagrama de flujo.
Alternativa
Es aquella en la que únicamente se realiza una alternativa dependiendo del valor de una determinada condición o predicado. Las estructuras alternativas también llamadas condicionales pueden ser de tres tipos: Simple, doble o múltiple
Alternativa simple: Son aquellas en donde la existencia o cumplimiento de la condición implica la ruptura de la secuencia y la ejecución de una determinada acción.
Ejemplo:
Tu amigo te ha pedido que le compre $10 de caramelos en el kiosco. De ser posible, prefiere que sean de menta pero si no hay, le da igual que sean de cualquier otro tipo. Escribe un algoritmo en pseudocódigo que represente esta situación.
Ir al kiosco
si (hay caramelos de menta)
Llevar caramelos de menta (1)
sino
Llevar de cualquier otro tipo (2)
Pagar 10 pesos
Dibuja en tu cuaderno el diagrama de flujo.
Ejemplo:
Tu amigo se ha puesto un poco más exigente y ahora te ha pedido que le compres $10 de caramelos de menta en el kiosco. Si no consigues caramelos de menta, no debes comprar nada.
Escribe un algoritmo en pseudocódigo que represente esta situación.
Ir al kiosco
si (hay caramelos de menta)
Dibuja en tu cuaderno el diagrama de flujo.
Ejemplo:
Tu amigo se ha puesto un poco más exigente y ahora te ha pedido que le compres $10 de caramelos de menta en el kiosco. Si no consigues caramelos de menta, no debes comprar nada.
Escribe un algoritmo en pseudocódigo que represente esta situación.
Ir al kiosco
si (hay caramelos de menta)
Pedir caramelos de menta correspondientes a $10
Pagar $1
Con este último algoritmo, a diferencia del anterior, si la condición “hay caramelos de
menta" resulta ser falsa, no se realizará ninguna acción.
Dibuja en tu cuaderno el diagrama de flujo.
Alternativa doble
Es aquella que permite la elección entre dos acciones o tratamientos en función de que se cumpla o no determinada condición.
Alternativa múltiple
Se adopta cuando la condición puede tomar n valores enteros distintos. Según se elija uno de estos valores en la condición se realizara una de las n acciones. Esta estructura propuesta por Hoare, es la case del lenguaje Pascal o case de los Basic estructurados (Case = estructura de casos).
Son aquellas en las que las acciones se ejecutan un número determinado de veces y dependen de un valor predefinido o el cumplimiento de una determinada expresión lógica. Un bucle o lazo es el conjunto de acciones a repetir. En consecuencia es preciso disponer de estructuras algorítmicas que permitan describir una iteración de forma cómoda. Las tres estructuras mas usuales dependiendo de que la condición se encuentre al principio o al final de la iteración son: Estructura mientras, repetir hasta y estructura para.
Estructura Mientras
El bucle mientras determina la repetición de un grupo de instrucciones mientras la condición se cumpla. Esta estructura se conoce normalmente como While.
Ejemplo:
Escribe un algoritmo en pseudocódigo que permita poner 4 litros de agua en un balde utilizando un vaso de 50 cc.
Se observa que hay dos pasos básicos: llenar el vaso con agua y vaciarlo en el balde. Para completar los cuatro litros es necesario repetir estas dos operaciones ochenta veces. Supón que dispones de un vaso, un balde y una canilla para cargar el vaso con agua.
Tomar el vaso y el balde
repetir 80
Llenar el vaso de agua.
Vaciar el vaso en el balde.
Vaciar el vaso en el balde.
Dejar el vaso y el balde.
Noota que, la instrucción “Dejar el vaso y el balde” no pertenece a la repetición. Esto queda indicado por la sangría o indentación utilizada para cada instrucción. Por lo tanto, se repetirán 80 veces las instrucciones de “Llenar el vaso de agua” y “Vaciar el vaso en el balde”.
Noota que, la instrucción “Dejar el vaso y el balde” no pertenece a la repetición. Esto queda indicado por la sangría o indentación utilizada para cada instrucción. Por lo tanto, se repetirán 80 veces las instrucciones de “Llenar el vaso de agua” y “Vaciar el vaso en el balde”.
Dibuja en tu cuaderno el diagrama de flujo.
Estructura Hacer-Mientras
Estructura Hacer-Mientras
El número de iteraciones del grupo de instrucciones se ejecuta una o varias veces hasta que la condición no se cumpla. Esta condición se ejecuta al menos una vez. A esta estructura también se le conoce como Do While.
Estructura Para
Con el valor inicial se inicializa la variable de control de ciclo, se verifica la condición, si esta se cumple se ejecuta el cuerpo del ciclo y posteriormente se incrementa la variable de control, lo anterior se repite hasta que la condición no se cumpla.
Escriba un algoritmo que permita volcar un montículo de arena en una zanja utilizando una pala.
Tomar la pala.
Ubicarse frente a la zanja.
mientras (no esté vacío el montículo de arena)
cargar la pala con arena
volcar la arena en la zanja
Dejar la pala.
Dibuja en tu cuaderno el diagrama de flujo.
Importancia de la indentación en las estructuras de control
Las instrucciones que pertenecen a una estructura de control deben tener una sangría mayor que la utilizada para escribir el comienzo de la estructura. De esta forma, podrá identificarse donde termina el conjunto de instrucciones involucradas. A esta sangría se la denomina indentación.
Deseas ordenar una caja con 54 fotografías viejas de manera que todas queden al derecho; esto es, en la orientación correcta y la imagen boca arriba. Las fotografías ordenadas se irán guardando en el álbum familiar. Escribe el algoritmo en pseudocódigo que le permita resolver este problema.
Tomar la caja de fotos y un álbum vacío.
Dibuja en tu cuaderno el diagrama de flujo.
Según la indentación utilizada, la repetición contiene a la acción de “Tomar una fotografía", ambas selecciones y la instrucción “guardar la fotografía en el álbum”. Las instrucciones “Tomar la caja de fotos y el álbum" y “Guardar el álbum" no pertenecen a la repetición.
Ejemplo:
Te dispones a tomar una taza de café con leche pero previamente debes endulzarlo utilizando azúcar en sobrecitos. Escribe un algoritmo en pseudocódigo que resuelva este problema.
Tomar la taza de café con leche.
mientras (no esté lo suficientemente dulce el café)
Ejemplo:
Deseas ordenar una caja con 54 fotografías viejas de manera que todas queden al derecho; esto es, en la orientación correcta y la imagen boca arriba. Las fotografías ordenadas se irán guardando en el álbum familiar. Escribe el algoritmo en pseudocódigo que le permita resolver este problema.
Tomar la caja de fotos y un álbum vacío.
repetir 54
Tomar una fotografía
si (la foto está boca abajo)
si (la foto está boca abajo)
dar vuelta la foto
si (la foto no está en la orientación correcta)
girar la foto para que quede en la orientación correcta
guardar la fotografía en el álbum
guardar el álbum
Dibuja en tu cuaderno el diagrama de flujo.
Según la indentación utilizada, la repetición contiene a la acción de “Tomar una fotografía", ambas selecciones y la instrucción “guardar la fotografía en el álbum”. Las instrucciones “Tomar la caja de fotos y el álbum" y “Guardar el álbum" no pertenecen a la repetición.
Ejemplo:
Te dispones a tomar una taza de café con leche pero previamente debes endulzarlo utilizando azúcar en sobrecitos. Escribe un algoritmo en pseudocódigo que resuelva este problema.
Tomar la taza de café con leche.
mientras (no esté lo suficientemente dulce el café)
Tomar un sobre de azúcar.
Vaciar el contenido del sobre en la taza.
Vaciar el contenido del sobre en la taza.
Mezclar para que el azúcar se disuelva.
Tomar el café con leche.
Dibuja en tu cuaderno el diagrama de flujo.
Fuente: dcb.fi-c.unam.mx/users/alejandromra/Secuencial.pdf
Dibuja en tu cuaderno el diagrama de flujo.
Fuente: dcb.fi-c.unam.mx/users/alejandromra/Secuencial.pdf