REPRESENTACIÓN DE LOS ALGORITMOS

Los algoritmos se pueden representar de diversas formas (CHAVEZ T, 2004) destaca el pseudocódigo, el diagrama de flujo y el diagrama N-S, detallados a continuación:

Pseudocódigo

El pseudocódigo se considera como un lenguaje de especificación, mediante el cual se puede representar la solución de un problema a través de un algoritmo. El pseudocódigo es similar a un lenguaje de programación y puede ser escrito en cualquier tipo de lenguaje natural, para el caso que compete, el lenguaje será el castellano, aunque puede perfectamente hacerse en inglés, francés, o cualquier otro idioma.

Una de las ventajas que presenta esta forma de representación de algoritmos es que facilita mucho su escritura posterior en un lenguaje de programación y le permite al diseñador aprender de una manera más sencilla debido a su familiaridad con cualquier lenguaje de programación.

Otra ventaja con que se cuenta, es que es independiente de la plataforma o lenguaje de programación que se desee utilizar, ya que su escritura no implica palabras reservadas de ningún tipo de lenguaje.

El pseudocódigo se compone de las siguientes partes:

Inicio

Declaración de variables Declaración de constantes Operaciones o instrucciones

Fin

Aunque algunos autores, prefieren declarar las variables y las constantes, antes de utilizarlas y es admitido en cualquier lenguaje, un orden adecuado, facilita la búsqueda de errores y el seguimiento al algoritmo.

Declaraciones en pseudocódigo

Como se indicó en el ejemplo de hallar el cuadrado o en el de la tienda escolar, las variables se declaran anteponiendo el tipo de dato y luego el nombre que se le asigna:

Entero a,b,x,y; Doble w,z; Carácter dato; Cadena varios_datos;

La declaración de una constante, es un proceso de asignación y puede hacerse de varias maneras:

a             5;

w            2.5; dato ‘S’;

varios_datos“Mi nombre es: Edgar Enríquez”;

En los casos anteriores se asignaron mediante el símbolo de flecha apuntando hacia la variable, pero también puede hacerse utilizando el símbolo “ = ” o los símbolos “ := ”, como se puede apreciar a continuación:

a = 5;
w = 2.5;
dato = ‘S’;
varios_datos = “Mi nombre es: Edgar Enríquez”;
a := 5;
w := 2.5;
dato := ‘S’;
varios_datos := “Mi nombre es: Edgar Enríquez”;
y de igual manera se pueden operar las variables:
x             a * b;
x = a * b;
x:=a * b;

Diagrama de flujo

El diagrama de flujo es una forma de representar una serie de instrucciones, con símbolos estandarizados por el Instituto Nacional Americano de Estándares, ANSI (por sus siglas en inglés), mediante los cuales se representan de manera gráfica un algoritmo y permiten visualizar el flujo de datos cuando se procesan y hacia donde se dirigen dichas salidas de cada proceso para ingresar en el siguiente, hasta que termine el algoritmo.

Los símbolos que se emplean en un diagrama de flujo se definen en la tabla que se presenta a continuación:

simbolos-de-diagramas-de-flujo.png

Diagrama NASSI – SCHNEIDERMAN

Conocido como diagrama N-S, se considera como otra forma de representar algoritmos. Se basa en escribir las instrucciones en bloques o cuadros de texto. Este diagrama también se conoce con el nombre de diagrama de Chapin y es una combinación de la escritura en pseudocódigo y del diagrama de flujo.

En el diagrama N-S, las flechas que indican el flujo del algoritmo, se reemplazan por las cajas de texto, en las cuales se escriben las instrucciones respectivas.

La sintaxis general se indica a continuación:

descarga.png

Como se puede apreciar, cada bloque contiene una instrucción, en el caso de definición de variables, se recomienda utilizar un bloque por cada tipo de datos distinto que se genere, es decir si existen varios datos enteros, su definición abarcaría un solo bloque, si por el contrario se requieren definir datos dobles, ellos ocuparían otro bloque y así sucesivamente.

Anuncios

ENTRADAS, PROCESOS Y SALIDAS DE UN ALGORITMO

ENTRADAS

Las entradas son todos aquellos insumos que se requieren para el adecuado procesamiento de los datos y que se definirán como variables, teniendo en cuenta el tipo de dato que puede representar y ellos se detallan en el siguiente capítulo con más énfasis. Entre los tipos de datos existentes se encuentran:

Caracter: Datos de tipo alfanumérico que representan un solo caracter de datos.

Cadena: Datos similares al anterior, pero que pueden almacenar cadenas de caracteres

Enteros: Datos numéricos que manejan cantidades enteras.

Flotantes o decimales: Son datos numéricos que permiten almacenar datos con parte entera y parte decimal. Existen dos tipos: float o flotante y doble o double.

Booleanos: Son datos que representan valores lógicos, de tal manera que devuelven resultados como falso o verdadero

PROCESOS

Los procesos son los diversos métodos o instrucciones mediante las cuales se realizan cambios a las entradas para convertirlas en un resultado; de tal manera que las entradas pueden variar o simplemente jugar el papel de llevar sus valores a otro dato para que este sea entregado ya sea a otro proceso o como resultado final.

