Está en la página 1de 12

Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural

(tienden a ser ambiguas y extensas), pseudocódigo, diagramas de flujo y lenguajes de


programación entre otros.

Pseudocódigo
Es una forma de expresar el algoritmo utilizando el lenguaje natural, comprensible para cualquier
persona, pero añadiendo ciertas instrucciones típicas de los lenguajes de programación. Está
pensado para que pueda ser leído por un ser humano y no interpretado por una máquina.

No existe una sintaxis estándar para el pseudocódigo, pero como hemos comentado, en el
pseudocódigo se reflejan las instrucciones típicas de los lenguajes de programación, como las
instrucciones condicionales:

SI condición ENTONCES
instrucciones/pasos a realizar si se cumple la condición
SI NO
instrucciones/pasos a realizar si NO se cumple la condición
FIN SI

Y las instrucciones repetitivas:

REPETIR n veces
instrucciones/pasos a realizar
FIN REPETIR

REPETIR HASTA condición de salida


instrucciones/pasos a realizar hasta que se cumpla la condición de salida del bucle
FIN REPETIR

Ningún ordenador podría interpretar estas instrucciones. Para crear un programa a partir del
algoritmo, una vez refinado el pseudocódigo, deberíamos reescribirlo en un lenguaje de
programación: C, C++, Java, Scratch.
Pseudocódigo

El pseudocódigo se concibió para superar las dos principales desventajas del diagrama de flujo,
el diagrama de flujo es lento de crear y difícil de modificar sin un nuevo redibujo.

Las principales características de este lenguaje son:

Se puede ejecutar en un ordenador

Es una forma de representación sencilla de utilizar y de manipular.

Facilita el paso del programa al lenguaje de programación.

Es independiente del lenguaje de programación que se vaya a utilizar.

Es un método que facilita la programación y solución al algoritmo del programa.

Se trata de una herramienta que los analistas de sistemas utilizan para comunicar a los
programadores la estructura del programa que van a realizar.

Diagramas de Flujo
En Internet existen numerosas herramientas que pueden ayudarte a crear diagramas de flujo.
Aquí te proponemos dos gratuitas:

 draw.io: Permite guardar los diagramas en el disco duro de tu ordenador, Gdrive,


OneDrive o Dropbox.
 Diagramly: Posibilita crear diagramas de flujo o mapas mentales.

2) EXPRESAR UN ALGORITMO CON UN DIAGRAMA DE FLUJO


DIAGRAMA DE FLUJO
Diagrama de flujo es un diagrama que utiliza símbolo estándar y en el que cada paso del
algoritmo se visualiza dentro del símbolo adecuado.
Se les llama diagramas de flujo porque los símbolos utilizados se conectan por medio de flechas
para indicar la secuencia de operación.

Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término. Además,
todo camino de ejecución debe permitir llegar desde el inicio hasta el término. Las siguientes son
acciones previas a la realización del diagrama de flujo: identificar las ideas principales a ser
incluidas en el diagrama de flujo. Definir qué se espera obtener del diagrama de flujo. Identificar
quién lo empleará y cómo. Establecer el nivel de detalle requerido. Determinar los límites del
proceso a describir. Los pasos a seguir para construir el diagrama de flujo son: establecer el
alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del
diagrama.
Diagramas estructurados (Nassi - Schneiderman)

El diagrama estructurado N-S es una técnica hibrida (una mezcla) entre Diagramas de Flujo y
Pseudocódigo.

Esta técnica, también conocida como Diagrama de Chapín, utiliza una serie de cajas, similar a
los diagramas de flujos, pero no requiere la utilización de flechas, debido a que su flujo siempre
es descendente.
Transcripción de Clasificación de algoritmos
1.- Tipos de algoritmos según su función
Deterministas: aquellos en los que en cada iteración se decide de forma única el paso siguiente.

No deterministas: aquellos en los que en cada iteración podemos decidir entre varias posibilidades y
consumirlas todas antes de la siguiente iteración. Como hemos visto en los puntos anteriores los
algoritmos tienen diferentes características entre ellas está la necesidad de utilizar una serie de recursos,
como son el tiempo y la memoria. Dichos recursos hay que tenerlos muy en cuenta a la hora de
implementar los algoritmos en una máquina determinada.
Tiempo: como el período transcurrido desde el inicio de la ejecución del algoritmo hasta el momento que
finaliza la ejecución.

