¿qué es un algoritmo? - · pdf filecaracterísticas de los algoritmos: las...

6
CARACTERÍSTICAS DE LOS ALGORITMOS: Las características fundamentales que debe cumplir todo algoritmo son: Un algoritmo debe ser preciso e indicar el orden de realización de cada paso. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algún momento o sea, debe tener un número finito de pasos. La estructura de un algoritmo debe estar integrada por tres partes: Entrada, Proceso y Salida. Un algoritmo puede ser escrito en lenguaje natural; pero esta descripción puede ser ambigua, por lo que se utilizan diferentes métodos de representación, que permiten evitar dicha ambigüedad y al mismo tiempo que sean fácilmente codificables. Los métodos más usuales para la representación de algoritmos son: DESCRIPCIÓN NARRADA Es la forma más sencilla de describir o expresar un algoritmo. Consiste en hacer un relato de la solución en lenguaje natural. El uso del lenguaje natural provoca frecuentemente que la descripción sea imprecisa y poco confiable, por lo que este tipo de representación no es recomendable. PSEUDOCÓDIGO El pseudocódigo en un lenguaje de especificación de algoritmos que utiliza palabras reservadas y exige la indentación, o sea, sangría en el margen izquierdo de algunas líneas. . ¿QUÉ ES UN ALGORITMO? El diccionario de la Real Academia Española define problema como un “conjunto de hechos o circunstancias que dificultan la consecución de algún fin. Proposición dirigida a averiguar el modo de obtener un resultado cuando ciertos datos son conocidos”. Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema. La palabra algoritmo deriva del nombre del matemático árabe Al-Khwarizmi, que vivió entre los siglos VII y VIII. Generalmente los algoritmos se presentan a diario con las diversas vivencias de las personas, todo lo que nos rodea es siempre una secuencia de pasos que nos llevan a realizar nuestras labores en ocasiones ordenadamente. En la vida cotidiana empleamos algoritmos en multitud de ocasiones para resolver diversos problemas, como por ejemplo para hacer funcionar una lavadora (conjunto de instrucciones pegadas en la tapa de la máquina), para tocar música (partituras), para construir un aeroplano a escala (expresados en las instrucciones), para hacer trucos de magia (pasos para hacer el truco) o, incluso, para hacer recetas de cocina (pasos de la receta). Otros ejemplos, como el algoritmo de la división para calcular el cociente de dos números o el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos pertenecen al ámbito de las matemáticas. De un modo más formal, un algoritmo es una secuencia finita de instrucciones realizables, no ambiguas, cuya ejecución conduce a una resolución de un problema. El algoritmo nos da la solución genérica a un problema y lo podremos emplear todas las veces que se nos presente ese mismo problema, por ejemplo: el algoritmo de la división es genérico e independiente de los números que tengamos que dividir.

Upload: phungnhan

Post on 06-Feb-2018

214 views

Category:

Documents


1 download

TRANSCRIPT

CARACTERÍSTICAS DE LOS ALGORITMOS:

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

Un algoritmo debe ser preciso e indicar el orden de realización de cada paso. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo

resultado cada vez. Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algún momento o sea,

debe tener un número finito de pasos. La estructura de un algoritmo debe estar integrada por tres partes: Entrada, Proceso y Salida.

Un algoritmo puede ser escrito en lenguaje natural; pero esta descripción puede ser ambigua, por lo que se utilizan diferentes métodos de representación, que permiten evitar dicha ambigüedad y al mismo tiempo que sean fácilmente codificables. Los métodos más usuales para la representación de algoritmos son:

DESCRIPCIÓN NARRADA Es la forma más sencilla de describir o expresar un algoritmo. Consiste en hacer un relato de la solución en lenguaje natural. El uso del lenguaje natural provoca frecuentemente que la descripción sea imprecisa y poco confiable, por lo que este tipo de representación no es recomendable.

PSEUDOCÓDIGO

El pseudocódigo en un lenguaje de especificación de algoritmos que utiliza palabras reservadas y exige la indentación, o sea, sangría en el margen izquierdo de algunas líneas.

. ¿QUÉ ES UN ALGORITMO? El diccionario de la Real Academia Española define problema como un “conjunto de hechos o circunstancias que dificultan la consecución de algún fin. Proposición dirigida a averiguar el modo de obtener un resultado cuando ciertos datos son conocidos”.

Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema. La palabra algoritmo deriva del nombre del matemático árabe Al-Khwarizmi, que vivió entre los siglos VII y VIII.

Generalmente los algoritmos se presentan a diario con las diversas vivencias de las personas,

