1 metodología para la creación de algoritmos introducción a la informática departamento de...

33
1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

Upload: alejandra-escoto

Post on 02-Apr-2015

111 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

1

Metodología para la Creación de Algoritmos

Introducción a la InformáticaDepartamento de Sistemas

Universidad del Cauca2006

Page 2: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

2

Definiciones ImportantesAlgoritmoPrograma

Metodología de Resolución de Problemas con Algoritmos

AnálisisDiseño Implementación

Notación y Representación de Algoritmos Diagramas de Flujo Diseño del Algoritmo en Pseudo-código Otros tipos de diseño algorítmico

Agenda

Page 3: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

3

AlgoritmoUn algoritmo es una lista de actividades que se preparan para la realización de una tarea.

Esta idea no sólo está relacionada con las computadoras, sino que pertenece al campo de casi todas las actividades humanas. Ejemplos:

Receta de CocinaMapa del TesoroPartitura Musical

Page 4: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

4

Qué es un algoritmo?Es una secuencia ordenada de pasos, sin ambigüedades, que conducen a la solución de un problema dado.

Es la definición de los procesos definidos en el análisis.

Se representa en un lenguaje natural.

La exactitud es determinante.

Es independiente del lenguaje de programación.

Solo puede ejecutarse una operación a la vez.

Algoritmo= Traducción al latín de la palabra árabe Alkhowarizmi, nombre de un matemático y astrónomo árabe.

Page 5: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

5

Características de un algoritmo

Debe tener un punto particular de inicio.

Preciso: Indica el orden de realización de cada paso.

Definido: Si se sigue varias veces los mismos pasos con los mismos datos, se debe obtener siempre los mismos resultados. No debe permitir dobles interpretaciones.

Finito: Debe terminar en algún momento, debe tener un número finito de pasos.

Eficiente: Debe realizar los pasos con un mínimo de utilización de recursos.

Independiente del lenguaje de Programación: Su implementación debe ser posible en cualquier lenguaje de programación

Page 6: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

6

ProgramaCuando un programa contiene precisamente el conjunto de instrucciones que resuelven un problema específico y completan correctamente una tarea propuesta, decimos que el programa es una materialización de un Algoritmo.Un algoritmo es el planteamiento general de la solución, mientras el programa es la solución misma y contiene todos sus detalles en forma ejecutable.

Page 7: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

7

Elementos de un Programa

Restricciones:Instrucciones comprensibles para el ejecutorRealizable desde la situación del ejecutorNo deben imposibilitar continuar la ejecuciónNo repeticiones infinitas

Elementos: El Objetivo El Programador Las Instrucciones El Ejecutor

La principal razón para que las personas empiecen a programar, es porque se utiliza el computador como una herramienta para solucionar problemas.

Page 8: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

8

¿Qué pasaría, si el ingeniero civil o el arquitecto construye una

casa o un edificio sin hacer sus planos, proyectos o maquetas?

¿Permitirías que tu propio cirujano te interviniera sin hacer los estudios

respectivos para obtener las evidencias del problema de salud

que te aqueja?

¿Permitirías a tu abogado que te defendiera sin conocer las pruebas y sin un plan para tu defensa?

Metodología de Resolución de Problemas con Algoritmos

Page 9: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

9

El desarrollo de una solución a la medida de un problema requiere una metodología que gradualmente nos lleve a una efectiva solución del problema.

Para poder realizar programas, además de conocer la metodología mencionada, también se debe de conocer las funciones que puede realizar el computador y las formas en que se pueden manejar los elementos que hay en el mismo.

Metodología de Resolución de Problemas con Algoritmos

Page 10: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

10

IMPLEMENTACIÓN

ANÁLISIS

DISEÑO

Desarrollo de Algoritmos

Verificación del Algoritmo

Codificación del algoritmo

Compilación y ejecución del

programa

Prueba y Depuración

Documentación

Mantenimiento

Page 11: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

11

Que se va a hacer?

Ayuda a comprender la naturaleza del problema

Los problemas deben estar bien definidos

Realizar un examen bien cuidadoso del problema: “Lo que piden” Vs “Lo que necesitan” Vs “Lo posible”

Mientras no se conozca totalmente el problema y lo que se desea que realice el computador, no tiene mucho caso continuar con la siguiente etapa.

Page 12: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

12

1. Trabajo de campo

2. Indagar otros datos, condiciones y restricciones que afecten la resolución del problema.

