» » Algoritmos

Algoritmos

      

Algoritmos

Existen muchas y muy variadas definiciones de lo que es un algoritmo, dependiendo del autor podemos distinguir las siguientes:

Algoritmo es una secuencia finita de instrucciones, cada una de las cuales tiene un significado preciso y puede ejecutarse con una cantidad finita de esfuerzo en un tiempo finito. Ha de tener las siguientes características: legible, correcto, modular, eficiente, estructurado, no ambiguo y a ser posible se ha de desarrollar en el menor tiempo posible. 

En pocas palabras un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. 

Características De Un Algoritmo


Definibilidad: El algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda ambigüedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemático o de programación para un computador.

Entrada: El algoritmo tendrá cero o más entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenecen además a conjuntos especificados de objetos.Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean aptas para su interpretación por el computador.

Salida: El algoritmo tiene una o más salidas, en relación con las entradas.

Efectividad: Se entiende por esto que una persona sea capaz de realizar el algoritmo de modo exacto y sin ayuda de una máquina en un lapso de tiempo finito.

Medios De Expresión De Un Algoritmo


Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. 

La descripción de un algoritmo usualmente se hace en tres niveles:

Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. 

Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución. 

Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.

También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.

Diagramas De Flujo


Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número 

Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.

Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas.

Pseudocódigo


El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren menos espacio para representar instrucciones complejas.

Sistemas formales


La teoría de autómatas y la teoría de funciones recursivas proveen modelos matemáticos que formalizan el concepto de algoritmo. Los modelos más comunes son la máquina de Turing, máquina de registro y funciones μ-recursivas. Estos modelos son tan precisos como un lenguaje máquina, careciendo de expresiones coloquiales o ambigüedad, sin embargo se mantienen independientes de cualquier computadora y de cualquier implementación.


Implementación


Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico y eléctrico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos.


Variables


Son elementos que toman valores específicos de un tipo de datos concreto. La declaración de una variable puede realizarse comenzando con var. Principalmente, existen dos maneras de otorgar valores iníciales a variables:

· Mediante una sentencia de asignación.
 

Pasos Para Realizar Algoritmos


Para la realización de un algoritmo es necesario realizar una secuencia de pasos para llegar a cumplir con la resolución de un problema dado. Para ello, definiremos los siguientes pasos:
  • Análisis previo del Problema: Se debe realizar un análisis del funcionamiento del problema antes que se realice cualquier algoritmo.
  • Definición de Requerimientos: Los problemas a solucionar, esto es, por ejemplo, el sumar dos números, multiplicar dos matrices, ordenar una lista de números, generar un reporte, etc.
  • Identificación de los Módulos: La identificación de los módulos es tan importante como la identificación correcta de los requerimientos, esto porque la correcta identificación de los módulos simplifica considerablemente la realización de los algoritmos que darán solución a los requerimientos identificados en el paso anterior.
  • Realización de los Algoritmos: El algoritmo deberá cumplir con las características que se indicaron para posteriormente implementarse en un lenguaje de programación comprensible por una computadora.
  • Implementación de los Algoritmos: La implementación de los algoritmos se debe realizar en un lenguaje de programación para que una computadora pueda comprender las instrucciones que el algoritmo modela para así poder ejecutarlas y lograr el resultado esperado.
En el último paso ya podemos hablar de una aplicación o programa de computadora, que estará compuesto por una serie de instrucciones que ordenadas una tras otra logran representar los algoritmos diseñados y dar así solución a los requerimientos identificados.

Resolviendo Un Algoritmo

 
Una vez que ya hemos comprendido adecuadamente el problema, podemos escribir el algoritmo. Probablemente necesitaremos reescribir el algoritmo varias veces para mejorarlo. Los algoritmos tienen ciertas características. Cada algoritmo empieza con un nombre que describe la función que realiza. Usualmente empieza con un verbo y termina con un sustantivo, como se muestra en el ejemplo.

Algoritmo para calcular impuesto 

De cada paso de procesamiento en la tabla de definiciones, resulta una o más instrucciones de pseudocódigo. Los elementos en las columnas de entradas y salidas son los argumentos de las instrucciones.

Ejercicio: Supongamos que queremos escribir un programa que convierta una distancia en kilómetros a una distancia en millas. En cada kilómetro hay 0.625 millas. Coloca cada opción en su lugar correcto en la tabla de definiciones.
1) kilómetros
2) millas

¡Por Supuesto! los kilómetros van en la columna de entrada y las millas van en la columna de salida.

Para transformar los kilómetros en millas necesitamos un proceso. El verbo convertir en el enunciado del problema indica el proceso que necesitamos. Así que tenemos que calcular el número de millas que es equivalente al número de kilómetros dado. Y necesitamos un proceso que muestre las millas calculadas.

Podemos utilizar nuestra tabla para escribir nuestro algoritmo en pseudocódigo.

Algoritmo para convertir kilómetros en millas.

Cuando se ejecute el programa, lo que el usuario debe ver en pantalla, será algo como lo siguiente.

Por otro lado veamos otro ejemplo: Veamos ahora un ejemplo de diseño e implementación de un algoritmo. Consideremos el problema de resolver una serie como la de a continuación:


Analisis Del Problema


Paso 1: Se debe determinar el valor de la variable S a partir de los valores x e y ingresados. Estos valores deben ser leídos y procesados de acuerdo a la serie presentada para obtener el valor de ésta.
Paso 2: El requerimiento principal es el determinar el valor de S y mostrarlo por pantalla.
Paso 3: El problema es sencillo y puede ser resuelto por medio de dos módulos, uno que realice la función exponencial y otro que desarrolle la serie haciendo la llamada respectiva al módulo anterior.
Paso 4: Al realizar los algoritmos debemos tener presentes las características que debe tener un algoritmo para poder llegar a una correcta implementación de éstos. Para ello utilizaremos los símbolos descritos y con ellos lograremos el algoritmo que a continuación se presenta.
 
Representación en un Algoritmo
Inicio
Leer x, n
S  = 1
Mientras que i=2,n
Calcular =X
R=R/i
S=S+R
Mostrar s
Fin
Algoritmos Solución:

Algoritmos


Categorias: Algoritmos / hardware / Internet / Lenguajes De Programacion / Noticias / Software / Tutorial
Añadir Comentario
Información
Usuarios que están en este grupo no pueden dejar comentarios en la página