DISEÑO DE ALGORITMOS Ing. Moisés Alvarez Huamán. Un estudiante de Universidad que tiene clase los...

31
DISEÑO DE ALGORITMOS DISEÑO DE ALGORITMOS Ing. Moisés Alvarez Huamán

Transcript of DISEÑO DE ALGORITMOS Ing. Moisés Alvarez Huamán. Un estudiante de Universidad que tiene clase los...

DISEÑO DE DISEÑO DE ALGORITMOSALGORITMOS

Ing. Moisés Alvarez Huamán

Un estudiante de Universidad que tiene Un estudiante de Universidad que tiene clase los lunes y los miércoles a las clase los lunes y los miércoles a las 08:00 am y los martes y jueves a las 08:00 am y los martes y jueves a las 09:00 am09:00 am

Una vez que el estudiante se despierta mira el reloj y si no son aún las 06:30 am, continúa durmiendo. Los lunes y los miércoles, procura levantarse entre las 06:30 am y las 07:30 am. Si llegara a despertarse después de la hora como frecuentemente ocurre, pensará nuevamente en la falta que le hace el reloj despertador, pero toma la decisión de no ir a clases en esa mañana, sin embargo, después de esta decisión, se baña, se desayuna y se dedica a estudiar.

Si se despierta entre las 06:30 am y las 07:30 am, los lunes o los miércoles se baña, se desayuna y se dedica a leer el periódico hasta que sean más de las 07:30 am, luego toma el bus y llega a la Universidad. Entra a clase solamente si han transcurrido menos de 15 minutos desde su comienzo, de otra manera, no entra a clase y se dedica a leer las carteleras y a esperar la próxima clase.

Los martes y los jueves, procura levantarse entre las 07:30 am y las 08:30 am; si se despierta después de las 08:30 am realizará las mismas actividades que tendrían lugar si se levantara los lunes o los miércoles después de las 07:30 am. De otra forma se baña, se desayuna y lee el periódico hasta que sean más de las 08:30 am, luego realiza las mismas actividades que tienen lugar los lunes o lo miércoles cuando sale de su casa.

Los demás días de la semana, procura dormir hasta las 08:30 am, después de esta hora se baña, se desayuna y se dedica a estudiar.

Algoritmos computacionalesMarco HistóricoUn algoritmo es un conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. La palabra algoritmo se deriva del nombre latinizado del gran Matemático Árabe Mohamed Ibn Al Kow Rizmi, el cual escribió sobre los años 800 y 825 su obra Quitad Al Mugabala, donde se recogía el sistema de numeración hindú y el concepto del cero. Fue Fibinacci, el que tradujo la obra al latín y el inicio con la palabra: Algoritmi Dicit.

Generalidades

El programador de computadoras es ante que nada una persona que resuelve problemas, por lo que para llegar a ser un programador eficaz se necesita aprender a resolver problemas de un modo riguroso y sistemático. A la metodología necesaria para resolver problemas mediante programas se denomina Metodología de la Programación.

Una receta de un plato de cocina se puede expresar en español, ingles o francés, pero cualquiera que sea el lenguaje, los pasos para la elaboración del plato se realizaran sin importar el idioma del cocineroLa definición de un algoritmo debe definir tres partes: Entrada, Proceso y Salida. En el algoritmo de receta de cocina citado anteriormente se tendrá:Entrada: ingrediente y utensilios empleados.Proceso: elaboración de la receta en la cocina.Salida: terminación del plato (por ejemplo, cordero).

Un cliente ejecuta un pedido a una fábrica. Esta examina en su banco de datos la ficha del cliente; si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario rechazara el pedido. Redactar el algoritmo correspondiente

1. inicio 2. leer el pedido 3. examinar la ficha del cliente 4. si el cliente es solvente aceptar

pedido; en caso contrario, rechazar pedido

5. fin

Diseño del Algoritmo:La resolución de un problema

complejo se realiza dividiendo el problema en sub problemas y a continuación dividir estos sub problemas en otros de nivel mas bajo, hasta que pueda ser implementada una solución en la computadora. (Top Down) A este método se llama Programación Modular.

PasosProgramar módulo. Comprobar el módulo. Si es necesario, depurar el

modulo. Combinar el modulo con los

módulos anteriores.

5. Técnica de diseño de algoritmosTodo problema algorítmico es un

reto para su diseñador, algunos resultan inmediatos de resolver, otros son bastante complejos. La investigación en esta área ha permitido descubrir un conjunto de métodos o esquemas de diseño hacia los cuales puede orientarse la realización de muchos algoritmos.

HERRAMIENTA: HERRAMIENTA: PSEUDOCÓDIGOPSEUDOCÓDIGOUn Pseudocódigo permite

expresar un algoritmo con palabras en castellano que son semejantes a las sentencias de un lenguaje de programación.

Pautas básicas:Pautas básicas: Todo algoritmo debe tener un nombre, el cual deberá

comenzar con una letra mayúscula. Es necesario que se determine los datos de entrada y la

información de salida. Para asignar un valor a la variable “x” se utiliza el signo

igual.X=5;

Para declarar una variable “x” se deberá determinar que tipo de dato se almacenara. TEXTO X