Clasificación y Tipos de algoritmos


Se ha clasificado a los algoritmos de diversas formas, de acuerdo con algunos de sus
atributos. Por ejemplo:

A) Según el sistema de signos con el que describen los pasos a seguir, se reconocen:

–Algoritmos cualitativos: cuando se hace a través de palabras, es decir, las


instrucciones son verbales. Sucede, por ejemplo, con recetas de cocina.

–Algoritmos cuantitativos: cuando se hace a través de cálculos numéricos. Se puede


hacer un algoritmo, por ejemplo, para obtener la raíz cuadrada de un número.
B) Según su función, los algoritmos pueden ser:

–Algoritmos de ordenamiento: secuencian los elementos que ingresan a partir de


un cierto orden, en general, según un orden numérico o léxico.

–Algoritmos de búsqueda: al contrario de realizar operaciones o secuenciar


elementos, se dedica a encontrar dentro de una lista que ingresa, uno o varios
elementos en particular que cumplan con el conjunto de condiciones dadas.

–Algoritmos de encaminamiento: deciden de qué modo se deberá transmitir algo


que llega, y cómo seguirá un conjunto de pasos encadenados. Se dividen
fundamentalmente entre adaptativos y estáticos, los primeros con cierta capacidad
de aprendizaje y ajuste a la circunstancia, mientras que los segundos funcionan
mecánicamente, siempre del mismo modo. Es importante decir que los algoritmos de
encaminamiento cuentan con una propia subdivisión, según el camino que se toma
para que la transmisión llegue de manera efectiva (ejemplos de estos tipos son: por el
camino más corto, de manera óptima, basado en el flujo, etc.).

C) También los algoritmos han sido clasificados según la estrategia que se utiliza para
llegar al resultado. Veamos algunos ejemplos:

–Algoritmos probabilísticos: no se puede estar seguro de la exactitud de la


respuesta que darán. Se agrupan en distintos subtipos, pero con esa premisa: o bien
presentan soluciones aproximadas del problema, o bien presentan soluciones que
pueden ser correctas pero también erróneas.

–Algoritmo cotidiano: es el que se da en la vida común de las personas, no se aplica


en sistemas informáticos ni en nada ajeno al día a día. Muchas de las decisiones que se
toman desde que uno se despierta por la mañana pertenecen a este grupo.

–Algoritmo heurístico: abandona alguno de los objetivos como recurso para terminar
llegando a la solución. En general, son utilizados cuando no existe una solución
mediante las vías tradicionales.

–Algoritmo de escalada: se comienza con una solución insatisfactoria (que no


cumple la entrada y la salida), y se la va modificando aproximándose a lo que se busca.
En algún momento, estaremos cerca de (o llegaremos a) la solución correcta.

–Algoritmo voraz: Con la idea de llegar a una solución óptima definitiva, elige analizar
cada paso como único y elegir la solución óptima para ese paso.

–Algoritmo determinista: es completamente lineal (cada paso tiene un paso sucesor


y un paso predecesor) y por lo tanto predictivo, si se conocen sus entradas y su forma
de proceder. El algoritmo de Euclides, que permite averiguar el máximo común divisor
entre dos números, responde a este tipo. Se distinguen de los no deterministas,
donde el algoritmo tiene un comportamiento en forma de árbol.

Algoritmos según su función


Se dividen en dos o tres grandes grupos según diversos autores:

 Algoritmos de búsqueda: Denominados de esta manera porque son creados para facilitar la búsqueda de
ciertos elementos dentro de un bloque o estructura de datos. Por ejemplo, hallar un determinado dentro
de una base de datos o determinar el mejor movimiento en una partida de un juego como solitario.
 Algoritmos de ordenamiento: Los algoritmos matematicos de este tipo permiten dar un orden secuencial
a ciertos datos tomando como referencia uno o varios parámetros. Mayor, menor, promedio, son valores
que se ejecutan con este tipo de algoritmos. Requieren gran complejidad computacional.
 Algoritmos de encaminamiento: Definen la mejor ruta de salida de un dato. Son básicamente un
