DEFINICIN: Un Algoritmo, se puede definir como una secuencia de instrucciones que
representan un modelo de solucin para determinado tipo de problemas. O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener la solucin de un problema. Por lo tanto podemos decir que es un conjunto ordenado y finito de pasos que nos permite solucionar un problema. Los algoritmos son independientes de los lenguajes de programacin. En cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje de diferente programacin. El algoritmo es la infraestructura de cualquier solucin, escrita luego en cualquier lenguaje de programacin.
Programa: Un programa es una serie de instrucciones ordenadas, codificadas en lenguaje de programacin que expresa un algoritmo y que puede ser ejecutado en un computador. CLASIFICACIN DE ALGORITMOS: Los algoritmos se pueden clasificar en cuatro tipos: Algoritmo computacional: Es un algoritmo que puede ser ejecutado en una computadora. Ejemplo: Frmula aplicada para un clculo de la raz cuadrada de un valor x. Algoritmo no computacional: Es un algoritmo que no requiere de una computadora para ser ejecutado. Ejemplo: Instalacin de un equipo de sonido. Algoritmo cualitativo: Un algoritmo es cualitativo cuando en sus pasos o instrucciones no estn involucrados clculos numricos. Ejemplos: Las instrucciones para desarrollar una actividad fsica, encontrar un tesoro. Algoritmo cuantitativo: Una algoritmo es cuantitativo cuando en sus pasos o instrucciones involucran clculos numricos. Ejemplo: Solucin de una ecuacin de segundo grado.
CARACTERSTICAS DE UN ALGORITMO: Todo algoritmo debe tener las siguientes caractersticas: 1. Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera precisa e inequvoca que se debe hacer. 2. Debe ser Finito, porque un algoritmo debe tener un nmero limitado de pasos. 3. Debe ser Definido, porque debe producir los mismos resultados para las mismas condiciones de entrada. 4. Puede tener cero o ms elementos de entrada. 5. Debe producir un resultado. Los datos de salida sern los resultados de efectuar las instrucciones.
PARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: Entrada de datos, son los datos necesarios que el algoritmo necesita para ser ejecutado. Proceso, es la secuencia de pasos para ejecutar el algoritmo. Salida de resultados, son los datos obtenidos despus de la ejecucin del algoritmo.
TCNICAS DE REPRESENTACIN: Para la representacin de un algoritmo, antes de ser convertido a lenguaje de programacin, se utilizan algunos mtodos de representacin escrita, grfica o matemtica. Los mtodos ms conocidos son:
REPRESENTACION DE UN ALGORITMO Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocdigo y diagramas de flujo evita muchas ambigedades del lenguaje natural. Dichas expresiones son formas ms estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programacin especfico. La descripcin de un algoritmo usualmente se hace en tres niveles: 1. Descripcin de alto nivel. Se establece el problema, se selecciona un modelo matemtico y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. 2. Descripcin formal. Se usa pseudocdigo para describir la secuencia de pasos que encuentran la solucin. 3. Implementacin. Se muestra el algoritmo expresado en un lenguaje de programacin especfico o algn objeto capaz de llevar a cabo instrucciones. Tambin es posible incluir un teorema que demuestre que el algoritmo es correcto, un anlisis de complejidad o ambos.
Los algoritmos pueden ser creados de dos formas:
1)Seudocdigo.- Es un conjunto pequeo y claro de instrucciones; en secuencia, que permite llevar a cabo una tarea. 2)Diagrama de flujo.- Es la representacin de la secuencia, a travs de smbolos, de la tarea que se va a realizar. Un ejemplo de algoritmo es el que realizamos para cambiar una llanta a un automvil:
Inicio Aflojar tornillos de las llantas Levantar el coche con el gato Sacar los tornillos de las llantas Quitar la llanta Poner la llanta de repuesto Poner los tornillos Bajar el gato Apretar los tornillos fin
1) ALGORITMO EXPRESADO EN PSEUDOCODIGO
Definicin Mucho se habla del pseudocdigo en las carreras de Analista de Sistemas y Programacin. Pero no existe mucha bibliografa al respecto. Comencemos aclarando que no es una forma de programacin. Se trata de una herramienta que los analistas de sistemas utilizan para comunicar a los programadores la estructura del programa que van a realizar, de forma de tener una idea bien clara de lo que se necesita programar. Digamos que el pseudo cdigo es una forma de diagramar un algoritmo para resolver un determinado problema, sin atenerse a ningn lenguaje de programacin en especial. Un algoritmo es un conjunto de procedimientos que permiten resolver un problema. En vez de escribir el programa directamente en un lenguaje de programacin 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 programacin propiamente dicha.
El pseudo cdigo se refiere a crear un cdigo para orientar a los programadores, pero sin la sintaxis ni la estructura propia de ningn lenguaje.
EXPRESAR UN ALGORITMO CON UN DIAGRAMA DE FLUJO DIAGRAMA DE FLUJO Es un esquema para representar grficamente un algoritmo. Se basan en la utilizacin de diversos smbolos para representar operaciones especficas, es decir, es la representacin grafica de las distintas operaciones que se tienen que realizar para resolver un problema, con indicacin expresa el orden lgico en que deben realizarse. Se les llama diagramas de flujo porque los smbolos utilizados se conectan por medio de flechas para indicar la secuencia de operacin. Para hacer comprensibles los diagramas a todas las personas, los smbolos se someten a una normalizacin; es decir, se hicieron smbolos casi universales, ya que, en un principio cada usuario podra tener sus propios smbolos para representar sus procesos en forma de Diagrama de flujo. Esto trajo como consecuencia que slo aquel que conoca sus smbolos, los poda interpretar. La simbologa utilizada para la elaboracin de diagramas de flujo es variable y debe ajustarse a un patrn definido previamente. El diagrama de flujo representa la forma ms tradicional y duradera para especificar los detalles algortmicos de un proceso. Se utiliza principalmente en programacin, economa y procesos industriales. Para realizar los diagramas de flujo utilizamos distintas figuras geomtricas en forma de caja de texto, que sirven para distinguir el tipo de tareas que se ejecutan, las flechas indican el flujo del proceso y se valen de determinada simbologa especfica para facilitar su comprensin Por otra parte, un algoritmo consta de tres partes, secciones mdulos principales, en la siguiente figura podemos observar las secciones que constituyen un algoritmo.
El mdulo 1.- representa la operacin o accin que permite el ingreso de los datos del programa. El mdulo 2.- representa la operacin o conjunto de operaciones secuenciales, cuyo objetivo es obtener la solucin al problema. El mdulo 3.- representa una operacin o conjunto de operaciones que permiten comunicar al exterior el o los resultados alcanzados
DIAGRAMAS DE FLUJOS Un diagrama de flujo es una representacin grfica de un proceso. Cada paso del proceso es representado por un smbolo diferente que contiene una breve descripcin de la etapa de proceso. Los smbolos grficos del flujo del proceso estn unidos entre s con flechas que indican la direccin de flujo del proceso. El diagrama de flujo ofrece una descripcin visual de las actividades implicadas en un proceso mostrando la relacin secuencial ente ellas, facilitando la rpida comprensin de cada actividad y su relacin con las dems, el flujo de la informacin y los materiales, las ramas en el proceso, la existencia de bucles repetitivos, el nmero de pasos del proceso, las operaciones de interdepartamentales Facilita tambin la seleccin de indicadores de proceso
Beneficios del Diagrama de Flujo[1] En primer lugar, facilita la obtencin de una visin transparente del proceso, mejorando su comprensin. El conjunto de actividades, relaciones e incidencias de un proceso no es fcilmente discernible a priori. La diagramacin hace posible aprehender ese conjunto e ir ms all, centrndose en aspectos especficos del mismo, apreciando las interrelaciones que forman parte del proceso as como las que se dan con otros procesos y subprocesos. Permiten definir los lmites de un proceso. A veces estos lmites no son tan evidentes, no estando definidos los distintos proveedores y clientes (internos y externos) involucrados. El diagrama de flujo facilita la identificacin de los clientes, es ms sencillo determinar sus necesidades y ajustar el proceso hacia la satisfaccin de sus necesidades y expectativas. Estimula el pensamiento analtico en el momento de estudiar un proceso, haciendo ms factible generar alternativas tiles. Proporciona un mtodo de comunicacin ms eficaz, al introducir un lenguaje comn, si bien es cierto que para ello se hace preciso la capacitacin de aquellas personas que entrarn en contacto con la diagramacin. Un diagrama de flujo ayuda a establecer el valor agregado de cada una de las actividades que componen el proceso. Igualmente, constituye una excelente referencia para establecer mecanismos de control y medicin de los procesos, as como de los objetivos concretos para las distintas operaciones llevadas a cabo. Facilita el estudio y aplicacin de acciones que redunden en la mejora de las variables tiempo y costes de actividad e incidir, por consiguiente, en la mejora de la eficacia y la eficiencia. Constituyen el punto de comienzo indispensable para acciones de mejora o reingeniera.
Todas estas razones apuntan hacia el diagrama de flujo como un instrumento primordial para la correcta gestin de los procesos. La realizacin de un diagrama de flujo es una actividad ntimamente ligada al hecho de modelar un proceso, que es por s mismo un componente esencial en la gestin de procesos. Frecuentemente los sistemas (conjuntos de procesos y subprocesos integrados en una organizacin) son difciles de comprender, amplios, complejos y confusos; con mltiples puntos de contacto entre s y con un buen nmero de reas funcionales, departamentos y personas implicadas. Un modelo una representacin de una realidad compleja) puede dar la oportunidad de organizar y documentar la informacin sobre un sistema. El diagrama de flujo de proceso constituye la primera actividad para modelar un proceso. Pero qu es un modelo? Un modelo es una representacin de una realidad compleja. Modelar es desarrollar una descripcin lo ms exacta posible de un sistema y de las actividades llevadas a cabo en l. Cuando un proceso es modelado, con ayuda de una representacin grfica (diagrama de flujo de proceso), pueden apreciarse con facilidad las interrelaciones existentes entre distintas actividades, analizar cada actividad, definir los puntos de contacto con otros procesos, as como identificar los subprocesos comprendidos. Al mismo tiempo, los problemas pueden ponerse de manifiesto claramente dando la oportunidad al inicio de acciones de mejora.
Elaboracin del Diagrama de Flujo El diagrama de flujo debe ser realizado por un equipo de trabajo en el que las distintas personas aporten, en conjunto, una perspectiva completa del proceso, por lo que con frecuencia este equipo ser multifuncional y multijerrquico. Determinar el proceso a diagramar. Definir el grado de detalle. El diagrama de flujo del proceso puede mostrar a grandes rasgos la informacin sobre el flujo general de actividades pricipales, o ser desarrollado de modo que se incluyan todas las actividades y los puntos de decisin. Un diagrama de flujo detallado dar la oportunidad de llevar realizar un anlisis ms exhaustivo del proceso. Identificar la secuencia de pasos del proceso. Situndolos en el orden en que son llevados a cabo. Construir el diagrama de flujo. Para ello se utilizan determinados smbolos. Cada organizacin puede definir su propio grupo de smbolos. En la figura anterior se mostraba un conjunto de smbolos habitualmente utilizados. Al respecto cabe decir que en la figura Conector de proceso es frecuentemente utilizado un crculo como smbolo. Para la elaboracin de un diagrama de flujo, los smbolos estndar han sido normalizados, entro otros, el American National Standars Institute (ANSI). Revisar el diagrama de flujo del proceso.
Diagrama de bloques Un diagrama de bloques es una representacin grfica de una idea o concepto. Se utiliza para describir el aspecto amplio de la conectividad o de la relacin entre las cosas, y rara vez incluye pequeos detalles. Debido a la limitada informacin sobre los diagramas de bloques, stos no se prestan para ser analizados o para una planificacin global. Funciones Los diagramas de bloques se utilizan para mostrar los conceptos generales de cmo funciona algo, como un producto o una organizacin. Se utilizan como un medio de referencia, de modo que aquellos no familiarizados con el proceso puedan obtener una comprensin general. Un diagrama de bloques exitoso estar claramente marcado e identificar los pasos clave en el proceso. Caractersticas Los diagramas de bloques se pueden crear a mano en papel o con programas informticos. El punto de partida, as como el flujo general de la informacin, debe ser fcilmente reconocible. Algunos diagramas utilizan diferentes formas de cajas para indicar diferentes aspectos o relaciones. Usos en la ingeniera Los ingenieros utilizan los diagramas de bloques en el diseo de productos, tales como equipos electrnicos. Slo los componentes principales sern visibles en el diagrama, porque las cosas de menor importancia, tales como cables especficos, no se reflejan aqu. Usos organizacionales Los diagramas de bloques tambin se pueden utilizar como un medio de mostrar las relaciones entre los departamentos en una organizacin o lugar de trabajo. Comnmente representan una cadena de comando o muestran la forma en que se manejan los procesos, tales como las quejas de los clientes.
PSEUDOLENGUAJE El pseudolenguaje se basa en la nocin de instruccin, la cual se considera como sinnimo de programa, es decir, cualquier instruccin puede ser un programa o un conjunto de proposiciones. El pseudolenguaje se basa en las siguientes reglas: Cualquier instruccin de un lenguaje tal como de declaracin, asignacin, entrada, salida o llamado y retorno de subrutina es una instruccin del pseudolenguaje. Las estructuras de control son las siguientes:
Programas Un programa informtico es un conjunto de instrucciones que una vez ejecutadas realizarn una o varias tareas en una computadora. Sin programas, estas mquinas no pueden funcionar. 1
2
Al conjunto general de programas, se le denomina software, que ms genricamente se refiere al equipamiento lgico o soporte lgico de una computadora digital. En informtica, se los denomina comnmente binarios, (propio en sistemas Unix, donde debido a la estructura de este ltimo, los ficheros no necesitan hacer uso de extensiones; posteriormente, los presentaron como ficheros ejecutables, con extensin .exe, en los sistemas operativos de la familia Windows) debido a que una vez que han pasado por el proceso de compilacin y han sido creados, las instrucciones que se escribieron en un determinado lenguaje de programacin, han sido traducidas al nico idioma que la mquina comprende, combinaciones de ceros y unos llamado cdigo mquina. El mismo trmino, puede referirse tanto a un programa ejecutable, como a su cdigo fuente, el cual es transformado en un binario una vez que es compilado. Generalmente el cdigo fuente lo escriben profesionales conocidos como programadores. Este cdigo se escribe en un lenguaje que sigue uno de los siguientes dos paradigmas: imperativo o declarativo, y que posteriormente puede ser convertido en una imagen ejecutable a travs de un programa-compilador. Cuando se pide que el programa sea ejecutado, el procesador ejecuta instruccin por instruccin. De acuerdo a sus funciones, los programas informticos se clasifican en software de sistema y software de aplicacin. En los computadores actuales, al hecho de ejecutar varios programas de forma simultnea y eficiente, se le conoce como multitarea. Ejemplo de un programa en lenguaje c #include <stdio.h>
int main() { printf("Hello world!\n"); return 0; }