top of page
ticher.gif

Cultura Digital 1. Contenidos esenciales
Corte 3

Algoritmos y estructuras de control 

//////////////////////////////////////////////////////////////////////////////////////

​CONTENIDOS ESENCIALES SEMESTRE 2024B

​

  • Algoritmos

  • Diagramas de flujo​

  • Estructura de control secuencial 

  • Estructura de control condicional

  • Estructuras de control repetitivas

Pensamiento computacional: Algoritmos

​

¿Alguna vez le diste instrucciones a una persona para llegar de un lugar a otro? o ¿le ayudaste a alguna persona mayor a crear un correo electrónico o una cuenta en Facebook? o ¿seguiste una receta de cocina para preparar un platillo?

 

Si tú respuesta a alguna de estas preguntas es sí, entonces ya conoces algo de Pensamiento Computacional.

​

Supongamos que queremos enseñarle a una persona a preparar un sencillo sándwich de jamón. Los pasos los podemos describir como lo siguiente:

- Tomar dos rebanadas de pan

- Colocar una rebanada de jamón sobre una de ellas

- Colocar una rebanada de queso sobre el jamón

- Colocar la segunda rebanada de pan sobre el queso

Y listo, ya tenemos un sencillo sándwich de jamón.

​

Observa que el proceso anterior lo describimos como una secuencia de pasos que se siguen en orden, esto es, uno detrás de otro.

 

Veamos otro ejemplo: queremos detallar el proceso de cambiar un foco de una lámpara. El proceso podría ser algo como lo siguiente:

- Sí me falta repuesto de foco

      comprar el repuesto

- Apagar el interruptor de la lámpara

- Repetir

      Girar el foco quemado en sentido a las manecillas del reloj

- Hasta sacarlo del portalámparas

- Tirar a la basura el foco quemado

- Colocar el repuesto del foco en el portalámparas

- Repetir

      Girar el foco en sentido contrario a las manecillas del reloj

- Hasta que quede apretada

Observa que de la misma forma, tenemos una secuencia de pasos en orden y también estamos utilizando una decisión:

​

- Sí me falta repuesto de foco

      comprar el repuesto

​

Y también repeticiones e iteraciones.

 

La secuencia, la decisión y la iteración son lo que llamamos ESTRUCTURAS DE CONTROL y con ellas podemos construir programas.

 

 

 

Describimos el proceso de preparar un sándwich o de cambiar el foco de una lámpara como un proceso paso a paso esta secuencia ordenada de pasos se llama ALGORITMO.

 

Los algoritmos describen el proceso para llevar a cabo una tarea o resolver un problema en una forma paso a paso. Pueden incluir secuencias, decisiones e iteraciones cómo se ilustró en los ejemplos anteriores.

 

Un aspecto muy importante en los algoritmos es la claridad que se debe tener al dar las instrucciones. Es decir, el algoritmo siempre debe ser CLARO.

​

Veamos cómo funciona esto con el siguiente ejemplo. Sigue en una hoja de papel las siguientes instrucciones para dibujar una figura:

- Dibuja un segmento de recta horizontal

- Dibuja un segmento de recta vertical que cruce al

  otro segmento.

- Une los extremos de los segmentos con líneas rectas

- En una de los extremos dibuja una línea curva

¿Qué fue lo que resultó?  Se supone que lo que yo deseaba que dibujaras era lo siguiente.

El algoritmo que te mostré es demasiado ambiguo porque hay muchas maneras de interpretarlo. Seguramente tu dibujo es una figura totalmente distinta que no se parece a lo que trataba yo de describir.

​

¿Puedes escribir un algoritmo más claro para dibujar la figura mostrada? Inténtalo y pruébalo con tus amigos.

VIDEO DE APOYO

Como lo demuestra el ejemplo anterior es muy importante ser muy claro para dar instrucciones a un ser humano y mucho más cuando estamos hablando de sistemas de cómputo. Estos solo siguen instrucciones y si no son claras para ellos, no funcionarán como deseamos.

​

​

Siguiendo con el tema de los algoritmos, una forma muy eficaz de representar un algoritmo es a través de los llamados diagramas de flujo.

 

Los diagramas de flujo se utilizan en diferentes disciplinas e industrias, entre ellas ingeniería, ciencias físicas y programación de computadoras, en los cuales se requiere una comprensión completa de los procesos o flujos de trabajo. Estos son diagramas que se utilizan para representar procesos o flujos de trabajo, es decir, simplemente ilustran cómo debe funcionar un proceso.

​

Es importante mencionar que, los diagramas de flujo no requieren terminología ni símbolos complejos y específicos de la industria o la disciplina.

Además, un diagrama de flujo debe ser fácil de entender sin tener que ser un experto en el campo elegido.

​

Como es la representación gráfica de un algoritmo, un diagrama de flujo debe mostrar los estados de entrada, las decisiones tomadas y los resultados de dichas decisiones.

​

Los principales símbolos utilizados en los diagramas de flujo son:

ALG01C.jpg

​

ESTRUCTURA DE CONTROL SECUENCIAL

​

Esta es la estructura de control más sencilla ya que tal como su nombre lo indica simplemente son los procesos que se suceden uno a continuación de otro:

ALG02b.jpg

Un ejemplo sencillo de algoritmo secuencial es la suma de dos números. El siguiente sería el diagrama de flujo de este algoritmo:

ALG03.jpg

El proceso claramente se desarrolla en una consecución (una detrás de otra) de instrucciones.  

​

