Está en la página 1de 11

Qu es un algoritmo?

Definicin:
Un algoritmo es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y
finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a
quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los
pasos sucesivos se llega a un estado final y se obtiene una solucin.
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas.
Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un
aparato, o las instrucciones que recibe un trabajador por parte de su patrn.
Una vez que tenemos la definicin de algoritmo, podemos entender que ste es un conjunto
finito de instrucciones que se deben seguir para resolver un problema. No obstante, desde el
punto de vista de la programacin de computadoras, la definicin del algoritmo como la
especificacin de una serie de pasos, es incompleta. Debe observarse que las computadoras
son equipos que tienen limitaciones fsicas en cuanto a capacidad de almacenamiento y
procesamiento. Por consiguiente debemos refinar un poco ms nuestra definicin de
algoritmo para hacerla aplicable de manera efectiva en el mbito de la informtica.
Un algoritmo se entiende como una sucesin finita de pasos que debe cumplir las siguientes
especificaciones:

Cada paso del algoritmo debe estar bien definido: Esto significa que la definicin
de un paso debe ser suficientemente clara, para que una persona pueda entenderla y
realizarla. Si bien no se puede dar un criterio determinstico para decidir si un paso
est bien definido, debemos apelar al sentido comn para decidir que un paso est
especificado sin ambigedades.

Un algoritmo debe tener un principio y un fin: Un programa es un algoritmo


escrito con un objetivo: conseguir un resultado. No tiene sentido crear un programa
que espere ~ segundos (infinitos segundos) y luego escriba en pantalla Hola
Mundo!, del mismo modo que un algoritmo debe tener un principio bien definido
(tampoco tiene sentido el algoritmo haz nada, y luego escribe Hola Mundo!)

Qu es un Diagrama de Flujo?

Un diagrama de flujo es una representacin grfica de un algoritmo o proceso. Se utiliza en


disciplinas como la programacin, la economa, los procesos industriales y la psicologa
cognitiva. Estos diagramas utilizan smbolos con significados bien definidos que
representan los pasos del algoritmo, y representan el flujo de ejecucin mediante flechas
que conectan los puntos de inicio y de trmino.

Caractersticas
Un diagrama de flujo siempre tiene un nico punto de inicio y un nico punto de trmino.
Adems, todo camino de ejecucin debe permitir llegar desde el inicio hasta el trmino.
Las siguientes son acciones previas a la realizacin del diagrama de flujo:

Identificar las ideas principales a ser incluidas en el diagrama de flujo.


Deben estar presentes el dueo o responsable del proceso, los dueos o
responsables del proceso anterior y posterior y de otros procesos
interrelacionados, otras partes interesadas.
Definir qu se espera obtener del diagrama de flujo.
Identificar quin lo emplear y cmo.
Establecer el nivel de detalle requerido.
Determinar los lmites 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. Frecuentemente el comienzo es la salida
del proceso previo y el final la entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos que estn
incluidos en el proceso a describir y su orden cronolgico.
Si el nivel de detalle definido incluye actividades menores, listarlas tambin.
Identificar y listar los puntos de decisin.
Construir el diagrama respetando la secuencia cronolgica y asignando los
correspondientes smbolos.
Asignar un ttulo al diagrama y verificar que est completo y describa con
exactitud el proceso elegido.

Ventajas de los diagramas de flujo

Favorecen la comprensin del proceso a travs de mostrarlo como un dibujo.


El cerebro humano reconoce fcilmente los dibujos. Un buen diagrama de
flujo reemplaza varias pginas de texto.
Permiten identificar los problemas y las oportunidades de mejora del
proceso. Se identifican los pasos redundantes, los flujos de los reprocesos ,
los conflictos de autoridad, las responsabilidades, los cuellos de botella, y
los puntos de decisin.
Muestran las interfaces cliente-proveedor y las transacciones que en ellas se
realizan, facilitando a los empleados el anlisis de las mismas.
Son una excelente herramienta para capacitar a los nuevos empleados y
tambin a los que desarrollan la tarea, cuando se realizan mejoras en el
proceso.

Tabla completa de simbologa utilizada para el Diseo de


un diagrama de flujo.

Reglas de los diagramas de flujo

Debe de indicar claramente dnde inicia y dnde termina el diagrama.