Para indicar que la computadora lea un valor desde un dispositivo externo y lo almacene en la variable “Z”, se utiliza: LEER z.

Para indicar que la computadora escriba hacia un destino externo:› Para escribir un mensaje: ESCRIBIR “hola”› Para escribir el valor de una variable: ESCRIBIR X.› Para escribir el resultado de una expresión: ESCRIBIR x+2

Estructura básica de un Estructura básica de un pseudocódigopseudocódigoAlgoritmo NombreClase_nombreMétodo()ENTRADA: En la ENTRADA y sALIDA se

especifican las variables que usarán

SALIDA en el desarrollo del algoritmo.INICIO …………. ……..…… …………. FIN

HERRAMIENTA DIAGRAMA HERRAMIENTA DIAGRAMA DE FLUJODE FLUJOUn Diagrama de Flujo permite

ilustrar la secuencia de pasos de un algoritmo por medio de símbolos especializados y líneas de flujo describe la lógica para la solución de un problema (algoritmo). El Diagrama de Flujo es la representación gráfica de un algoritmo

Esta representación gráfica Esta representación gráfica debe tener las siguientes debe tener las siguientes cualidadescualidades Sencillez en su construcción. Claridad en su comprensión. Normalización en su diseño. Flexibilidad en su modificación

En la práctica se suele utilizar indistintamente los términos diagrama de flujo, organigrama y ordinograma para referenciar cualquier representación gráfica de los flujos de datos o de las operaciones de un programa.

La secuencia de aparición de La secuencia de aparición de los diagramas de flujo se los diagramas de flujo se puede representar de la puede representar de la siguiente forma:siguiente forma:

DIAGRAMA DE FLUJO DEL DIAGRAMA DE FLUJO DEL SISTEMASISTEMA También denominado organigramas.

Representan gráficamente el flujo de datos e informaciones que maneja un programa.

En los casos de aplicaciones que comprenden más de un programa, se realizará un organigrama para cada uno de ellos y es conveniente realizar uno general que englobe todo el conjunto.

Un organigrama debe Un organigrama debe reflejar:reflejar:Los soportes de datosLos nombres de los programas.Los soportes de los resultados.El flujo de datos

En su representación se En su representación se sigue las siguientes reglas:sigue las siguientes reglas:En el centro del organigrama

general el símbolo de proceso correspondiente al programa.

En la parte superior los soportes de entrada.

En la parte inferior los soportes de salida.

Al mismo nivel que el símbolo de proceso y a ambos lados, los soportes de entrada y salida.

SÍMBOLOS DE SOPORTESÍMBOLOS DE SOPORTE

SÍMBOLOS DE SÍMBOLOS DE PROCESOPROCESO

El organigrama de una aplicación que El organigrama de una aplicación que tome números de una tarjeta óptica y tome números de una tarjeta óptica y realice alguna operación con ellos, dando realice alguna operación con ellos, dando los resultados por impresora es:los resultados por impresora es:

El organigrama de una aplicación de El organigrama de una aplicación de actualización de un archivo soportado en actualización de un archivo soportado en disco, con entrada de datos por teclado, disco, con entrada de datos por teclado, consulta de datos por pantalla y salida de consulta de datos por pantalla y salida de datos modificados por impresora es:datos modificados por impresora es:

El organigrama de una aplicación para El organigrama de una aplicación para crear un archivo de ventas en cinta, crear un archivo de ventas en cinta, extraídos de un determinado documento extraídos de un determinado documento base en papel, con un listado por base en papel, con un listado por impresora de dichas ventas y consultas por impresora de dichas ventas y consultas por pantalla es:pantalla es:

DIAGRAMA DE FLUJO DE DIAGRAMA DE FLUJO DE PROGRAMAPROGRAMA También llamado ordinogramas.

Representa gráficamente la secuencia lógica de las operaciones en la resolución de un problema, por medio de un programa de computador.

En la fase de programación, el programador crea para cada programa un ordinograma, a partir del cual se realiza la codificación en el lenguaje de programación.

Un ordinograma debe Un ordinograma debe reflejar:reflejar:

◦El comienzo del programa.◦Las operaciones.◦La secuencia en que se realizan.◦El final del programa.

En la presentación de En la presentación de ordinograma, es conveniente ordinograma, es conveniente seguir las siguientes reglas:seguir las siguientes reglas: El comienzo del programa figurará en la parte superior del ordinograma.

Los símbolos de comienzo y fin deben aparecer una sola vez.

El flujo de las operaciones será, de arriba hacia abajo y de izquierda a derecha.

Se debe guardar cierta simetría en la representación de bifurcaciones y bucles, así como en el conjunto total del ordinograma.

Se evitará siempre los cruces de líneas de flujo usando conectores.

El uso de comentario será restringido al mínimo imprescindible. En la codificación si es recomendable.

Si un ordinograma se ha separado una parte por medio de un conector, las posibles conexiones que pueden aparecer desde la última a la anterior, se harán igualmente con conectores evitando el uso de líneas de flujo directas.

SÍMBOLOS USADOS EN SÍMBOLOS USADOS EN LOS ORDINOGRAMASLOS ORDINOGRAMAS

Programa para ingresar dos números y muestre las cuatro operaciones