Observa también que para determinar el ingreso de los números a sumar, definimos las variables N1 y N2. Y, para mostrar la suma resultante, definimos la variable SUMA.

 

Aprovecharemos este ejemplo para introducir otro término importante en la programación: pseudocódigo, y te preguntarás ¿qué es un pseudocódigo?

 

Veamos lo que dice wikipedia[1]: En ciencias de la computación, y análisis numérico, el pseudocódigo (o lenguaje de descripción algorítmico) es una descripción de alto nivel compacta e informal del principio operativo de un programa informático u otro algoritmo.

 

De esta forma, del pseudocódigo de un proceso, a la elaboración del programa (en cualquier lenguaje de programación) hay solo un paso.

 

Pseudocódigo del ejemplo anterior:

​

 Comienza

      Lee(N1)

      Lee(N2)

      Suma = N1 + N2

      Escribe (Suma)

 Termina

​

​

Estructura selectiva.

​

En estas estructuras se evalúan decisiones lógicas, así pues, también es llamada estructura de decisión o alternativa y, puede ser de dos tipos:

​

1. Selectiva simple.

 

Sí al evaluar la condición, esta es verdadera, entonces se lleva a cabo una acción o acciones consecutivas. En caso de ser falsa, no se lleva a cabo ninguna acción o acciones.

 

En el diagrama de flujo, esto se representa de la siguiente forma:

ALG04.jpg

Un ejemplo es el siguiente. La condicionante para poder votar en el día de las elecciones:

El pseudocódigo será el siguiente:

​

      Comienza

          Día de elecciones

          Lee (Edad)

          Si Edad > 17 entonces

              Escribe: “Puede votar”

      Termina

ALG05.jpg

Observa que el proceso lleva una lógica que, aunque por el momento es simple, nos da la base para resolver problemas aún más complejos. Este principio lógico nos entrena en el “pensamiento computacional” del que ya hablamos anteriormente.

​

2. Selectiva doble.

​

En esta estructura podemos seleccionar una de dos alternativas posibles, de tal forma que sí el resultado de la condición es verdadero seguimos ejecutando la(s) acción(es) correspondiente(s) por un camino; pero sí el resultado es falso entonces seguimos otro camino con su(s) acción(es) consecuente(s).

​

En el diagrama de flujo, esto se representa de la siguiente forma:

ALG06.jpg

Ejemplo: Hacer un algoritmo que calcule el pago total que hacen un grupo de jóvenes que entran a un museo teniendo en cuenta que sí el grupo es menor a 5 personas, el pago será de $15 por persona y, para grupos de 5 personas o más, el pago será de $10 por persona.

ALG07.jpg

El pseudocódigo será el siguiente:

​

Comienza

   Leer num
   Si num>=5 entonces
       Pago=10*num
   sino
       Pago=15*num
   Imprimir pago
Termina

Estructuras de control iterativas (o repetitivas)

​

Siguiendo con la revisión de las estructuras de control, diremos que en este tipo de estructuras es posible repetir un proceso o una secuencia de procesos, determinadas veces; según la naturaleza de la estructura. Se dividen en dos tipos:

​

  • Estructura iterativa por decisión.

​

Con la estructura iterativa por decisión, si la condición evaluada es verdadera, se ejecutará el ciclo de proceso(s) hasta que la misma condición resulte falsa.

 

El diagrama de flujo correspondiente se presenta a continuación:

ALG08.jpg

Observa que, si desde el principio la condición es falsa, el ciclo de procesos no se ejecutará ni una sola vez.

​

Un ejemplo concreto es el siguiente. Obtener la suma de los 100 primeros números enteros y escribirla como salida:

ALG09.jpg

Para el algoritmo anterior el pseudocódigo será el siguiente:

​

Comienza

     Suma=0

     Num=1

     Mientras Num <= 100 haz

          Suma = Suma + Num

          Num = Num + 1

     Fin_mientras

     Escribe (Suma)

Termina

Lo que hacen los dos primeros procesos Suma=0 y Num=1, es inicializar las variables utilizadas, garantizando:

1. Que el espacio de memoria (variable) de la suma inicie en cero y la suma final sea exacta. 

2. Que la cuenta que se realiza del 1 al 100, inicie correctamente.

​

​

  • Estructura iterativa por cantidad

​

Observa que en la estructura iterativa por decisión, no queda determinado el número de veces que el proceso ha de repetirse, es decir, el número de veces que debe iterarse, de modo que incluso, el mismo, podría realizarse infinitamente.

 

En la estructura iterativa por cantidad, es indispensable conocer el número de veces que se deberá repetir el ciclo. En el siguiente diagrama de flujo nota como el dato de entrada define el número en el que debe empezar el ciclo (contador inicial, Ci) como el número en el que debe detenerse (contador final, Cf). El contador inicial debe incrementarse en cada ciclo hasta llegar al contador final.

ALG10.jpg

Ejemplo: imagina un tablero de damas inglesas. Nos encontramos en la primera casilla de la esquina superior izquierda. Se pide avanzar la ficha hacia delante un determinado número de veces. 

ALG11.jpg
ALG12.jpg

Para el algoritmo anterior el pseudocódigo será el siguiente:

​

Comienza

     Lee NCasillas

     Para Ci desde 0 hasta NCasillas haz

          Avanza una casilla

          Incrementa Ci en 1

     Fin Para 

Termina

Lo anterior podrás revisarlo con los siguientes videos:

SELECTIVA

ITERATIVA

(Nota: para ingresar al formulario de autoevaluación, asegúrate utilizar tu cuenta institucional)

HRASSO.jpg
bottom of page