Download Nuestra herramienta mental más importante para competir

Document related concepts

Little man computer wikipedia , lookup

Programación funcional wikipedia , lookup

Lisp wikipedia , lookup

Máquina de Turing wikipedia , lookup

Transcript
Nuestra herramienta mental más importante para competir con la complejidad es la
abstracción. Por tanto, un problema no deberá considerarse inmediatamente en
términos de instrucciones de un lenguaje, sino de elementos naturales del problema
mismo, abstraídos de alguna manera. [Niklaus Wirth, Creador del Lenguaje Pascal]
ALGORITMO
Podemos encontrar muchas definiciones de algoritmo en los textos de programación,
todas ellas muy similares:

Conjunto ordenado y finito de pasos que permite hallar la solución de un
problema.

Una secuencia de pasos que conducen a la realización de una tarea.

Descripción exacta de la secuencia en que se ha de realizar un conjunto de
actividades tendientes a resolver un determinado tipo de problema o
procedimiento.

Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan
la lógica de un programa.

Es un sistema por el cual se llega a una solución, teniendo en cuenta que debe
de ser definido, finito y preciso.

Toda receta, proceso, rutina, método, procedimiento, técnica, formula que
resuelven un determinado problema.

Conjunto de instrucciones concretas y detalladas mediante el cual se consigue
una acción determinada.

Conjunto de reglas que permiten obtener un resultado determinado a partir de
ciertas reglas definidas.

Descripción precisa de una sucesión de instrucciones que permite llevar a cabo
un trabajo en un número finito de pasos.

Un conjunto de símbolos y procedimientos usados en la realización de un
cálculo.
Las definiciones más completas o formales:
Esp. Jorge Luis Escobar

Secuencia finita de instrucciones, reglas o pasos que describen de forma
precisa las operaciones de un ordenador debe realizar para llevar a cabo un
tarea en un tiempo más finito. [Donald E. Knuth, 1968]

Descripción de un esquema de comportamiento expresado mediante un
reportorio finito de acciones y de informaciones elementales, identificadas,
bien comprendidas y realizables a priori. Este repertorio se denomina léxico
[Pierre Scholl, 1988]

Un algoritmo es un conjunto finito de pasos definidos, estructurados en el
tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que
proveen un procedimiento para dar la solución o indicar la falta de esta a un
problema en un tiempo determinado. [Rodolfo Quispe-Otazu, 2004]
Características:
Las características fundamentales que debe cumplir todo algoritmo son:

Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a
realizar sin criterios de interpretación.

Ser finito: Un número específico y numerable de pasos debe componer al
algoritmo, el cual deberá finalizar al completarlos.

Tener cero o más entradas: Datos son proporcionados a un algoritmo como
insumo (o estos son generados de alguna forma) para llevar a cabo las
operaciones que comprende.

Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un
algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no
debe ser considerado como únicamente “verlos” en forma impresa o en
pantalla, como ocurre con las computadoras. Existen muchos otros
mecanismos susceptibles de programación que no cuentan con una salida de
resultados de esta forma. Por salida de resultados debe entenderse todo medio
o canal por el cual es posible apreciar los efectos de las acciones del algoritmo.

Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no
usando nada más ni nada menos que aquello que se requiera para y en su
ejecución.
Esp. Jorge Luis Escobar
PSEUDOCÓDIGO (Lenguaje intermedio entre nuestro lenguaje y el lenguaje de
programación).
El principal objetivo del pseudocódigo 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 utilizara para la codificación del mismo.
Las principales características de este lenguaje son:

Se puede ejecutar en un ordenador

Es una forma de representación sencilla de utilizar y de manipular.

Facilita el paso del programa al lenguaje de programación.

Es independiente del lenguaje de programación que se vaya a utilizar.

Es un método que facilita la programación y solución al algoritmo del
programa.
Todo documento en pseudocódigo debe permitir la descripción de:

Instrucciones primitivas

Instrucciones de proceso

Instrucciones de control

Instrucciones compuestas

Instrucciones de descripción
Estructura a seguir en su realización:
Cabecera:

Programa:

Modulo:

Tipos de datos:
Esp. Jorge Luis Escobar

Constantes:

Variables:
Cuerpo:

Inicio

Instrucciones

Fin
LENGUAJE DE PROGRAMACIÓN
Los lenguajes de programación son herramientas que nos permiten crear programas y
software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc..
Una computadora funciona bajo control de un programa el cual debe estar
almacenado en la unidad de memoria; tales como el disco duro.
Los lenguajes de programación de una computadora en particular se conocen como
código de máquinas o lenguaje de máquinas.
Estos lenguajes codificados en una computadora específica no podrán ser ejecutados
en otra computadora diferente.
Para que estos programas funcionen para diferentes computadoras hay que realizar
una versión para cada una de ellas, lo que implica el aumento del costo de desarrollo.
Por otra parte, los lenguajes de programación en código de máquina son
verdaderamente difíciles de entender para una persona, ya que están compuestos de
códigos numéricos sin sentido nemotécnico.
Los lenguajes de programación facilitan la tarea de programación, ya que disponen de
Esp. Jorge Luis Escobar
formas adecuadas que permiten ser leídas y escritas por personas, a su vez resultan
independientes del modelo de computador a utilizar.
Los lenguajes de programación representan en forma simbólica y en manera de un
texto los códigos que podrán ser leídos por una persona.
Los lenguajes de programación son independientes de las computadoras a utilizar.
Existen estrategias que permiten ejecutar en una computadora un programa realizado
en un lenguaje de programación simbólico. Los procesadores del lenguaje son los
programas que permiten el tratamiento de la información en forma de texto,
representada en los lenguajes de programación simbólicos.
Hay lenguajes de programación que utilizan compilador.
La ejecución de un programa con compilador requiere de dos etapas:
1) Traducir el programa simbólico a código máquina
2) Ejecución y procesamiento de los datos.
Otros lenguajes de programación utilizan un programa intérprete o traductor, el cual
analiza directamente la descripción simbólica del programa fuente y realiza las
instrucciones dadas.
El intérprete en los lenguajes de programación simula una máquina virtual, donde el
lenguaje de máquina es similar al lenguaje fuente.
La ventaja del proceso interprete es que no necesita de dos fases para ejecutar el
programa, sin embargo su inconveniente es que la velocidad de ejecución es más lenta
ya que debe analizar e interpretar las instrucciones contenidas en el programa fuente.
Esp. Jorge Luis Escobar
Esp. Jorge Luis Escobar