ALGORITMO
En matemticas, ciencias de la computacin, y disciplinas relacionadas, un algoritmo es una lista bien
definida, ordenada y finita de operaciones que permite hallar la solucin a un problema. Dado un estado
inicial y una entrada, a travs de pasos sucesivos y bien definidos se llega a un estado final, obteniendo
una solucin. Los algoritmos son objeto de estudio de la algoritmia.
El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto
de programa. Mientras el primero es la especificacin de un conjunto de pasos (operaciones,
instrucciones, rdenes,...) orientados a la resolucin de un problema, el segundo es ese conjunto de
operaciones especificadas en un determinado lenguaje de programacin y para un computador concreto,
susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo, estrictamente hablando, no
puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programacin, en un circuito
elctrico, en un aparato mecnico, usando papel y lpiz, o en algn otro modelo de computacin.
En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas.
En las instrucciones que recibe un trabajador por parte de su patrn. Tambin existen ejemplos de ndole
matemtico, como el algoritmo de la divisin para calcular el cociente de dos nmeros, el algoritmo de
Euclides para calcular el mximo comn divisor de dos enteros positivos, o el mtodo de Gauss para
resolver un Sistema lineal de ecuaciones.
Ejemplo:
Los algoritmos son modos de resolucin de problemas, cabe aclarar que no slo son aplicables a la
actividad intelectual, sino tambin a todo tipo de problemas relacionados con actividades cotidianas.
Para poder entender mejor el concepto de algoritmo se utilizar como ejemplo el clculo de una
multiplicacin:
WILMAR VALLEJO G.
Pgina 1
Diagrama de flujo sencillo con los pasos a seguir si una lmpara no funciona.
Smbolos utilizados
Para poder hacer comprensibles los diagramas a todas las personas, los
smbolos se someten a una normalizacin; es decir, se hicieron smbolos casi
universales, ya que, en un principio cada usuario podra tener sus propios
smbolos para representar sus procesos en forma de Diagrama de flujo. Esto
trajo como consecuencia que slo aquel que conoca sus smbolos, los poda
interpretar. La simbologa utilizada para la elaboracin de diagramas de flujo es
variable y debe ajustarse a un patrn definido previamente.
WILMAR VALLEJO G.
Pgina 2
Existe siempre un camino que permite llegar a una solucin (finalizacin del algoritmo).
Existe un nico inicio del proceso.
Existe un nico punto de fin para el proceso de flujo (salvo del rombo que indica una comparacin
con dos caminos posibles).
Recomendaciones
A su vez, es importante que al construir diagramas de flujo, se observen las siguientes recomendaciones:
WILMAR VALLEJO G.
Pgina 3
Tener cuidado con los flujos y procesos no etiquetados. Esto suele ser un indicio de falta de esmero,
pero puede esconder un error an ms grave: a veces el analista no etiqueta un flujo o un proceso
porque simplemente no se le ocurre algn nombre razonable.
PSEUDOCDIGO
Pseudocdigo es la descripcin de un algoritmo que asemeja a un lenguaje de programacin pero con
algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo,
entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El
pseudocdigo no est regido por ningn estndar. pseudo viene de falso y por ende es un cdigo al que
aunque es entendible no se aplica al proceso que debe realizar la maquina.
LENGUAJE DE PROGRAMACION
Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento
de una mquina, particularmente una computadora. Consiste en un conjunto de smbolos y reglas
sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones.
Aunque muchas veces se usa lenguaje de programacin y lenguaje informtico como si fuesen
sinnimos, no tiene por qu ser as, ya que los lenguajes informticos engloban a los lenguajes de
programacin y a otros ms, como, por ejemplo, el HTML (lenguaje para el marcado de pginas web).
Un lenguaje de programacin permite a uno o ms programadores especificar de manera precisa: sobre
qu datos una computadora debe operar, cmo deben ser estos almacenados, transmitidos y qu
acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de un lenguaje que
intenta estar relativamente prximo al lenguaje humano o natural, tal como sucede con el lenguaje
Lxico. Una caracterstica relevante de los lenguajes de programacin es precisamente que ms de un
programador puedan tener un conjunto comn de instrucciones que puedan ser comprendidas entre ellos
para realizar la construccin del programa de forma colaborativa.
Los procesadores usados en las computadoras son capaces de entender y actuar segn lo indican
programas escritos en un lenguaje fijo llamado lenguaje de mquina. Todo programa escrito en otro
lenguaje puede ser ejecutado de dos maneras:
Mediante un programa que va adaptando las instrucciones conforme son encontradas. A este proceso se
lo llama interpretar y a los programas que lo hacen se los conoce como intrpretes.
Traduciendo este programa al programa equivalente escrito en lenguaje de mquina. A ese proceso se lo
llama compilar y al traductor se lo conoce como un malhecho compilador.
Clasificacin de los lenguajes de programacin
Los lenguajes de programacin se determinan segn el nivel de abstraccin, Segn la forma de ejecucin
y Segn el paradigma de programacin que poseen cada uno de ellos y esos pueden ser:
Segn su nivel de abstraccin
Lenguajes de bajo nivel
Los lenguajes de bajo nivel son lenguajes de programacin que se acercan al funcionamiento de una
computadora. El lenguaje de ms bajo nivel es, por excelencia, el cdigo mquina. A ste le sigue el
lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de
la computadora de forma directa.
WILMAR VALLEJO G.
Pgina 4
C++
Del phi
Java
Perl
Lenguajes Funcionales
WILMAR VALLEJO G.
Pgina 5
Haskell
Scheme
Miranda
Hbridos:
Ocaml
ML
Scala
Standard ML
Lisp
Lenguajes Lgicos
Prolog
Lenguajes orientados a objetos
C++
Clarin
Visual
Del phi
FoxPro
Ejemplo:
Java
WILMAR VALLEJO G.
Pgina 6
TALLER
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
WILMAR VALLEJO G.
Pgina 7