a. Idea General: se hace un estudio superficial del problema (enunciado del problema).

b. Se especifican los Requisitos, se hace un estudio profundo (definición clara y precisa).

- Datos de entrada.- Datos de salida: información que se desea producir.- Datos auxiliares: datos que pueden servir para realizar

mejor un proceso, pero que no son de gran importancia para que éste cumpla su objetivo final.

- Proceso: Métodos y fórmulas que se necesitan para procesar los datos.

Pasos para realizar un buen Análisis

Page 13: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

13

¿Cómo se va a hacer?

Se determina como el programa va a hacer la tarea solicitada.

Debe estar bien definido, no se debe permitir dobles interpretaciones.

Page 14: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

14

1. Desarrollo del algoritmo

2. Verificación del algoritmo

•Partes de un algoritmo•Pasos para el desarrollo de un

algoritmo•Notación y representación de

algoritmos

• Prueba de Escritorio

Pasos para realizar un buen diseño

Page 15: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

15

Partes de un algoritmoEntradas: Información dada al algoritmo

Instrucciones: Operaciones necesarias para realizar un proceso

Salidas: Respuestas obtenidas al finalizar el algoritmo

Page 16: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

16

1. Diseño ascendente: (Top-Down Design):

Dividir el problema original en otros más simples y luego dividir estos subproblemas en otros más simples, y así sucesivamente.

Se hace un esbozo.

 2. Refinamiento sucesivo:

Descripción mas detallada con pasos más específicos del problema.

Se hacen varios niveles de refinamiento hasta que la solución sea clara, precisa y completa.

 3. Representación del algoritmo en una herramienta de programación:

El lenguaje del algoritmo debe ser independiente del lenguaje de programación. Herramientas: Diagramas de flujo, Pseudocódigo, Diagrama Nassi-Schneiderman (N-S).

Pasos para el desarrollo de un algoritmo

Page 17: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

17

EjemploQué hacer para ver la película Superman Regresa?

Ir al Cine Comprar una entradaVer la películaRegresar a casa

ver cartelera de cine en el periódicosi proyectan “Superman Regresa”

ir hasta el cinesi no

buscar otra actividad

si hay fila entonces ponerse en ella mientras haya personas delante avanzar en la colasi hay entradas entonces comprar una entrada pasar a la sala localizar la butaca mientras proyectan la película ver la películasi no refunfuñar

...

Page 18: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

18

Iniciover cartelera de cine en el periódicosi proyectan “Superman Regresa” ir hasta el cinesi no buscar otra actividad fin fin_si si hay fila entonces ponerse en ella mientras haya personas delante avanzar en la cola fin_mientras fin_si si hay entradas entonces comprar una entrada pasar a la sala localizar la butaca mientras proyectan la película ver la película fin_mientras si no refunfuñar fin_sivolver a casaFin

Iniciocaminar hasta llegar a la primera filarepetir comparar números de fila si no son iguales pasar a la siguiente filahasta que se localice la fila correcta mientras número de silla no coincida avanzar a la siguiente sillafin_mientrassentarse en la butaca Fin localizar la butaca

Page 19: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

19

Notación y Representación de AlgoritmosLenguajes Algorítmicos: Serie de símbolos y reglas que se utilizan para describir de manera explícita un proceso.

Tipos:

 Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (Diagrama de flujo o Diagrama Nassi-Schneiderman (N-S) ).

 No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocódigo).

Page 20: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

20

Diagrama de Flujo Un Diagrama de Flujo representa la esquematización gráfica de un algoritmo.

Se diseña para permitir observar las estructuras y la forma como ellas se conectan entre sí al configurar un programa.

Diagrama Nassi-Schneiderman (N-S) También conocido como

diagrama de Chapin.Similar al Diagrama de Flujo, en el que se omiten los conectores y las cajas son contiguas.

Page 21: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

21

SeudocódigoPara expresar el contenido de un programa de computadora, se requiere el uso de un lenguaje de programación.

Cuando expresamos dicho contenido en nuestra lengua natural, utilizando ciertas expresiones simples que lo abrevian un poco, se dice que está escrito en seudocódigo.

Calcular las posibles raíces para una ecuación de segundo grado: ax2+bx+c=0

+Algoritmo raíces|| Variables reales a,b,c,x,y|| Escribir "Introduzca los coeficientes de mayor a menor grado."| Leer a,b,c|| +Si sqr(b)>= 4*a*c entonces| | x=(-b+sqrt(b^2-4*a*c))/2a| +Sino| | Escribir "No existen raíces reales."| +Finsi|+Final