Un ejemplo de un proceso es una operación aritmética, ya sea suma, resta, multiplicación, división, entre otras; sin embargo, es necesario tener en cuenta que en el desarrollo del algoritmo, se le deben presentar al usuario una serie de mensajes para que lo oriente acerca de que es lo que debe hacer.

Por ejemplo, para realizar una suma se requieren los sumandos y para ello es necesario decirle al usuario que digite los números, este proceso se denomina impresión o escritura de mensajes y se escribe de la siguiente manera en pseudocódigo:

Escriba (“Digite un número”);

Esta instrucción hace que se presente en pantalla o visualice el mensaje Digite un número, y así el usuario puede escribir el número y al oprimir la tecla “enter”, su dato será guardado en una determinada variable. Este proceso se denomina captura de datos y se representa de la siguiente manera en pseudocódigo:

Lea (a);

Donde a es el tipo de dato que almacenará el valor digitado por el usuario.

Así mismo existe otro tipo de información que son los mensajes que contienen datos, como se pudo apreciar en el ejemplo anterior, la instrucción: Escriba (“Digite un número”), visualiza de manera literal lo que se encuentra entre comillas, pero cuando se quiere presentar un valor de un dato que se encuentra almacenado, como es el caso del valor de “a”, se puede representar de la siguiente manera:

Escriba (a);

Otro proceso que se da, es la operación de datos, suponiendo que se quiere conocer el cuadrado de un número, para ello se requiere como dato el número del que se desea saber el cuadrado y como elevar un  número  al  cuadrado  es multiplicarse por sí mismo, esta operación solo requerirá de dos tipos de datos numéricos enteros, ellos serán:

a, para el número y cuadrado, para el valor de la operación.

De acuerdo con ello y construyendo el algoritmo con la información existente hasta el momento será:

Inicio
Entero a, cuadrado,
Escriba (“Digite el numero para el que desea hallar el cuadrado”); Lea (a);
Cuadrado = a * a;
Escriba (“el cuadrado del número es: ”);
Escriba (cuadrado);
Fin

SALIDAS

Son los valores o resultados que se generan después de una operación o proceso, en el ejemplo anterior se puede ver que la salida, se compone de dos partes, el mensaje final, que es la cadena: “el cuadrado del número es:” y el valor de cuadrado que se visualiza para el usuario.

ALGORITMOS

Los algoritmos, se consideran una forma de modelamiento con influencia matemática y sentido lógico para resolver problemas de una manera sistemática y coherente; de tal manera que el proceso, al recibir unos insumos o entradas, se obtenga un producto determinado, que cumpla con los requerimientos dados.

HISTORIA DE LOS ALGORITMOS

El algoritmo se fundamenta en los pilares de la matemática y la lógica y se deriva del proceso del cálculo en donde se requiere un insumo o entrada arbitraria, entendida como un conjunto de datos, los cuales sufren una transformación para obtener un resultado esperado. Por ejemplo, cuando una persona va a llevar a cabo un proceso de adición, requiere tener como mínimo dos insumos, que para este caso serán los sumandos y que deben ser números, sin importar de que tipo. De acuerdo con lo anterior, el producto o resultado esperado será un número con características similares, es decir del mismo tipo de los números operados. El proceso que se lleva a cabo será el de adicionar los valores o insumos, para obtener un resultado.

Como se puede observar, el cálculo y por ende las matemáticas, son el origen de los algoritmos y el primer nombre que recibió el vocablo algoritmo, hacía referencia al sistema posicional del cálculo y se debe su nombre al matemático árabe: Abu Ja’far Muhammad ibn Musa Al-Khwarizmi, quien nació en Bagdad en el año 780 y murió aproximadamente en el año 850 d.C. (NOWLAN, 2008). Al-Khwarizmi, escribió el libro sobre compendio sobre cálculo, completación y recolocación, el cual trata sobre resolución de ecuaciones cuadráticas y lineales y por ende se lo considera como uno de los padres del álgebra. (GARCIA Estevez)

Con el avance tecnológico y la influencia de las matemáticas en la resolución de problemas mediante un modelado matemático y que se lleva a un computador para obtener una solución a dichos problemas, se ha adoptado este término a los procesos de tipo secuencial, discreto y metódico para obtener una solución determinada.

Al hablar de algoritmos, es necesario definir algunos conceptos claves que lo componen, entre ellos:

Algoritmo: Es el método mediante el cual se transforma de una manera sistemática, finita, discreta y puntual unas materias primas, en resultados óptimos, en el caso de los sistemas computacionales, las materias primas se denominan datos y el resultado esperado se llama información. (DE LA FUENTE, 2005), afirma que los algoritmos, tienen unas características que los definen o que deben cumplir para considerarse como tal, ellas son.

