Anda di halaman 1dari 6

Algoritmos

Definición:
Un algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una
tarea específica, como la solución de un problema. Los algoritmos son independientes tanto
del lenguaje de programación en que se expresan como de la computadora que los ejecuta.
En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación
y ejecutarse en una computadora distinta; sin embargo el algoritmo será siempre el mismo.

Reseña histórica:
La palabra algoritmo proviene del nombre del matemático llamado Abu Abdullah
Muhammad bin Musa al-Khwarizmi (hay muchas variantes para el nombre al usar el
alfabeto latín, tales como Al-Khorezmi, Al-Khwarizmi, Al-Khawarizmi, Al-Khawaritzmi o Al-
Khowarizmi) que vivió entre los siglos VIII y IX.
Su trabajo consistió en preservar y difundir el conocimiento de la antigua Grecia y
de la India. Sus libros eran de fácil comprensión, de ahí que su principal valor no fuera el
de crear nuevos teoremas o nuevas corrientes de pensamiento, sino el de simplificar las
matemáticas a un nivel lo suficientemente bajo para que pudiera ser comprendido por un
amplio público, explicó que, mediante una especificación clara y concisa de cómo calcular
sistemáticamente, se podrían definir algoritmos que fueran usados en dispositivos
mecánicos similares a un ábaco en vez de las manos.
Aunque no haya sido él el inventor del primer algoritmo, merece que este concepto
esté asociado a su nombre. Al-Khorezmi fue sin duda el primer pensador algorítmico.
Ya en el siglo XIX, se produjo el primer algoritmo escrito para un computador. La
autora fue Ada Byron, en cuyos escritos se detallaban la máquina analítica de Charles
Babbage en 1842. Por ello que es considerada por muchos como la primera programadora
aunque Babbage no completó su máquina por lo que el algoritmo nunca se implementó.

Características de los algoritmos:

Las características fundamentales que debe cumplir todo algoritmo son:

1. Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.

2. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se


debe obtener el mismo resultado cada vez.

3. Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en


algún momento; o sea debe de tener un número finito de pasos.
Objetivo general:

Plantear, examinar y resolver diferentes situaciones donde el empleo de algoritmos


es completamente necesario en asocio con la implementación de modelos matemáticos y
físicos, para una posterior escritura de un código fuente en un lenguaje en particular.

Importancia:

Los algoritmos poseen hoy una gran importancia tanto para informática, robótica y
ciencias de la computación, por medio de algoritmos se llega a un orden de ideas y un
proceso correcto en la elaboración de maquinarias y robots lo que conlleva a un avance en
la tecnología y un mayor progreso a nivel mundial

Metodología para la creación de algoritmos:

La creación de un algoritmo y su programación es una etapa, pero el programador


debe realizar varios pasos antes y después.

El computador es una máquina que por sí sola no puede hacer nada, necesita ser
programada, es decir, introducirle instrucciones u órdenes que le digan lo que tiene que
hacer. Un programa es la solución a un problema inicial, así que todo comienza allí: en el
Problema. El proceso de programación es el siguiente: Dado un determinado problema el
programador debe idear una solución y expresarla usando un algoritmo, luego de esto, debe
codificarlo en un determinado lenguaje de programación y por último ejecutar el programa
en el computador el cual refleja una solución al problema inicial.

Metodología para la solución de problemas por medio de computadora:

 Definición del problema: Esta fase está dada por el enunciado del problema, el cual
requiere una definición clara y precisa. Es importante que se conozca lo que se
desea que realice la computadora; mientras esto no se conozca del todo no tiene
mucho caso continuar con la siguiente etapa.

 Análisis del problema: Una vez que se ha comprendido lo que se desea de la


computadora, es necesario definir:
1. Los datos de entrada.
2. Cuál es la información que se desea producir (salida)
3. Los métodos y fórmulas que se necesitan para procesar los datos.

 Diseño del algoritmo: El diseño básico de un algoritmo debe contener:


1. Debe tener un punto particular de inicio.
2. Debe ser definido, no debe permitir dobles interpretaciones.
3. Debe ser general, es decir, soportar la mayoría de las variantes que se
puedan presentar en la definición del problema.
4. Debe ser finito en tamaño y tiempo de ejecución.
5. Diseño del Algoritmo.
6. Prueba de escritorio o Depuración.
Cabe destacar que se le llama prueba de escritorio a la comprobación que se hace
de un algoritmo para saber si está bien hecho. Esta prueba consiste en tomar datos
específicos como entrada y seguir la secuencia indicada en el algoritmo hasta obtener un
resultado, el análisis de estos resultados indicará si el algoritmo está correcto o si por el
contrario hay necesidad de corregirlo o hacerle ajustes.

Tipos de algoritmos:

Se ha clasificado a los algoritmos de diversas formas, de acuerdo con algunos de sus


atributos. Por ejemplo:

1) 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.

2) 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.

3) 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.

Lenguaje algorítmico:

Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos
lenguajes permiten describir los pasos con mayor o menor detalle:

 Pseudocódigo: (o falso lenguaje) es comúnmente utilizado por los programadores


para dar una explicación del paradigma que tomó el mismo programador para hacer
sus códigos, esto quiere decir que el pseudocódigo no es programable sino facilita
la programación, su principal objetivo es el de representar la solución a un algoritmo
de la forma más detallada posible, y a su vez lo más parecida posible al lenguaje
que posteriormente se utilizará para la codificación del mismo.

 Diagrama de flujo: es un diagrama que describe un proceso, sistema o algoritmo


informático mediante símbolos (rectángulos, óvalos, diamantes y otras numerosas
figuras) para definir el tipo de paso, junto con flechas conectoras que establecen el
flujo y la secuencia, son usados para representar algoritmos pequeños ya que
abarcan mucho espacio y su construcción es laboriosa.

Principales símbolos usados para escribir algoritmos:


Lenguajes de programación de algoritmos:

Es aquel elemento dentro de la informática que nos permite crear programas


mediante un conjunto de instrucciones, operadores y reglas de sintaxis; que pone a
disposición del programador para que este pueda comunicarse con los dispositivos
hardware y software existentes.

Los principales tipos de lenguajes utilizados son tres:

 Lenguaje Máquina: Son aquéllos que están escritos en lenguajes directamente


inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas
binarias (cadenas o series de caracteres de dígitos 0 y 1) que especifican una
operación y las posiciones (dirección) de memoria implicadas en la operación se
denominan instrucciones de máquina o código máquina. El código máquina es el
conocido código binario.

 Lenguajes de Bajo Nivel: Son más fáciles de utilizar que los lenguajes máquina,
pero al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo
nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador
son instrucciones conocidas como nemotécnicos. Por ejemplo, nemotécnicos
típicos de operaciones aritméticas son: en inglés: ADD, SUB, DIV, etc.; en español:
SUM, RES, DIV, etc.

 Lenguajes de Alto Nivel: Estos lenguajes son los más utilizados por los
programadores. Están diseñados para que las personas escriban y entiendan los
programas de un modo mucho más fácil que los lenguajes máquina y
ensambladores. Un programa escrito en lenguaje de alto nivel es independiente de
la máquina (las instrucciones no dependen del diseño del hardware o de una
computadora en particular), por lo que estos programas son portables o
transportables. Los programas escritos en lenguaje de alto nivel pueden ser
ejecutados con poca o ninguna modificación en diferentes tipos de computadoras.

Principales software para programación de algoritmos:

 JAVA
 C
 C++
 PHYTON
 VISUAL BASIC
Bibliografía

Para la realización de este trabajo se tomaron referencias de trabajos


contenidos en las siguientes páginas de internet:

 http://nayar.uan.edu.mx/~iavalos (Tema: Algoritmos Computacionales)

 http://html.rincondelvago.com/lenguajes-algoritmicos_historia-y-sus-
aplicaciones.html

 http://catedraprogramacion.forosactivos.net/t83-definicion-de-lenguaje-de-
programacion-tipos-ejemplos

 http://noticias.universia.com.ar/consejos-
profesionales/noticia/2016/02/22/1136443/conoce-cuales-lenguajes-
programacion-populares.html

Anda mungkin juga menyukai