Page 22: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

22

 

Verificación del AlgoritmoComprobar que el programa realiza las tareas para las que ha sido diseñado y produce el resultado correcto y esperado.

Prueba de Escritorio:

Dar diferentes datos de entrada al programa y seguir la lógica del mismo hasta obtener el resultado exacto al esperado.

Si es necesario, hacer ajustes y volver a realizar la prueba hasta que cumpla con el propósito del cual ha sido creado.

Page 23: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

23

Donde se va a hacer?Culminación del sistema, aunque en realidad nunca termina su proceso .

PASOS:

1. Codificación2. Compilación y Ejecución3. Prueba y Depuración4. Documentación5. Mantenimiento

Page 24: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

24

Es la escritura del algoritmo en un lenguaje de programación (Código Fuente). El código puede ser escrito en cualquier leguaje, ya que el diseño es independiente de este.

Traduce el programa fuente a programa en código de maquina y lo ejecuta, introduciendo el programa en memoria.Si se presentan errores de “sintaxis” o de compilación, se vuelve a editar el programa. Se corrigen los errores y se compila de nuevo hasta que no salgan errores.

Codificación

Compilación y Ejecución

Page 25: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

25

Este paso se realiza debido a que los errores humanos dentro de la programación de computadores son muchos y aumentan considerablemente con la complejidad del problema.

Se refiere a ejecutar el programa con varios datos de entrada; así se determina si el programa tiene errores “lógicos” y se corrigen.

También se encuentran errores de “ejecución” (errores que el computador puede entender pero no ejecutar).Ej: Divisiones por cero.

Para esto se utilizan valores de entrada: Normales. Extremos, limites. Especiales.

Prueba y Depuración

Page 26: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

26

Son comentarios que facilitan la comprensión del programa, debido a que a menudo un programa escrito por una persona, es usado por otra.

Clases de documentación:INTERNA:

- Se incluyen dentro del programa fuente.

- Son comentarios que ayudan a la comprensión del código y el entendimiento de los procesos.

EXTERNA:

-  Es un archivo donde se documenta todos los pasos realizados para el desarrollo del programa y la solución del problema.

-  Incluye: Análisis, diseño, manual de usuario (como funciona el programa), manual técnico (como se implementó el programa en el lenguaje de programación seleccionado), pruebas, etc. 

Documentación

Page 27: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

27

Se lleva a cabo después de terminado el programa.

Se utiliza para hacerle soporte al programa: Cuando es necesario hacer algún cambio, ajuste o complemento al sistema para que siga trabajando de manera correcta.

Para esto la documentación debe ser correcta, completa y actualizada.

Mantenimiento

Page 28: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

28

PROBLEMA ALGORITMO PROGRAMA

ANALISIS DISEÑO IMPLEMENTACIÓN

Page 29: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

29

CÓDIGO: 1 NOMBRE: Huevo frito

ENUNCIADO: Se desea realizar el análisis para el proceso de cocinar un huevo frito saludable.

ANALISIS DEL PROBLEMA DATOS DE ENTRADA: Huevo, cacerola, tapa, Mantequilla, sal, DATOS DE SALIDA: Huevo frito saludable DATOS AUXILIARES: Cronometro, estufa

CONDICIONES O RESTRICCIONES:

- La fritura solo puede máximo 5 minutos, de lo contrario el huevo se quemara.

- Aplicar una pizca de sal para que no quede muy salado.

- Utilizar solo una cucharadita de mantequilla para evitar el colesterol.

PROCESO:

Inicio 1. Prender la estufa //Prenderla en alto 2. Poner a calentar la cacerola 3. Poner la mantequilla 4. Dejar derretir la mantequilla 5. Si la mantequilla no esta derretida, volver al punto 4 6. SI la mantequilla esta derretida, entonces 7. Iniciar el cronometro 8. Quebrar el huevo //Solo un poco 9. Echarlo en la cacerola //Sin revolverlo 10. Poner la tapa 11. Activar el cronometro 12. Si el huevo esta ya frito o han pasado 5 minutos, entonces 13. Esperar y volver al punto 12 14. Si no, entonces: 15. Apagar la estufa 16. Bajar la cacerola //utilizando un trapo para no

quemarse 17. Quitar la tapa 18. Echarle sal Fin