Precisión: Es la propiedad mediante la cual, el algoritmo lleva un orden lógico para cada paso o instrucción que cumple y que debe entregar de la manera correcta y siguiendo el flujo determinado al siguiente paso, la información procesada. También, esta propiedad hace referencia a que se deben tener datos exactos a manera de insumos, por ejemplo, no es lo mismo definir en una receta una cuchara de sal, que 20 gr de sal, ya que en la primera opción la medida es bastante subjetiva, puesto que puede ser una cuchara pequeña, una cuchara a ras, una cuchara sopera, una cuchara hasta el tope, entre otras, mientras que al hablar de 20 gr, el valor es puntual, preciso o exacto y por lo tanto generará un producto esperado.

Definición: Un algoritmo, se considera definido, cuando al realizar el mismo procedimiento una determinada cantidad de veces, el resultado se mantiene invariable o produce el mismo resultado, es decir que si un algoritmo debe sumar dos números, independientemente de cuáles sean dichos números y de cuantas veces se ejecute el algoritmo, el resultado siempre será una suma, es decir el resultado esperado.

Finito: Esta propiedad, implica que el algoritmo debe tener un inicio y un fin. Además de lo anterior, se requiere que los datos procesados no sean redundantes ni generen ciclos interminables.

Datos: Es la mínima unidad de información que posee un sistema de cómputo y cuyos valores hacen parte de la entrada de datos para el proceso de un algoritmo.

Información: Es el resultado final de un proceso llevado a cabo para transformar unas entradas en salidas útiles al usuario.

Tanto los datos, como la información, se almacena en unos campos denominados variables, los cuales se explican con mayor detenimiento más adelante.

Proceso: Se considera un proceso a una serie de operaciones aritméticas, lógicas o sintácticas que se generan para transformar unos datos en un resultado esperado y que puede implicar una toma de decisiones o un control de flujo.

Instrucciones: Son las diferentes líneas, códigos o gráficos mediante los cuales se representan los datos, procesos o salidas en un algoritmo y que facilitan su comprensión para el programador.

Lenguaje de programación: Son software especializado para escribir programas o software específicos a través de una codificación determinada de un algoritmo, entre ellos se tiene: C++, Java, PHP, Visual.net, etc.

Contador: Es una variable que maneja datos de manera constante de tal manera que los valores que se almacenan, incrementan o decrementan de manera constante. Entre los ejemplos cotidianos acerca del uso del contador es el mecanismo de contar que tienen los buses al pasar por su registro, otro ejemplo es el saber cuántos billetes de una determinada denominación se tienen, o el saber qué cantidad de personas ingresan a un espectáculo. Los contadores se pueden utilizar en cualquier algoritmo o programa, pero son de gran utilidad en los ciclos. La sintaxis que puede manejar un contador es similar a la siguiente:

con = con +1;

En donde se puede apreciar que la variable con incrementa su valor de manera constante, es decir de uno en uno.

Acumulador: Es una variable que almacena datos, pero no necesariamente de manera constante, por ejemplo, para saber la cantidad de dinero que tiene una persona en su billetera, es necesario acumular los valores de cada uno de los billetes y así se obtendrá el valor total disponible. La sintaxis que puede manejar un acumulador es similar a la siguiente: acum = acum + x;

En donde se puede apreciar que la variable acum incrementa su valor de manera inconstante, es decir que dependen del valor que tome x cada vez que se realice una operación.

LIBRO RECOMENDADO: CELL (STEPHEN KING)

SMS que convierten a todos los que los reciben en zombis asesinos. El día 1 de octubre, a las 15:03, todos los que están hablando por su teléfono móvil en la ciudad de Boston de repente se convierten en monstruos desfigurados. Se trata de una locura criminal y destructiva de la que pocos escaparán, y los que lo logren tendrán que sobrevivir en un mundo totalmente transformado.

descargar-libro-cell-en-pdf-epub-mobi-o-leer-online

https://drive.google.com/open?id=13vvKdeFYGgVjmhzjxAcjQWmXq5kYBASR

LIBRO RECOMENDADO: TODO OSCURO, SIN ESTRELLAS (STEPHEN KING)

Todo oscuro, sin estrellas (Full Dark, No Stars), publicada en noviembre de 2010, es una colección de cuatro novelas cortas del autor Stephen King, todas tratando el tema de la retribución:

  • 1922
  • Camionero Grande (Big Driver)
  • Una extensión justa (Fair Extension)
  • Un buen matrimonio (A Good Marriage)

9788401354083

https://drive.google.com/open?id=10Fw-Xo6jjRwXGUz3n2791jlWU6WZEbHE

LIBRO RECOMENDADO: EL JUEGO DE GERALD (STEPHEN KING)

En una solitaria cabaña, desnuda y esposada a la cama, Jessie asiste al lúgubre desenlace del juego erótico de Gerald, el hombre con el que ha convivido durante los últimos veinte años y que está tendido en el suelo junto a la cama. Muerta de hambre, sed y perseguida por fantasmas del pasado, se empieza a dar cuenta de que la realidad es mucho más pavorosa que la peor de sus pesadillas.

gerald_s_game-321060947-large.jpg

https://drive.google.com/open?id=1dFvs4m1UD0JXvoMjXpzeYqzixBcS99Z2