todo lo que nos rodea es siempre una secuencia de pasos que nos llevan a realizar nuestras labores en ocasiones ordenadamente. En la vida cotidiana empleamos algoritmos en multitud de ocasiones para resolver diversos problemas, como por ejemplo para hacer funcionar una lavadora (conjunto de instrucciones pegadas en la tapa de la máquina), para tocar música (partituras), para construir un aeroplano a escala (expresados en las instrucciones), para hacer trucos de magia (pasos para hacer el truco) o, incluso, para hacer recetas de cocina (pasos de la receta). Otros ejemplos, como el algoritmo de la división para calcular el cociente de dos números o el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos pertenecen al ámbito de las matemáticas.

De un modo más formal, un algoritmo es una secuencia finita de instrucciones realizables,

no ambiguas, cuya ejecución conduce a una resolución de un problema. El algoritmo nos da la solución genérica a un problema y lo podremos emplear todas las veces

que se nos presente ese mismo problema, por ejemplo: el algoritmo de la división es genérico e independiente de los números que tengamos que dividir.

Se concibió para superar las dos principales desventajas de los diagramas de flujo lento de crear y difícil de modificar sin un nuevo proceso de redibujo. Es una herramienta muy efectiva para el seguimiento de la lógica de un algoritmo y para transformar con facilidad los algoritmos a programas.

Mucho se habla del pseudocódigo en las carreras de Analistas de sistemas y Programación. Pero no existe mucha bibliografía al respecto. Digamos que el pseudocódigo es una forma de diagramar un algoritmo para resolver un determinado problema, sin atenerse a ningún lenguaje de programación en especial. En vez de escribir el programa directamente en un lenguaje de programación determinado (C, Basic, etc.), crearemos un borrador entendible para todos, para luego de tener bien en claro lo que se debe hacer, pasar a la programación propiamente dicha. No hay que confundirlo con un diagrama de flujo. En el diagrama de flujo se representa el transcurso del programa, el momento donde se obtienen los datos, cuando se procesan y el momento de presentar los resultados. Si bien son dos herramientas que se utilizan en conjunto, cada una representa dos partes distintas en el diseño de un sistema.

El pseudocódigo se refiere a crear un código para orientar a los programadores, pero sin la sintaxis ni la estructura propia de ningún lenguaje. El pseudocódigo es la mezcla de lenguaje de programación y español(o inglés, o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el Pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos. El Pseudocódigo utiliza palabras que indican el proceso a realizar. La estructura de un pseudocódigo puede ser de tres tipos:

Secuencial. Esta consiste en colocar cada instrucción una tras de la otra sin tener ningún tipo de saltos

Selectiva. Esta lleva a cabo ciertas instrucciones cuando se cumple una cierta condición y si esta condición no se cumple se salta a la siguiente instrucción.

o Selectiva doble (anidamiento). Esta realiza una instrucción u otra según la respuesta de

la condición planteada o Selectiva múltiple. Esta realiza instrucciones para distintos comportamientos de las

condiciones, que sería como trabajar varias selectivas dobles. o Selectiva múltiple casos. Esta realizara para un cierto tipo de or declarado en un inicio y

dependiendo cual sea será el tipo de comportamiento a realizar

Iterativa. Este consiste en la posibilidad de realizar una misma instrucción más de una vez

o Bucle mientras. Realiza ciertas instrucciones mientras que la condición se siga cumpliendo

o Bucle repetir. Realiza ciertas instrucciones hasta que se deje de cumplir con la condición que a diferencia del mientras esta instrucción realiza al menos una vez las instrucciones

o Bucle para. Se utiliza para realizar instrucciones cierto número de veces pero definiendo por un índice que se incrementa en cada vuelta

o Bucle para cada. Realiza instrucciones para todo elemento que cumpla con la condición.

Al igual que en el caso del diagrama de flujo existen ciertas reglas para que sea un buen pseudocódigo: 1. Tenga un único punto de inicio 2. Tenga un número finito de posibles puntos de término 3. Haya un número finito de caminos, entre el punto de inicio y los posibles puntos de término

Ventajas de utilizar un Pseudocódigo a un Diagrama de Flujo 1. Ocupan mucho menos espacio en el desarrollo del problema. 2. Permite representar de forma fácil operaciones repetitivas complejas. 3. Es más sencilla la tarea de pasar pseudocódigos a un lenguaje de programación formal. 4. Si se siguen las reglas de identación se puede observar claramente los niveles en la

estructura del programa. 5. En los procesos de aprendizaje de los alumnos de programación, estos están mar cerca del

paso siguiente (codificación en un lenguaje determinado, que los que se inician en esto con la modalidad Diagramas de Flujo).

6. Mejora la claridad de la solución de un problema.

DIAGRAMA DE FLUJO Es la representación gráfica de un algoritmo. Utiliza símbolos normalizados, con los pasos del algoritmo escritos en el símbolo adecuado y los símbolos unidos por flechas, denominadas “líneas de flujo”, que indican el orden en que los pasos deben ser ejecutados.

En el ámbito de las computadoras, los algoritmos se expresan como programas. Los programas son algoritmos codificados con un lenguaje no ambiguo cuya sintaxis y semántica "entiende" la computadora. Así pues, si queremos que una computadora efectúe una tarea, primero debemos descubrir un algoritmo para llevarla a cabo; programar el algoritmo en la máquina consiste en representar ese algoritmo de modo que se pueda comunicar a una máquina. En otras palabras, debemos transformar el algoritmo conceptual en un conjunto de instrucciones y representar estas últimas en un lenguaje sin ambigüedad

Gracias a la capacidad para comunicar nuestros pensamientos mediante algoritmos, podemos construir máquinas cuyo comportamiento simula, en alguna medida, la inteligencia. El nivel de inteligencia que simula la máquina está limitado por la inteligencia que podamos comunicarle por medio de algoritmos. Las máquinas sólo pueden realizar tareas algorítmicas. Si encontramos un algoritmo para dirigir la ejecución de una tarea, podemos construir una máquina para llevarla a cabo siempre que la tecnología haya avanzado lo suficiente. Si no encontramos un algoritmo, es posible que la ejecución esté fuera de las capacidades de las máquinas.

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 la operación.

Los símbolos que se utilizan para diseño se someten a una normalización, es decir, se hicieron símbolos casi universales, ya que, en un principio cada usuario podría tener sus propios símbolos para representar sus procesos en forma de Diagrama de flujo. Esto trajo como consecuencia que sólo aquel que conocía sus símbolos, los podía interpretar.

Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin embargo, algunos símbolos especiales pueden también ser desarrollados cuando sean requeridos. Algunos

símbolos estándares, que se requieren con frecuencia para diagramar programas de computadora se muestran a continuación:

Inicio o fin del programa

Pasos, procesos o líneas de instrucción de programa de computo

Operaciones de entrada y salida

Toma de decisiones y Ramificación

Conector para unir el flujo a otra parte del diagrama

Cinta magnética

Disco magnético

Conector de pagina

Líneas de flujo

Anotación

Salida a pantalla

Envía datos a la impresora

Símbolos gráficos Dentro de los símbolos fundamentales para la creación de diagramas de flujo, los símbolos gráficos son utilizados específicamente para operaciones aritméticas y relaciones condicionales. La siguiente es una lista de los símbolos más comúnmente utilizados:

SÍMBOLO ACCIÓN SÍMBOLO ACCIÓN + Sumar ³ Mayor o

igual que - Menos £ Menor o

igual que * Multiplicación ¹ o <> Diferente

de / División Si ± Mas o menos No = Equivalente a True > Mayor que False < Menor

Reglas para la creación de Diagramas

1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha. 2. Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección

que fluye la información procesos, se deben de utilizar solamente líneas de flujo horizontal o verticales (nunca diagonales).

3. Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se van a utilizar conectores cuando sea estrictamente necesario.

4. No deben quedar líneas de flujo sin conectar 5. Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas

palabras. 6. Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final. 7. Solo los símbolos de decisión pueden y deben tener más de una línea de flujo de salida.

CARACTERÍSTICAS QUE DEBE CUMPLIR UN DIAGRAMA DE FLUJO

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). DESARROLLO DEL DIAGRAMA DE FLUJO Las siguientes son acciones previas a la realización del diagrama de flujo:

Identificar las ideas principales a ser incluidas en el diagrama de flujo. Definir qué se espera obtener del diagrama de flujo. Identificar quién lo empleará y cómo.

Establecer el nivel de detalle requerido. Determinar los límites del proceso a describir.

Los pasos a seguir para construir el diagrama de flujo son:

Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.

Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico.

Si el nivel de detalle definido incluye actividades menores, listarlas también. Identificar y listar los puntos de decisión. Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes

símbolos. Asignar un título al diagrama y verificar que esté completo y describa con exactitud

VENTAJAS DE LOS DIAGRAMA DE FLUJO

Favorecen la comprensión del proceso a través de mostrarlo como un dibujo. El cerebro humano reconoce fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de texto.

Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos redundantes, los flujos de los re-procesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.

Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.

Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.

ESTRUCTURAS ALGORÍTMICAS

Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:

Secuenciales: Para dar solución a éste tipo de problemas, se emplea una serie de acciones

ejecutadas repetidamente en un solo orden secuencial. Condicionales: Para dar solución a éste tipo de problemas, se emplean acciones en las que la

ejecución de alguna dependerá que se cumplan una o varias condiciones. Cíclicas: Son aquellas que para dar una solución, es necesario utilizar el mismo conjunto de

acciones que puedan ejecutarse más de una vez.