lunes, 29 de junio de 2020



Imaginemos una receta para preparar una torta. Para poder llevarla a cabo no basta con tener los ingredientes y utensilios necesarios, también requerimos de un paso a paso. Este paso a paso se debe regir por unas reglas que permitan que logremos preparar una buena torta, es decir, deben ser pasos lógicos y secuenciales.

Por Lógicos se debe entender que los pasos o instrucciones deben tener coherencia y sentido con lo que pretendemos hacer (preparar una torta), así que si uno de los pasos dice: "en un recipiente agrega harina, azúcar, polvo para hornear y mezcla muy bien" usando nuestro sentido común sabemos que es una instrucción válida para hacer una torta. Pero si en lugar de esto vemos una instrucción como esta: "agrega a la mezcla seca 100 mililitros de gasolina y coloca el recipiente al sol por 5 horas" el sentido común nos dirá de inmediato varias cosas, por ejemplo ¿por qué gasolina si no es una sustancia comestible? ¿Por qué dejar un recipiente al sol por 5 horas? No tiene lógica. 

Por Secuencial se debe entender que las instrucciones deben tener un orden y que alterar ese orden no nos permitirá preparar la torta, por ejemplo:

Paso 1: Verter la mezcla lista en un recipiente para hornear.

Paso 2: Agregar huevo y mantequilla a los ingredientes secos y mezclar hasta obtener una consistencia homogénea.

¿Cómo podríamos tener la mezcla lista del paso 1 si apenas vamos a terminarla en el paso 2? 

Entonces, la definición de algoritmo sería: una secuencia de pasos lógicos y ordenados que permiten obtener un resultado o solución.

Al momento de escribir un algoritmo debemos tener en cuenta una estructura básica, la cual es:

Inicio
Instrucciones
Fin

A su vez, dentro de un algoritmo encontramos unas sub-estructuras, como por ejemplo: condicionales, ciclos, listas, etc. Todas las cuales serán estudiadas en próximos capítulos. De momento, trabajaremos con algoritmos cuyo flujo será simple y solo tendrá un sentido: de arriba a abajo. ¿Por qué de arriba a abajo? Porque los algoritmos se ejecutan paso por paso (o una instrucción a la vez) empezando por el Inicio y luego pasan a la siguiente línea y así continúan hasta llegar al final. (Esto se conoce como Flujo de ejecución). 

Ejemplo: Juanito desea una aplicación que le permita saber el resultado de la venta de sus frutas. Para eso él ingresará la cantidad de frutas vendidas y el valor unitario. Adicional a esto, él desea calcular el 15% de esas ventas para dárselos a su mamá como regalía.

Para solucionar este problema necesitamos dos cosas, primero identificar las variables que necesitaremos y especificar su respectivo tipo de datos, y segundo, necesitamos conocer algunas palabras reservadas. (En programación se conoce como palabra reservada a una palabra o instrucción que es propia de un lenguaje de programación y cuya función es ejecutar una acción muy concreta. Cada lenguaje de programación tiene sus propias palabras reservadas. En fundamentos de programación también usaremos algunas, las cuales se podrán apreciar de color azul en cada ejemplo).

Variables del ejemplo:
CantFruta: cantidad de fruta vendida. 
ValFruta: valor unitario de las frutas vendidas.
Total: el resultado de multiplicar la cantidad de frutas vendidas por su valor unitario.
Regalia: el 15% del Total.

El algoritmo quedaría así:

Inicio

CantFruta Entero
ValFruta Real
Total Real
Regalia Real

Ingrese CantFruta
Ingrese ValFruta
Total = CantFruta * ValFruta
Regalia = Total * 0.15

Imprimir "Total venta:" & Total
Imprimir "Regalía para mamá :" & Regalia

Fin

Analicemos este algoritmo parte por parte:

1. Indicamos donde empieza el algoritmo con la palabra reservada Inicio.
2. Declaramos todas las variables a usar e indicamos el tipo de dato que van a almacenar.
3. Pedimos al usuario de la aplicación que digite la cantidad de frutas y luego su valor unitario usando la palabra reservada Ingresar.
4. Ponemos las ecuaciones necesarias para obtener los resultados.
5. Mostramos los resultados en pantalla usando la palabra reservada Imprimir.
6. Indicamos donde termina el algoritmo con la palabra reservada Fin.

Cuando usamos la palabra reservada Imprimir podemos hacer algo llamado Concatenación de textos o de cadenas de texto, con el fin de mostrar al usuario información legible y bien etiquetada. Para eso, ponemos el texto descriptivo entre comillas y usando el símbolo & lo unimos a el valor de una variable. 

Todo va bien hasta el momento, ¿pero como podemos estar seguros? Para esto los programadores hacemos algo llamado Prueba de escritorio, la cual consiste en dar valores de nuestra invención a las variables y realizar las operaciones e instrucciones paso a paso para verificar si el resultado es correcto.

Prueba de escritorio:

Primero hay que resolver este problema manualmente, sin el uso de algoritmos, usaremos los valores: cantidad de fruta (24) y valor de la fruta ($800)

Total = 24 * 800 = 19200
Regalía = 2880

Si nuestro algoritmo ha quedado bien y si usamos los mismos valores inventados, entonces ya sabemos que resultados nos debe dar, si no es así, habría que revisar todas las instrucciones detenidamente.


Inicio

CantFruta Entero
ValFruta Real
Total Real
Regalia Real

Ingrese CantFruta (24)
Ingrese ValFruta (800)
Total = CantFruta * ValFruta (24 * 800 = 19200)
Regalia = Total * 0.15 (19200 * 0.15 = 2880)
Imprimir "Total venta:" & Total (19200)
Imprimir "Regalía para mamá :" & Regalia (2880)

Fin

En este ejemplo todo ha ido correctamente.

Analicemos ahora la secuencia del algoritmo ya que es lo que hace que realmente funcione. ¿Qué pasaría si la instrucción que calcula el Total estuviera antes de las instrucciones que piden el ingreso de los datos CantFruta y ValFruta? Si hacemos operaciones matemáticas con variables que aún no han recibido ningún valor podríamos obtener dos resultados: primero, que como aún no reciben datos todas las variables valgan cero y estaríamos multiplicando cero por cero. O segundo, que al ejecutar el programa nos muestre un error (algunos lenguajes de programación no permiten realizar operaciones con variables que aún no reciben valores).

Si colocamos las instrucciones que imprimen los mensajes en pantalla con los resultados antes de hacer las operaciones matemáticas, el algoritmo haría los cálculos matemáticos correctamente, pero no se visualizarían en pantalla y podríamos pensar erróneamente que no está calculando nada.

En conclusión:
-Los algoritmos son un conjunto de instrucciones o pasos.
-Las instrucciones deben ser lógicas.
-Las instrucciones deben respetar una secuencia.
-Los algoritmos se escriben siguiendo una estructura y su flujo de ejecución es de arriba a abajo.
-Las palabras reservadas son instrucciones propias de cada lenguaje de programación cuyo fin es realizar una acción específica.

Deja un comentario: