Anda di halaman 1dari 4

Universidad Nacional de Salta - Facultad de Ciencias Exactas

Henry Suárez
Año 2008

TP Nº5
Investigar

• Al menos dos definiciones de algoritmo (citar fuente) y enunciar sus características principales.
• Características de las diferentes herramientas para especificar algoritmos, en particular:
lenguaje natural, diagramas N-S (diagramas de bloques), diagramas de flujo y pseudocódigo.
• Breve reseña histórica relativa a la programación estructurada.

Algoritmo:
Concepto de algoritmo
La historia de la informática señala a Abu Abdullah Muhammad bin Musa al-
Khwarizmi, una de las grandes figuras de la matemática árabe medieval como
descubridor del concepto de algoritmo. En su obra "aljabar wa-al-muqabala" sienta las
bases del algebra, cuyo nombre procede del comienzo del título, así como "algoritmo"
procede del nombre del autor, al-Khwarizmi.

• Definición I:
Podemos definir algoritmo como un conjunto de pasos o instrucciones finito que se
deben seguir para realizar una determinada tarea.
Para que dicho conjunto de instrucciones sea considerado un algoritmo, ha de
cumplir algunas características:
- Un mismo conjunto de datos de partida se debe llegar siempre a un mismo
conjunto de resultados.
- Las instrucciones han de ser precisas, sin ambigüedad alguna.
- El conjunto ha de ser finito.
Pedagógicamente se suele dar como ejemplo de algoritmo una receta de cocina. La
analogía es clara, siempre que no olvidemos que estamos ante un concepto
matemático.

Fuente:
http://www.error500.net/garbagecollector/archives/categorias/apuntes/concepto_de_al
goritmo.php

• Definición II:
Un algoritmo es un conjunto de operaciones ordenadas de modo tal en que puedan
resolver un problema.
La ciencia que estudia los algoritmos se llama Algoritmia, siendo la famosa
Máquina de Turing la que ha formalizado sus conceptos en un modelo
computacional.
Los algoritmos tienen algo en común con las funciones matemáticas: reciben una
entrada y producen una salida, pero para que pueda ser considerado como algoritmo
debe ser eficiente (encontrar una solución en el menor tiempo posible), finito (posee
un número determinado de pasos) y definido (se llega al mismo resultado si se sigue
el mismo proceso más de una vez).
Un ejemplo de algoritmo sería un manual de usuario de un electrodoméstico,
también podemos encontrar algoritmos como el método para resolver un Sistema
lineal de ecuaciones creado por Gauss.
Actualmente pensar en algoritmos nos remite a los programas de computación, pero
también pueden en redes neuronales, circuitos eléctricos o aparatos mecánicos.

1
Universidad Nacional de Salta - Facultad de Ciencias Exactas
Henry Suárez
Año 2008

Fuente:
http://www.mastermagazine.info/termino/3806.php

Características de un algoritmo
Un algoritmo debe tener al menos las siguientes características:
• Ser preciso: esto significa que las operaciones o pasos del algoritmo deben
desarrollarse en un orden estricto, ya que el desarrollo de cada paso debe
obedecer a un orden lógico.
• Ser definido. Ya que en el área de programación, el algoritmo se desarrolla
como paso fundamental para desarrollar un programa, es necesario tener en
cuenta que el computador solo desarrollará las tareas programadas y con los
datos suministrados; es decir, no puede improvisar y tampoco se inventará o
adivinará el dato que necesite para realizar un proceso. Por eso, el algoritmo
debe estar plenamente definido; esto es, que cuantas veces se ejecute, el
resultado depende estrictamente de los datos suministrados. Si se ejecuta con un
mismo conjunto de datos de entrada, el resultado será siempre el mismo.
• Ser finito: esta característica implica que el número de pasos de un algoritmo,
por grande y complicado que sea el problema que soluciona, debe ser limitado.
Todo algoritmo, sin importar el número de pasos que incluya, debe llegar a un
final. Para hacer evidente esta característica, en la representación de un
algoritmo siempre se incluyen los pasos inicio y fin.
• Presentación formal: para que el algoritmo sea entendido por cualquier persona
interesada es necesario que se exprese en alguna de las formas comúnmente
aceptadas; pues, si se describe de cualquier forma puede no ser muy útil ya que
solo lo entenderá quien lo diseñó. Las formas de presentación de algoritmos son:
el pseudocódigo, diagrama de flujo y diagramas de Nassi/Schneiderman, entre
otras.
• Corrección: el algoritmo debe ser correcto, es decir debe satisfacer la necesidad
o solucionar el problema para el cual fue diseñado. Para garantizar que el
algoritmo logre el objetivo, es necesario ponerlo a prueba; a esto se le llama
verificación o prueba de escritorio.
• Eficiencia: hablar de eficiencia o complejidad de un algoritmo es evaluar los
recursos de cómputo que requiere para almacenar datos y para ejecutar
operaciones frente al beneficio que ofrece. En cuanto menos recursos requiere
será más eficiente el algoritmo.

Fuente:
http://www.monografias.com/trabajos19/algoritmos/algoritmos.shtml

Herramientas para especificar algoritmos

Lenguaje natural
En la filosofía del lenguaje, el lenguaje natural es el lenguaje hablado y/o escrito y/o
signado por humanos para propósitos generales de comunicación, para distinguirlo de
otros como puedan ser una lengua construida, los lenguajes de programación o los
lenguajes usados en el estudio de la lógica formal, especialmente la lógica matemática.

2
Universidad Nacional de Salta - Facultad de Ciencias Exactas
Henry Suárez
Año 2008

El término lenguaje natural se refiere al estudio de las propiedades computacionales y


de otro tipo implicadas en la comprensión, producción y uso de las lenguas naturales.

Diagramas de Nassi – Shneiderman (N-S)


El diagrama N-S o también conocido como diagrama de Chapin es una técnica de
especificación de algoritmos que combina la descripción textual, propia del
pseudocódigo, con la representación gráfica del diagrama de flujo.
El diagrama N-S cuenta con un conjunto limitado de símbolos para representar los
pasos del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo,
dado que el lenguaje natural es muy extenso y se presta para la ambigüedad, solo se
utiliza un conjunto de palabras, a las que se denomina palabras reservadas. Las palabras
reservadas más utilizadas son:
• Inicio Fin Leer Escribir
• Mientras Repita Hasta Para
• Incrementar Decrementar Hacer Función
• Entero Real Caracter Cadena
• Lógico Retornar
Los símbolos utilizados en el diagrama de Chapin son corresponden a cada tipo de
estructura. Dado que se tienen tres tipos de estructuras, se utilizan tres símbolos. Esto
hace que los procesos del algoritmo sean más fáciles de representar y de interpretar.

Fuente:
http://www.monografias.com/trabajos19/algoritmos/algoritmos.shtml

Diagramas de flujo
Es un esquema para representar gráficamente un algoritmo. Se basan en la utilización de
diversos símbolos para representar operaciones específicas. Se les llama diagramas de
flujo porque los símbolos utilizados se conectan por medio de flechas para indicar la
secuencia de operación.
En los diagramas de flujo se presuponen los siguientes aspectos:
• Existe siempre un camino que permite llegar a una solución (finalización 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 comparación con dos caminos posibles).

Fuente:
http://es.wikipedia.org/wiki/Diagrama_de_Flujo

Pseudocódigo
Considerado como un lenguaje falso, el pseudocódigo es un lenguaje intermedio entre
nuestro lenguaje y el de programación, debido a que quien lo utiliza se guía por una
serie de normas pero sin llegar a usar una estructura tan rígida como la del lenguaje de
programación.
El objetivo al que apunta es que quien lo pone en práctica se centre más en la solución
del algoritmo o el diseño de un software que en el programa que utiliza para crearlo. Y
esto es posible porque es más fácil de manipular ya que no tiene que tener en mente el
lenguaje en sí y además, más fácil de codificar.
De esta manera, al ser un lenguaje intermedio, no tiene una composición estandarizada

3
Universidad Nacional de Salta - Facultad de Ciencias Exactas
Henry Suárez
Año 2008

por lo que no todos los programadores utilizan la misma sintaxis con exactitud. Pero a
la vez, como es una herramienta que está un paso previo al lenguaje formal de
programación, es fácil de transformar al que será ejecutado en la computadora.

Fuente:
http://www.mastermagazine.info/termino/6428.php

Programación estructurada
A finales de los años sesenta surgió una nueva forma de programar que no solamente
daba lugar a programas fiables y eficientes, sino que además estaban escritos de manera
que facilitaba su comprensión posterior.
El teorema del programa estructurado, demostrado por Böhm-Jacopini, demuestra que
todo programa puede escribirse utilizando únicamente las tres instrucciones de control
siguientes:
• Secuencia
• Instrucción condicional.
• Iteración (bucle de instrucciones) con condición al principio.
Solamente con estas tres estructuras se pueden escribir todos los programas y
aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio
de estructuras de control, éstas pueden ser construidas mediante las tres básicas.
Por ejemplo, en Visual Basic la secuencia de instrucciones consiste en la escritura de
una instrucción debajo de otra (también se pueden poner en la misma línea separadas
por el símbolo de dos puntos ":" aunque no es recomendable). La instrucción
condicional es la instrucción If y la iteración con condición al inicio sería la instrucción
do-while-loop o while-wend.

Fuente:
http://es.wikipedia.org/wiki/Programaci%C3%B3n_estructurada

Anda mungkin juga menyukai