Cualquier camino del diagrama debe de llevarte siempre a la terminal de fin.
Organizar los smbolos de tal forma que siga visualmente el flujo de arriba hacia
abajo y de izquierda a derecha.
No usar lenguaje de programacin dentro de los smbolos.
Centrar el diagrama en la pgina.
Las lneas deben ser verticales u horizontales, nunca diagonales.

No cruzar las lneas de flujo, emplear los conectores adecuados sin hacer uso
excesivo de ellos.

No fraccionar el diagrama con el uso excesivo de conectores.


Solo debe llegar una sola lnea de flujo a un smbolo. Pero pueden llegar muchas
lneas de flujo a otras lneas.

Las lneas de flujo deben de entrar a un smbolo por la parte superior y/o izquierda y
salir de l por la parte inferior y/o derecha.
Evitar que el diagrama sobrepase una pgina; de no ser posible, enumerar y emplear
los conectores correspondientes.
Usar lgica positiva, es decir, realizar procesos cuando es verdadera la condicin y
expresar las condiciones de manera clara (por ej., no es a =/= de b ==> a=b).
Comentar al margen nicamente cuando sea necesario.

Qu es Pseudocdigo?

En pseudocdigo se describen los algoritmos utilizando una mezcla de lenguaje comn,


con instrucciones de programacin, palabras claves, etc. El objetivo es que el
programador se centre en la solucin lgica del algoritmo y no en la implementacin en
un lenguaje de programacin concreto (con las posibles complicaciones en las reglas
sintcticas), o en otras palabras, slo ayudan a pensar un programa antes de escribirlo
en un lenguaje de programacin formal.

Programas: Algoritmos para ser ejecutados por una


computadora
Un ordenador o computadora est, desde que se enciende hasta que se apaga totalmente,
ejecutando un algoritmo. Por lo general, estos algoritmos, escritos para que los entienda una
mquina, terminan siendo vagos y confusos para la mayora de quienes no han estudiado
programacin. Una mquina no puede entender escribe Hola Mundo! porque no sabe lo
que es escribe ni lo que es una letra o un espacio, ni lo que es una pantalla. En cambio,
puede entender mov eax, 0x23afb31 (escribir en la direccin de memoria eax el nmero
0x23afb31), aunque nosotros no. Un ordenador es solo un circuito electrnico, no funciona
a base de magia ni nada por el estilo.
Debido a lo difcil que es escribir en lenguaje mquina, e incluso en ensamblador, se
crearon diferentes lenguajes de programacin, ms o menos parecidos al ingls actual y a
cmo se redacta un algoritmo. Estos lenguajes proveen de cosas tan complejas para una
mquina como los bucles for. Los compiladores se encargan de traducir esos ficheros al
lenguaje ensamblador que corresponda, el ensamblador debe traducirlos a lenguaje
mquina y el enlazador de juntar todo ese cdigo mquina en un solo archivo, el programa.
Y el microprocesador, se encarga de ir encendiendo o apagando transistores segn lo que le
diga el cdigo mquina. Es fcil entender el lenguaje de alto nivel en comparacin al
lenguaje maquina pero de la evolucin surgieron.

Importante: Es fundamental tener conocimiento de lo siguiente.

Qu instrucciones ejecuta un ordenador?


Lenguaje de mquina

Cada tipo de microprocesador contiene un conjunto de instrucciones que realizan ciertas


operaciones sobre una o ms palabras de bits; las instrucciones van tambin codificadas en
bits. No queremos hacer aqu una discusin sobre arquitectura de computadoras, por lo que
con esto debe valer por ahora.
Se entiende que escribir slo con dos teclas, el 0 y el 1, es incmodo. Histricamente, a la
hora de disear un algoritmo para que el ordenador ejecutara, se escriba mediante unas
etiquetas mnemotcnicas; ste fue el origen del lenguaje ensamblador. Por ejemplo quizs
en una cierta arquitectura la instruccin de borrado de memoria (Memory Clear, en ingls)
corresponda al cdigo 010. Pronto surgieron programas que lean, siguiendo el ejemplo,
MC, y lo sustituan por 010.

Lenguaje ensamblador
El cdigo mquina tena dos grandes inconvenientes para los programadores:

las instrucciones eran difciles de recordar, ya que no guardaban relacin con la


