Estructuras de Control

Las estructuras de control tienen una finalidad bastante definida: su objetivo es ir señalando el orden en que tienen que sucederse los pasos de un algoritmo o de un programa.

Las estructuras de control son de tres tipos:

  1. Secuenciales
  2. Selectivas o condicionales
  3. Repetitivas o iterativas

ALGORITMOS SECUENCIALES

Los algoritmos secuenciales tienen una ESTRUCTURA SECUENCIAL pues al resolver el problema se sigue una serie de pasos, uno a continuación del otro, hasta llegar a una solución. A continuación se presentan ejemplos de algoritmos secuenciales representados en diagramas de flujo y en pseudocódigo:

secuencial

Otra forma de resolver el problema o de diseñar el algoritmo anterior:

secuencial2

Veamos el siguiente video y Pausa cuando llegues al ejercicio No. 1. Realizalo y despues comparas tu respuesta. Al final queda de tarea el ejercicio No. 2


ALGORITMOS CON ESTRUCTURAS CONDICIONALES SIMPLES

En las estructuras condicionales se efectúa una comparación, luego, dado el resultado de esa comparación se efectuará una determinada tarea. La comparación se efectúa entre dos variables o entre una variable y una constante. Las estructuras condicionales simples se les conocen como “Toma de decisión” y normalmente se representan así:

Imagen relacionada

  • Si <condición> entonces
    •  Acción(es)
  • Fin si

Ejemplos de algoritmos con estructuras condicionales simples representados en diagramas de flujo y en pseudocódigo:

condicion1


ALGORITMOS CON ESTRUCTURAS CONDICIONALES DOBLES O MÚLTIPLES

Las estructuras condicionales dobles o múltiples, al igual que las estructuras condicionales simples, efectúan primero una comparación, dependiendo del resultado, el programa (algoritmo) permitirá elegir entre varias opciones. La estructura condicional doble se representa así:

  • Si <condición> entonces
    • Acción(es)
    •  Sino
    • Acción(es)
  • Fin si

conndi2

Donde:

  • Si: Indica el comando de comparación
  • Condición: Indica la condición a evaluar
  • Entonces: Precede a las acciones a realizar cuando se cumple la condición
  • Acción(es): Son las acciones a realizar cuando se cumple o no la condición
  • Sino: Precede a las acciones a realizar cuando no se cumple la condición
  • Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más acciones.

Ejemplo:

condic3

La estructura condicional múltiple se representa así:

  • SI <condición1> entonces
    • Acción(es)
    • Sino
      • SI <condición2> entonces
        • Acción(es)
        • Sino
          • Acción(es)
      • FinSi
  • FinSi

condi4

Ejemplo:

Problema: Dado dos números, elegir que hacer con ellos:

  • Sumarlos
  • Restarlos
  • Multiplicarlos
  • Dividirlos

Análisis del problema: Se deberán leer 2 números y luego escoger una opción entre 4 para efectuar una operación aritmetica con esos 2 numeros : Sumarlos, Restarlos, Multiplicarlos, Dividirlos.

Los números a leer serán:

  • Num1
  • Num2

Se leerá la operación Elegida:

  1. Suma
  2. Resta
  3. Multiplicación
  4. División

Los datos a presentar en pantalla serán: Suma, resta, multiplica, divide

condi5

El pase de diapositivas requiere JavaScript.


ALGORITMOS CON ESTRUCTURAS CONDICIONALES ITERATIVAS

En este tipo de estructuras se repiten unas instrucciones mientras se cumple una condición.  También denominadas estructuras repetitivas, cíclicas o bucles (lazos o LOOPs)  tienen como característica principal el realizar un conjunto de acciones una cantidad específica de veces. Esta cantidad puede ser fija (previamente determinada como un valor constante) o puede ser variable (estar en función de algún dato dentro del programa). Las estructuras repetitivas son usadas especialmente para resolver problemas en los cuales es necesario que una operación o un conjunto de operaciones se repitan muchas veces.

TIPOS DE ESTRUCTURAS REPETITIVAS

  • La condición de Salida del bucle se realiza al principio del bucle (estructura mientras) también llamada PRE-CONDICIONAL
  • La condición de Salida se origina al final del bucle; el bucle continúa hasta que se verifique una cierta condición. También llamada POST-CONDICIONAL (estructura Repetir Hasta).
  • La condición de Salida se realiza con un contador que cuente el número de interacciones ( i es un contador que cuenta desde un valor inicial hasta un valor final con los incrementos que se consideren) (estructura DESDE o PARA)

Estructura mientras (while)

  • Mientras Condición Hacer
    • Acción(es)
  • Fin_mientras

while

Es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condición. Cuando se ejecuta la acción  mientras, la primera cosa que sucede es que se evalúa la condición (una expresión booleana que devuelve Verdadero (SI) o Falso (NO)), si se evalúa falsa ninguna acción se tomará y el programa pasa a la siguiente instrucción del bucle; si la expresión booleana es verdadera, entonces se ejecuta el cuerpo del bucle, después del cual se evalúa de nuevo la expresión booleana. Esta expresión booleana se repite una y otra vez mientras la expresión booleana (condición) sea verdadera.

Estructura hacer mientras (do … loop while)

  •  Hacer
    • Acción(es)
  • Mientras Condición

while2

Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo. La condición de la estructura está abajo del bloque a repetir. El bloque de operaciones se repetirá MIENTRAS que la condición sea Verdadera (SI).  Si la condición retorna Falso (NO) el ciclo se detiene.

Estructura repetir («repeat»)

Como podrá observarse, esta estructura repetitiva es muy similar a la Estructura hacer mientras:

  • Repetir
    • Acción(es)
  • Hasta Condición

while3

Si el valor de la expresión booleana es inicialmente falso, el cuerpo del Bucle no se ejecutará, por ello se necesitan de otros tipos de estructuras. Dicha estructura se ejecuta hasta que cumpla una condición determinada que se comprueba hasta el final del bucle

Diferencias entre las estructuras mientras y repetir

  • La estructura mientras termina cuando la condición es falsa, mientras que repetir termina cuando la condición es verdadera.
  • En la estructura repetir el cuerpo del bucle se ejecuta siempre al menos una sola vez; por el contrario mientras es más general y permite la posibilidad de que el bucle pueda no ser ejecutado.
  • Para usar la estructura repetir debe estar seguro de que el cuerpo del bucle se repetirá al menos una sola vez.

Estructura desde o para:

  • Desde (Variable=inicio;  Hasta Variable=Final)  hacer
    • Acción(es)
  • Fin_Desde

La anterior estructura también puede ser usada con la palabra PARA en vez de DESDE ejemplo:

  • PARA (Variable=inicio,  Hasta Variable=Final ) hacer
    • Acción(es)
  • Fin_PARA

while5

En su forma más típica y básica, esta estructura requiere una variable entera que cumple la función de un CONTADOR de vueltas. En la sección indicada como «inicialización contador», se suele colocar el nombre de la variable que hará de contador, asignándole a dicha variable un valor inicial. En la sección de «condición» se coloca la condición que deberá ser verdadera para que el ciclo continúe (en caso de un falso, el ciclo se detendrá). Y finalmente, en la sección de «incremento contador» se coloca una instrucción que permite modificar el valor de la variable que hace de contador (para permitir que alguna vez la condición sea falsa)

Cuando el ciclo comienza, antes de dar la primera vuelta, la variable del for toma el valor indicado en la sección de «inicialización contador«. Inmediatamente se verifica, en forma automática, si la condición es verdadera. En caso de serlo se ejecuta el bloque de operaciones del ciclo, y al finalizar el mismo se ejecuta la instrucción que se haya colocado en la tercer sección. Seguidamente, se vuelve a controlar el valor de la condición, y así prosigue hasta que dicha condición entregue un falso.

Si conocemos la cantidad de veces que se repite el bloque es muy sencillo emplear un for, por ejemplo si queremos que se repita 50 veces el bloque de instrucciones puede hacerse así:

while6

La variable del for puede tener cualquier nombre. En este ejemplo se la ha definido con el nombre f.

Analicemos el ejemplo:

  • La variable f toma inicialmente el valor 1.
  • Se controla automáticamente el valor de la condición: como f vale 1 y esto es menor que 50, la condición da verdadero.
  • Como la condición fue verdadera, se ejecutan la/s operación/es.
  • Al finalizar de ejecutarlas, se retorna a la instrucción f++, por lo que la variable f se incrementa en uno.
  • Se vuelve a controlar (automáticamente) si f es menor o igual a 50.
  • Como ahora su valor es 2, se ejecuta nuevamente el bloque de instrucciones e incrementa nuevamente la variable del for al terminar el mismo.
  • El proceso se repetirá hasta que la variable f sea incrementada al valor 51. En este momento la condición será falsa, y el ciclo se detendrá.

La variable f puede ser modificada dentro del bloque de operaciones del for, aunque esto podría causar problemas de lógica si el programador es inexperto. La variable f puede ser inicializada en cualquier valor y finalizar en cualquier valor. Además, no es obligatorio que la instrucción de modificación sea un incremento del tipo contador (f++). Cualquier instrucción que modifique el valor de la variable es válida. Si por ejemplo se escribe f=f+2 en lugar de f++, el valor de f será incrementado de dos en dos en cada vuelta, y no de uno en uno. En este caso, esto significa que el ciclo no efectuará las 50 vueltas sino sólo 25.


Fuentes: