Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación 1
UNIDAD 3
Programación estructurada
Unidad 3: Programación estructurada
Introducción
A lo largo de este material verás el desarrollo, tanto teórico como práctico, de dichas estructuras de control;
específicamente las selectivas cuya funcionalidad radica en controlar el orden en que se ejecutan las
sentencias de un programa. Por ejemplo, las sentencias “si” (en inglés if) y sus variantes: si-entonces, si-
entonces-sino; descritas como parte esencial de un programa, ya que las sentencias “si” anidadas y aquellas
de multi bifurcación pueden ayudar en la resolución de problemas importantes de cálculo.
IMPORTANTE
SI estás de acuerdo entonces continuemos con nuestro proceso de aprendizaje, mientras te recomiendo
no olvidar ni perder de vista, lo aprendido hasta el momento.
Fundamentos de Programación 1
1
Unidad 3: Programación estructurada
Importante: Aquí las sentencias de selección vendrían a ser “si” (if) y las de
repetición o iterativas “desde” (for), “mientras” (while), “hacer mientras”
(do-while) o, incluso, “repetir hasta” (repeat-until).
Antes de explicar qué significa el término flujo de control, destaquemos que existen otras formas de
referirse al mismo, tales como: secuenciación y control de flujo. Además, el flujo normal de control dentro
de los programas es el secuencial, a menos que se indique otro de manera expresa. Entonces, el flujo de
control se trata del orden en que se ejecutan las secuencias de un programa.
Las estructuras de selección, repetición e invocación permiten que el flujo secuencial del programa sea
modificado en un modo preciso y definido con anterioridad. Como se puede deducir fácilmente, las
estructuras de selección se utilizan para seleccionar cuáles sentencias se han de ejecutar a continuación y
las estructuras de repetición (repetitivas o iterativas) se utilizan para repetir un conjunto de sentencias.
Ejecución secuencial
Sin embargo, la vida real no es tan simple. Normalmente, los programas necesitan alterar o modificar el
flujo de control en un programa. Así, en la solución de muchos problemas se deben tomar acciones
diferentes dependiendo del valor de los datos. ¿Reconoces cuáles podrían ser ejemplos de esto en
situaciones cotidianas o sencillas?
POR EJEMPLO
Ejemplo: Cálculo de una superficie solo si las medidas de los lados son
positivas; la ejecución de una división se realiza, solo si el divisor no es cero;
la visualización de mensajes diferentes depende del valor de una nota
recibida, etc.
Fundamentos de Programación 1
2
Unidad 3: Programación estructurada
Bifurcación
CONCEPTO
Se trata de un segmento de programa construida con una sentencia o un
grupo de sentencias. ¿Cuál es su uso? Pues, una sentencia de bifurcación se
utiliza para ejecutar una sentencia de entre varias o bien bloques de
sentencias.
La elección se realiza dependiendo de una condición dada. A este tipo de sentencias también se les
conoce con otras acepciones como sentencias de selección o sentencias de alternación o alternativas.
Sin embargo, esto lo comentaremos más adelante en la lectura.
Estructura secuencial
CONCEPTO
inicio
La estructura secuencial tiene una entrada y una salida. Entonces, ¿cómo
<acción 1>
será su representación gráfica en pseudocódigo? Pues observemos a
<acción 2>
continuación.
fin
Ahora que conoces cómo se ve y funciona una estructura secuencial pasemos a estudiar algunos ejemplos
donde podrás vislumbrar mejor este tipo de estructura.
Inicio
leer(A)
01
Cálculo de la diferencia y producto de dos números. La
Diferencia D de dos números es D = A+B y el producto P es P = leer(B)
A*B. ¿Cuál sería la escritura en pseudocódigo? S←A+B
P←A*B
escribir (S, P)
Fin
Fundamentos de Programación 1
3
Unidad 3: Programación estructurada
Inicio
escribir ’Introduce la altura en centímetros:’
02
Calcular una altura en pulgadas (1 pulgada=2.54 cm) y pies leer altura
(1 pie=12 pulgadas), a partir de la altura en centímetros, Pulgadas ←altura/2.54
que se lee. ¿Cuál sería la escritura en pseudocódigo? Pies ←pulgadas/12
escribir ’La altura en pulgadas es:’, pulgadas
escribir ’La altura en pies es : ’, pies
Fin
PREGUNTA
La especificación formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una
descripción más complicada que una lista sencilla de instrucciones. Este es el caso cuando existe un
número de posibles alternativas resultantes de la evaluación de una determinada condición. Entonces,
¿para que se emplean este tipo de estructuras? Pues, para la toma de decisiones lógicas, de ahí que se
suelan denominar también estructuras de decisión o alternativas.
Estructura selectivas
CONCEPTO
La representación de una estructura selectiva se hace con palabras en pseudocódigo (if, then, else o
bien en español si, entonces, si_no), con una figura geométrica en forma de rombo o bien con un
triángulo en el interior de una caja rectangular. Además, se precia de poseer su propia clasificación,
tales estructuras pueden ser simples, dobles o múltiples.
Fundamentos de Programación 1
4
Unidad 3: Programación estructurada
Pasemos a ver con más detalle las diversas clasificaciones de las estructuras de control de tipo selectivas.
La estructura de selección simple contiene tres palabras reservadas: Si, entonces y FinSi. Siempre
comienza con la palabra “Si” y termina con “FinSi”. Además, contiene un cuerpo de instrucciones entre
ambas palabras, y una condición dentro de paréntesis. La condición al ser evaluada debe siempre
generar un valor de tipo booleano: verdadero o falso. Existen dos maneras en las que podemos
elaborar una condición:
• Usando los operadores relacionales y/o operadores lógicos en una expresión que al ser resuelta
genera un valor booleano
Fundamentos de Programación 1
5
Unidad 3: Programación estructurada
A continuación ejecutará las instrucciones que se encuentren después del Fin_si. En la imagen a la derecha
podrás apreciar la manera en que se graficaría, en pseudocódigo, lo explicado anteriormente.
Instrucciones
Cuando la condición genera un resultado verdadero, el cuerpo de ...
instrucciones comienza a ejecutarse, automáticamente, de manera Si condición
secuencial. Al llegar a ejecutarse la última instrucción, en este caso Instrucción 1
“instrucción N”, el programa continúa con el Fin_si, dando por Instrucción 2
terminada la ejecución del Si. .
.
Instrucción N
A continuación ejecutará las instrucciones que se encuentren después FinSi
del Fin_si. En la imagen a la derecha podrás apreciar la manera en que Resto instrucciones
se graficaría, en pseudocódigo, lo explicado anteriormente. …
Obsérvese que, en ambos casos (que se verifique o no la condición), los caminos bifurcados se unen
posteriormente en un punto; es decir, el flujo del programa recupera su carácter secuencial y se continúa
ejecutando por la instrucción siguiente a la estructura SI.
Veamos un ejemplo que te ayudará a comprender la forma de utilizar este tipo de condicional.
Inicio
leer x
Se considera el cálculo del valor en un
01 punto x de una función definida por partes,
de la siguiente manera:
F ←0
Si x>0
F ← 2x
FinSi
escribir 'El valor de la función es:
', f
Fin
Fundamentos de Programación 1
6
Unidad 3: Programación estructurada
Si (condición) entonces
Instrucción 1
La estructura de selección compuesta o doble tiene el siguiente Instrucción 2
formato general en el pseudocódigo. :
:
Instrucción N
La estructura de selección compuesta contiene cuatro palabras De lo contrario
reservadas: Si, entonces, De lo contrario y Fin_si. Siempre comienza Instrucción O
con la palabra Si y termina con Fin_si y contiene dos cuerpos de Instrucción P
instrucciones: el primero entre las palabras reservadas Si y De lo :
:
contrario y el segundo, entre las palabras De lo contrario y Fin_si.
Instrucción Z
Fin_si
Además, contiene una condición dentro de paréntesis. La condición al ser evaluada debe siempre generar un
valor booleano: verdadero o falso.
Veamos algunos ejemplos para comprender mejor la estructura selectiva doble o compuesta.
Inicio
Leer X
Si X>0
'El número tiene signo positivo'
Si no,
algoritmo comparacion1
var
real : a, b
inicio
escribir('orden creciente')
Si_no
escribir('orden decreciente')
Fin_si
Fin
Fundamentos de Programación 1
7
Unidad 3: Programación estructurada
Gráficamente es muy fácil representar un “Si”como un desvío de un tren . Por lo tanto, un “Si” abre dos
caminos, correspondientes a dos tratamientos diferentes. Pero hay muchas situaciones en las que dos
carriles simplemente no son suficientes.
Veamos un ejemplo.
Inicio
escribir "Ingrese la temperatura del agua:"
Un programa que debe dar el estado del agua leer temperatura
Si temperatura = < 0 Luego
Lo anterior verán que no es muy eficiente y un poco laborioso. Las condiciones son más o menos
similares y, sobre todo, la máquina se ve obligada a examinar tres pruebas sucesivas cuando todas se
refieren a lo mismo, la temperatura del agua (el valor de la variable temperatura). Por lo tanto, sería
mucho más racional anidar las pruebas de esta manera:
Inicio
escribir "Ingrese la temperatura del agua:"
Un programa que debe dar el estado del agua Leer Temp
Si Temp =< 0
Fundamentos de Programación 1
8
Unidad 3: Programación estructurada
Si te das cuenta, nos hemos ahorrado líneas de código ya que, en lugar de tener que escribir tres
condiciones, una de las cuales es compuesta, solo tenemos dos condiciones simples. Pero también, y sobre
todo, hemos conseguido un ahorro en el tiempo de ejecución del computador. Si la temperatura está por
debajo de cero, ahora escribe "Es hielo" y va directamente al final, sin ralentizarse examinando otras
posibilidades que son necesariamente falsas.
Por lo tanto, esta segunda versión no solo es más fácil de escribir y más legible, sino que también es más
eficiente en tiempo de ejecución.
Las estructuras de selección son sentencias de bifurcación que se ejecutan en función de sus elementos
relacionados en las expresiones o condiciones correspondientes que se forman con operadores lógicos y de
comparación. Tales sentencias permiten escribir algoritmos que realizan tomas de decisiones y reaccionan
de modos diferentes a datos diferentes.
Una sentencia de selección genera una bifurcación que es una construcción del lenguaje que utiliza una
condición dada (expresión booleana) para decidir entre dos o más direcciones alternativas (ramas o
bifurcaciones) a seguir en un algoritmo.
Fundamentos de Programación 1
9
Unidad 3: Programación estructurada
Modificador de condición
CONCEPTO
Fundamentos de Programación 1
10
Unidad 3: Programación estructurada
En ambos casos, las variables empleadas en la construcción de la condición deben estar declaradas y
contener un valor antes de ser evaluadas. Cuando la condición genera un resultado verdadero
automáticamente se ejecuta de una manera secuencial el cuerpo de instrucciones, incluida la instrucción
llamada modificador de condición; al ejecutarse la última instrucción (instrucción N).
La ejecución del programa se devuelve a evaluar de nuevo la condición, si esta genera un resultado
verdadero, ingresa nuevamente a la estructura de repetición y ejecuta todo el cuerpo de instrucciones,
incluido el Modificador de Condición; este proceso se repite cada vez que la condición genere un resultado
verdadero.
Iteración
Con cada iteración el contenido de la variable que se encuentra en la condición va cambiando debido a la
ejecución de la instrucción modificador de condición hasta que alcance, sobrepase o sea igual al límite,
cuando esto ocurre se termina la ejecución de la estructura de repetición.
Cuando la condición genera un resultado falso, la ejecución del programa salta a la palabra reservada Fin
mientras cerrando la estructura de repetición y luego la ejecución continúa con las instrucciones
siguientes.
Fundamentos de Programación 1
11
Unidad 3: Programación estructurada
Además, contiene una condición dentro de paréntesis. La condición al ser evaluada debe siempre generar
un valor de tipo booleano: verdadero o falso. En la condición se deben usar los operadores relacionales
y/o lógicos, y sus variables deben estar declaradas y contener algún dato.
Al ejecutarse la palabra reservada Haga, el programa interpreta que se está ingresando a una estructura
de repetición, luego se sigue con la ejecución de cada una de las instrucciones que hacen parte del
cuerpo, incluida el modificador de condición, al ejecutarse ésta se modifica el contenido de la variable que
se encuentra en la condición.
Además, contiene una condición dentro de paréntesis. La condición al ser evaluada debe siempre
generar un valor de tipo booleano: verdadero o falso. En la condición se deben usar los operadores
relacionales y/o lógicos, y sus variables deben estar declaradas y contener algún dato.
La estructura de repetición Repita Hasta ejecuta las instrucciones asociadas a la estructura por lo
menos una vez y luego pregunta. Sin embargo, en una estructura de repetición de este tipo se repite la
ejecución del cuerpo de instrucciones cuando la condición genera falso como resultado. El modificador
de condición cumple las mismas funciones en esta estructura de repetición como en las anteriores.
Fundamentos de Programación 1
12
Unidad 3: Programación estructurada
Comienza con la palabra Para y termina con Fin_para y dentro de éstas se encuentra el cuerpo de
instrucciones. Está conformada por una inicialización (V ← Vi), una variable final Vf con la cual V
compara su valor, lo que correspondería a la condición, y dos palabras reservadas - INC, DEC - que
permiten el incremento o decremento de la variable V.
El ciclo ejecuta un bloque de instrucciones un número determinado de veces. Este número de veces
está determinado por una variable contadora (de tipo entero) que toma valores desde un límite
inferior hasta un límite superior. En cada ciclo, después de ejecutar el bloque de instrucciones, la
variable contadora es incrementada en 1 automáticamente y en el momento en que la variable
sobrepasa el límite superior el ciclo termina.
El valor final de la variable contadora depende del lenguaje de programación utilizado, por lo tanto,
no es recomendable diseñar algoritmos que utilicen el valor de la variable contadora de un ciclo “para”
después de ejecutar el mismo. De la definición de ciclo “para” se puede inferir que el bloque de
instrucciones no se ejecuta si el límite inferior es mayor al límite superior.
Fundamentos de Programación 1
13
Unidad 3: Programación estructurada
Conclusión
A estas alturas resulta primordial que albergues sólidos conocimientos sobre los conceptos de algoritmos y
la programación en esencia; en conjunto a sus elementos más resaltantes como lo son las entradas, salidas,
asignaciones, expresiones y operaciones. Es en ese momento donde has podido seguir avanzando al
encontrarte con la programación estructurada y la que no es así.
Observaste que la secuencialidad forma parte del ambiente natural de las estructuras de programación, ya
que se supone que una orden se sucede luego de otra y así sucesivamente; sin embargo, existen problemas
que necesitan que el programa toma decisiones entre un determinado conjunto de datos; es allí donde nos
topamos con las bifurcaciones que dan lugar a las estructuras selectivas.
Recuerda que de estas estructuras podemos diferenciar tres tipos: simples, donde no es necesario que el
programa tome más de una decisión; doble o compuesta donde comenzamos a entender un poco el trato
de la “condición” y anidadas o múltiples donde el programa debe evaluar los datos y escoger la decisión más
óptima de entre más de tres opciones.
Por último, se encuentran los ciclos que dan lugar a las estructuras más complejas de las tres, las repetitivas.
Los ciclos pueden llevar a crear bucles interminables si sus palabras y variables no se emplean con el debido
cuidado. Es necesario revisarlas una y otra vez hasta captar la lógica detrás de ellos, con el fin de discernir el
tipo de secciones de código que le funciona a cual y tal problema.
Fundamentos de Programación 1
17
Unidad 3: Programación estructurada
Referencias bibliográficas
Fundamentos de Programación 1
18