operacin que se est realizando.
puede haber, y de hecho hay, diferencias entre las instrucciones de un procesador a
otro.

Todo esto ha llevado a poner nombre a las instrucciones de cdigo mquina de manera
que a una secuencia concreta de bits que realiza una operacin se le pone un nombre
sencillo que identifique la operacin. Esta traduccin a un lenguaje ms sencillo para las
personas resulta en una mayor comodidad para el programador, adems el proceso de
traduccin inverso de lenguaje ensamblador a cdigo mquina puede ser realizado por un
sencillo programa.

Programacin para seres humanos


Lenguajes de alto nivel
Sobre este lenguaje ensamblador inicial se fueron construyendo otros lenguajes de
programacin de ms alto nivel; esto significa que ocultan ciertos aspectos de manera que
el programador no se ha de preocupar sobre si en la mquina que quiere que se ejecute el
algoritmo el MC corresponde a la instruccin 101 o 010. Se produce, por tanto, una
abstraccin de datos, muy deseable para poder utilizar el trabajo de otros para avanzar un
paso ms en vez de tener que reinventar la rueda, como se suele decir. Estos textos en los
que se codifican los algoritmos son los cdigos fuente; siguen las reglas sintcticas de un
determinado lenguaje de programacin. Existen numerosos lenguajes de programacin, y se
utiliza uno u otro segn sus caractersticas se adecen ms o menos a la resolucin de
nuestro problema.

Traductores e intrpretes
Tras la escritura del algoritmo, un compilador o un intrprete (otros programas)
transformarn el texto en cdigo mquina que el procesador es capaz de ejecutar.
Toda esta abstraccin permite resolver problemas alejados de sumar nmeros binarios,
como pueden ser la consulta de esta misma enciclopedia o jugar a un videojuego en 3D.

Lenguajes interpretados vs. Lenguajes compilados


Los lenguajes interpretados nacen como respuesta a la dificultad de manejo de los
compilados. Un lenguaje compilado es slo apto para un sistema operativo o formato de
ejecutable (en Linux y Unix System V es ELF, en Windows o incluso en BSD es muy
diferente), y es tedioso de manejar: para comprobar bugs o errores el computador debe:

Compilar cada uno de los ficheros de cdigo.


Ensamblarlos en ficheros objeto.
Enlazar los ficheros objeto.
Volverlos a ensamblar.

Todo eso no es gran derroche de recursos para un ordenador medio actualmente, pero dura
sus 10 o 15 segundos. En cambio, con un lenguaje interpretado, el programa intrprete
analiza el fichero de cdigo y lo va ejecutando en tiempo real, sin compilarlo ni
ensamblarlo. Otra de las ventajas de los lenguajes interpretados es que son multiplataforma:
un programa en Perl, por ejemplo, no debe ser compilado dos veces (una para Unix y otra
para Windows). Con que haya diferentes versiones del intrprete en cada uno de esos
computadoras, especficamente compilados para ellos, basta.

Sus desventajas:

Consume muchos recursos de memoria, sobre todo RAM.


Se depende del intrprete: si no tienes instalado el intrprete que corresponda, no
podrs ejecutar el programa.

Ejemplos de lenguajes interpretados son C#, PHP, Perl, Python, Tcl/Tk, BASIC, LISP (en
algunas de sus versiones)

Tres reglas de la programacin estructurada.


Secuencial: Indica que las instrucciones del cdigo se lean de principio a fin.
Iteracin: Segn la condicin, un nmero de instrucciones podran repetirse un nmero
determinado de veces.
Decisin: Dependiendo de las condiciones, se ejecutaran o no un conjunto de instrucciones.

Ejemplos:
Ejemplo de un algoritmo de la vida real (Marcar de un telfono publico de
monedas ).
1.
2.
3.
4.
5.
6.
7.

8.
9.

Inicio
Descolgar la bocina
Insertar monedas
Marcar el numero telefnico
Esperar a que contesten, Si contestan ir al paso 6, si no contestan ir
al paso 7
Conversar.
Colgar, Si sobra dinero ir al paso 8, si no sobra dinero ir al paso 9
regresa cambio.(Suponiendo que siempre tiene cambio el telfono)
Fin

Ahora crea en tu cuaderno 3 ejemplos de tu vida cotidiana.

También podría gustarte