DISEÑO DEL PROBLEMA ALGORITMO: PRUEBA DE ESCRITORIO:

IMPLEMENTACIÓN DEL PROBLEMA DOCUMENTACIÓN: CODIGO FUENTE:

Page 30: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

30

CÓDIGO: 2 NOMBRE: Levantarse de madrugada

ENUNCIADO: Se desea realizar el análisis del proceso de levantarse de la cama para ir a clase de Informática I.

ANALISIS DEL PROBLEMA DATOS DE ENTRADA: Estudiante, despertador DATOS DE SALIDA: Estudiante levantado DATOS AUXILIARES: Cama, cobijas, pantuflas CONDICIONES O RESTRICCIONES:

- Como la clase empieza a las 9:00 am, tiene que levantarse a las 8:00 am

PROCESO:

Inicio 1. Si el despertador marca las 8:00 am, entonces 2. Soñar durísimo 3. Si la persona esta dormida, entonces //por si no ha llegado

a dormir 4. Abrir los ojos 5. Desperezarse 6. Quitarse las lagañas 7. Apagar el despertador 8. Quitarse la cobija 9. Sentarse al borde de la cama 10. Buscar las pantuflas 11. Ponerse las pantuflas 12. Pararse de la cama 13. Si la persona no esta dormida, entonces //por si no ha

llegado a dormir 14. apagarse el despertador a los 10 minutos Fin

Page 31: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

31

CÓDIGO: 3 NOMBRE: Números pares

ENUNCIADO: Realizar la suma de todos los números pares entre 2 y 1000. El problema consiste en sumar 2 + 4 + 6 + 8 + . . . + 1000

ANALISIS DEL PROBLEMA DATOS DE ENTRADA: Número mínimo, Número máximo DATOS DE SALIDA: Suma números pares DATOS AUXILIARES: CONDICIONES O RESTRICCIONES: Solo se suman los números pares

PROCESO:

Inicio 1. Inicializar la suma en 0 2. Empezar a contar desde el Numero mínimo 3. Sumar este valor 4. Incrementar el valor en 2 unidades 5. Si el valor es mayor que el Número máximo, entonces 6. Saltar al paso 10 7. Sino, entonces 8. Sumar este nuevo valor 9. Volver al paso 4 10. Escribir el resultado Fin

Page 32: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

32

CÓDIGO: 4 NOMBRE: Número Primo

ENUNCIADO:

Se desea diseñar un algoritmo para saber si un número es primo o no. Un número es primo si sólo puede dividirse por sí mismo y por la unidad (es decir, no tiene más divisores que él mismo y la unidad). Por ejemplo, 9, 8,6,4, 12, 16, 20, etc., no son primos, ya que son divisibles por números distintos a ellos mismos y a la unidad. Así, 9 es divisible por 3, 8 lo es por 2, etc.

ANALISIS DEL PROBLEMA DATOS DE ENTRADA: Número DATOS DE SALIDA: Si es primo o no DATOS AUXILIARES: CONDICIONES O RESTRICCIONES:

PROCESO:

El algoritmo de resolución del problema pasa por dividir sucesivamente el número por 2, 3, 4..., etcétera. Inicio 1. Obtener el número 2. Poner X igual a 2 3. Dividir el número por X 4. Si el resultado del paso 3 es entero, entonces //el Número

no es primo 5. Escribir que el número no es primo 6. Terminar el programa 7. Si el resultado del paso 3 no es entero, entonces 8. Incrementar en 1 unidad X 9. Si X es igual al Número ingresado, entonces //el Número

es primo 10. Escribir que el número es primo 11. Si no, entonces volver al punto 3 Fin

Page 33: 1 Metodología para la Creación de Algoritmos Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

33

BibliografíaAlgoritmo: http://es.wikipedia.org/wiki/Algoritmo http://www.monografias.com/trabajos/algoritmo/algoritmo.shtml

Diagrama de Flujo, Seudocódigohttp://www.mis-algoritmos.com/2006/08/08/aprenda-a-crear-diagramas-de-flujo/ http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo http://www.mis-algoritmos.com/diagramas-flujo.html

Imágenes:

http://www.supermercadosgrande.com/recetas/receta-arrozypollo.jpg

http://www.modenasitiweb.it/casimirri_onofrio/immagini/xarama.gif http://www.vaivenproducciones.com/images/productos/PARTITURA%20900.jpg