mecanismo de distribución de datos. Por ejemplo, los GPS, los cuales se basan en establecer la ruta de
llegada más óptima.
Algoritmos clasificados según su lenguaje
Los algoritmos informaticos se expresan en dos tipos de lenguaje:

 Algoritmos cualitativos: Instrucciones verbales en lenguaje comprendido por el hombre. No solo se


utiliza en los pasos, sino que incluye las notas o instrucciones.
 Algoritmos cuantitativos: Son los que requieren de cálculos numéricos para lograr establecer los pasos a
seguir. Por ejemplo la resolución de un problema matemático de parte de la calculadora de un ordenador
o dispositivo móvil.
Demás tipos de algoritmos según sus características
No todos los algoritmos pueden ser clasificados según su función o naturaleza, para muchos resulta más preciso
sencillamente una descripción. Dicho esto también los algoritmos se dividen en:

 Estáticos: Cuyo funcionamiento siempre es el mismo.


 Adaptativos: Inteligentes hasta cierto punto de programación.
 Probabilísticos: Seleccionan valores aleatorios.

Explicamos las distintas estructuras poniendo ejemplos tanto en


diagrama de flujo como en pseudocódigo.
Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que
en base al resultado de esta comparación, se siga un curso de acción dentro del
programa. Cabe mencionar que la comparación se puede hacer contra otra variable o
contra una constante, según se necesite. Existen tres tipos básicos, las simples, las
dobles y las múltiples.

Simples:
Las estructuras condicionales simples se les conoce como “ Tomas de decisión” .
Estas tomas de decisión tienen la siguiente forma:

Pseudocódigo: Diagrama de flujo:

Dobles:

Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas
posibles en función del cumplimiento o no de una determinada condición. Se
representa de la siguiente forma:

Pseudocódigo: Diagrama de flujo:

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
Instrucción(es):Son las acciones a realizar cuando se cumple o no la condición
si no :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.

Múltiples:

Las estructuras de comparación múltiples, son tomas de decisión especializadas que


permiten comparar una variable contra distintos posibles resultados, ejecutando para
cada caso una serie de instrucciones específicas. La forma común es la siguiente:

Pseudocódigo: Diagrama de flujo:


Múltiples (En caso de):

Las estructuras de comparación múltiples, es una toma de decisión especializada que


permiten evaluar una variable con distintos posibles resultados, ejecutando para cada
caso una serie de instrucciones específicas. La forma es la siguiente:

Pseudocódigo: Diagrama de flujo:

Veamos algunos ejemplos donde se aplique todo lo anterior:

Realizar un algoritmo en donde se pide la edad del usuario; si es mayor de edad debe
aparecer un mensaje indicándolo. Expresarlo en Pseudocódigo y Diagrama de flujos.

Pseudocódigo: Diagrama de flujo:


Se pide leer tres notas del alumno, calcular su definitiva en un rango de 0-5 y enviar un
mensaje donde diga si el alumno aprobó o reprobó el curso. Exprese el algoritmo
usando Pseudocódigo y diagrama de flujos.

Pseudocódigo:

INICIO
Not1, Not2, Not 3 :REAL
Def: REAL
LEA Nota1, Nota2, Nota3
Def ß (Not1 + Not2 + Not3) /3
Si Def < 3 entonces
Escriba “ Reprobó el curso”
Sino
Escriba “ Aprobó el curso”
Fin-Si
FIN

Diagrama de flujo:
Se desea escribir un algoritmo que pida la altura de una persona, si la altura es menor
o igual a 150 cm envíe el mensaje: “ Persona de altura baja” ; si la altura está entre
151 y 170 escriba el mensaje: “ Persona de altura media” y si la altura es mayor al 171
escriba el mensaje: “ Persona alta” . Exprese el algoritmo usando Pseudocódigo y
diagrama de flujos.

Pseudocódigo:

INICIO
Altura: ENTERO
ESCRIBA “ Cuál es tu altura? ”
LEA Altura
Si Altura <=150 entonces
ESCRIBA “ persona de altura baja”
Sino
Si Altura <=170 entonces
ESCRIBA “ persona de altura media”
Sino
Si Altura>170 ENTONCES
ESCRIBA “ persona alta”
Fin-Si
Fin-Si
Fin-Si
FIN

¡Es importante ser ordenado en el código que se escribe!

Diagrama de flujo: