ALGORITMOS PSEUDOCÓDIGOS Y DIAGRAMAS DE FLUJO
Algoritmos
Un algoritmo informático es una secuencia de instrucciones finitas que llevan a cabo una serie de procesos para dar respuesta a determinados problemas. Es decir, un algoritmo informático resuelve cualquier problema a través de unas instrucciones y reglas concisas, mostrando el resultado obtenido. Los algoritmos son muy importantes en el mundo de la informática ya que permiten al programador resolver el problema antes de escribirlo en un lenguaje de programación que entienda la máquina u ordenador. Antes de escribir el código de un programa hay que resolver con un algoritmo el problema que se nos plantea.
¿Como hacer un algoritmo?
Todo algoritmo consta de tres partes.
ENTRADA: en la entrada o input del algoritmo será donde se introduzcan todos aquellos datos que el algoritmo necesite para operar.
PROCESAMIENTO: con lo recibido en la entrada o input, el algoritmo realizará una serie de cálculos lógicos para resolver el problema.
SALIDA: los resultados obtenidos en el procesamiento se mostrarán en la salida o output del algoritmo.
Para hacer un algoritmo hay que tener en cuenta sus características: secuenciales, se procesan uno después del otro; precisos, deben ser objetivos al resolver el problema; ordenados, deben ser leídos y ejecutados de forma precisa; finitos, deben tener un número determinado de pasos; concretos, deben mostrar un resultado al problema resuelto; y definidos, ante los mismos inputs siempre deben obtenerse los mismos outputs.
En resumen, un algoritmo debe ser suficiente para resolver el problema y ante varios algoritmos que resuelvan el mismo problema, siempre será preferible el que tenga un camino más corto.
Tipos de algoritmos
De acuerdo con alguno de sus atributos los algoritmos pueden clasificarse de distintas formas:
Según su sistema de signos tenemos los algoritmos cualitativos (paso a paso) o cuantitativos (utilizan cálculos numéricos). A los algoritmos que requieran del uso de un ordenador para su resolución se le conocen como algoritmos computacionales (siendo los no computacionales aquellos que no requieran el uso de un ordenador). Los algoritmos condicionales llegados a un punto del mismo, presentan varias acciones para ejecutarse y resolver el problema. Estas acciones no se presentan al azar sino que hay una condición previa que según la cual se ejecutará una u otra acción. Se conoce como algoritmos secuenciales aquellos con estructura secuencial, es decir, la salida de una secuencia es la entrada de la siguiente.
Ejemplos de algoritmos
Un ejemplo de algoritmo cualitativo sería una receta de cocina, donde se van enumerando los pasos a realizar, uno a uno y de forma verbal. Por otro lado, un ejemplo de algoritmo cuantitativo sería el cálculo del área de un rectángulo, que conlleva el uso de cálculos matemáticos para su obtención.
Para un algoritmo condicional podríamos ver un problema donde dados los catetos de un triángulo rectángulo, calcular su hipotenusa.
Analisis del problema
1. Tenemos que leer la longitud de los dos catetos y calcular la hipotenusa.
2. (Teorema de Pitágoras)
3. Variables de entrada: cateto1(real), cateto2(real)
4. Variables de salida: hipotenusa(real)
Diseño del algoritmo
1. Leer la longitud de los catetos
2. Calcular hipotenusa (En un triángulo rectángulo el cuadrado de la hipotenusa es igual a la suma de los cuadrados de los catetos). Por lo tanto la hipotenusa es igual a la raíz cuadrada de la suma de los cuadrados de los catetos.
3. Mostrar la hipotenusa
Proceso CalcularHipotenusa
Definir cateto1,cateto2,hipotenusa Como Real;
Escribir "Introduce el cateto 1:";
Leer cateto1;
Escribir "Introduce la cateto 2:";
Leer cateto2;
hipotenusa <- raiz(cateto1 ^ 2 + cateto2 ^ 2);
Escribir "La hipotenusa es ",hipotenusa;
FinProceso
Un ejemplo actual de un algoritmo informático que se suele utilizar a diario, es el algoritmo de búsqueda de Google. Cuando entramos al buscador de Google y realizamos una búsqueda, lo que activamos es un algoritmo, que ejecuta Google y que nos devuelve una serie de resultados de búsqueda. En el caso de posicionamiento web o SEO, este algoritmo o algoritmos que utiliza Google, son fuentes de controversia, porque se desconoce su funcionamiento exacto y son muchos los que diariamente tratan de descifrarlo. Aprende más en profundidad cómo analizar problemas de desarrollo, diseño de algoritmos y diagramas de bloques con este curso de introducción a la programación.
Pseudocódigo
Es una forma de expresar los distintos pasos que va a realizar un programa, de la forma más parecida a un lenguaje de programación. Su principal función es la de representar por pasos la solución a un problema o algoritmo, de la forma más detallada posible, utilizando un lenguaje cercano al de programación. El pseudocódigo no puede ejecutarse en un ordenador ya que entonces dejaría de ser pseudocódigo, como su propio nombre indica, se trata de un código falso (pseudo = falso), es un código escrito para que lo entienda el ser humano y no la máquina.
Aprender a escribir pseudocódigo
Para la resolución de un problema permite hacer mucho más sencilla su programación en un lenguaje convencional, por lo que si estás interesado en comenzar tu formación como programador y no tienes conocimientos previos, resulta muy recomendable y conveniente formarse en pseudocódigo antes de empezar a estudiar cualquier lenguaje de programación.
Principales características del pseudocódigo
Para comprender qué es el pseudocódigo podemos utilizar un símil: los planos de una casa sería el pseudocódigo y la casa en sí el programa.
Su principal característica es la de representar un método que facilita la programación y solución del algoritmo del programa. También se caracteriza por ser una forma de representación, fácil de utilizar y de manipular, que simplifica el paso del programa, al lenguaje de programación.
Otra característica que tiene el pseudocódigo es su independencia al código en el que se va a escribir el programa, proporcionando un método que facilita la posterior programación y la resolución del algoritmo del programa.
Ventajas y desventajas del pseudocódigo
Las tareas más complejas o repetitivas pueden representarse de forma más sencilla ya que está escrito en un lenguaje sencillo y no estructurado que permite una transición sencilla al lenguaje de programación, más complejo y estructurado. Tener un programa escrito en pseudocódigo facilita la tarea de programar en un lenguaje formal y mejora la en la resolución de problemas, además de reducir el espacio necesario a la hora de desarrollar un problema.
El pseudocódigo llega donde el diagrama de flujo no lo hace. La solución de un diagrama de flujo suele ser la ideal, pero no suele ser fácil de implementar al crear el programa. El pseudocódigo permite que el diseño del programa y su implementación sean muy parecidos.
La curva de aprendizaje del pseudocódigo es baja por lo que facilitan enormemente el aprendizaje de la programación y la iniciación a lenguajes de programación más avanzados y complejos. Por lo tanto, se trata de una herramienta educativa interesante.
El pseudocódigo, al ser independiente del lenguaje de programación, permite que su uso se pueda aplicar utilizando diferentes lenguajes y permitiendo que el programador no tenga que ser la misma persona que escribió el pseudocódigo.
Una de las desventajas del uso de pseudocódigo es la falta de normas, que puede hacer que la lógica de un programa, resulte complicada de ver por el programador que va a implementar este pseudocódigo. Además, en el caso de problemas muy extensos, puede llegar a ser difícil de entender.
Componentes y sintaxis del pseudocódigo
Para escribir programas utilizando pseudocódigo es necesario seguir unas pautas o normas de sintaxis para que puedan ser leídos y comprendidos por los programadores a la hora de pasarlos a un lenguaje de programación. Es muy útil utilizar herramientas que faciliten esta escritura de pseudocódigo, como es el caso de PSeInt, que asiste con un simple e intuitivo pseudolenguaje en español y que además incluye un editor de diagramas de flujo.
Un programa escrito en pseudocódigo debe permitir instrucciones primitivas, de proceso, de control, de descripción y compuestas.
Opciones del lenguaje (perfiles)
El lenguaje que utilizamos para construir el pseudocódigo no es estándar. Podemos añadir o eliminar algunas reglas de sintaxis sin ningún problema. En la opción Configurar-Opciones del Lenguaje (perfiles), podemos escoger las características del pseudocódigo que vamos a utilizar. Tenemos tres alternativas:
- Escoger un perfil que define un pseudocódigo utilizado en distintos centros educativos y universidades.
- Perfil flexible: Está escogido por defecto, y no es muy exigente con las reglas que hay que utilizar para escribir el pseudocódigo.
- Perfil estricto: Estable ce una reglas que hacen que el pseudocódigo se parezca más a un lenguaje de programación: se debe definir las variables y sus tipos, las instrucciones deben terminar en punto y coma,…
Estructura de un algoritmo en pseudocódigo
Todo algoritmo en pseudocódigo tiene la siguiente estructura general:
Proceso SinTitulo
acción 1;
acción 2;
...
acción n;
FinProcesoComienza con la palabra clave Proceso (o alternativamente Algoritmo, son sinónimos) seguida del nombre del programa.Le sigue una secuencia (Estructura de control secuencial) de instrucciones. Una secuencia de instrucciones es una lista de una o más instrucciones y/o estructuras de control.Finaliza con la palabra FinProceso (o FinAlgoritmo).La identación no es significativo, pero se recomienda para que el código sea más legible.No se diferencia entre mayúsculas y minúsculas. Preferible las minúsculas, aunque a veces se añaden automáticamente los nombres con la primera letra en mayúsculas.
¿Qué es un diagrama de flujo?
El diagrama de flujo o también diagrama de actividades es una manera de representar gráficamente un algoritmo o un proceso de alguna naturaleza, a través de una serie de pasos estructurados y vinculados que permiten su revisión como un todo.
La representación gráfica de estos procesos emplea, en los diagramas de flujo, una serie determinada de figuras geométricas que representan cada paso puntual del proceso que está siendo evaluado. Estas formas definidas de antemano se conectan entre sí a través de flechas y líneas que marcan la dirección del flujo y establecen el recorrido del proceso, como si de un mapa se tratara.
Hay cuatro tipos de diagrama de flujo en base al modo de su representación:
- Horizontal. Va de derecha a izquierda, según el orden de la lectura.
- Vertical. Va de arriba hacia abajo, como una lista ordenada.
- Panorámico. Permiten ver el proceso entero en una sola hoja, usando el modelo vertical y el horizontal.
- Arquitectónico. Representa un itinerario de trabajo o un área de trabajo.
Los diagramas de flujo son un mecanismo de control y descripción de procesos, que permiten una mayor organización, evaluación o replanteamiento de secuencias de actividades y procesos de distinta índole, dado que son versátiles y sencillos. Son empleados a menudo en disciplinas como la programación, la informática, la economía, las finanzas, los procesos industriales e incluso la psicología cognitiva.
Proceso de un diagrama de flujo
En este ámbito, hablamos de procesos para referirnos a una secuencia específica de actividades, es decir, a los pasos a dar dentro del diagrama de flujo. Por ejemplo, en informática, los procesos son secuencias iniciadas o bien por disparadores programados dentro del sistema, o por intervenciones del usuario del sistema. Cada uno posee una dirección, un propósito y una serie de pasos que abarca.
Simbología de un diagrama de flujo
Los principales símbolos convencionales que se emplean en los diagramas de flujo son los siguientes:
Ejemplos de diagrama de flujo
- Diagrama de flujo para la compra de unos zapatos
Diagrama de flujo para reproducir un DVD