Beruflich Dokumente
Kultur Dokumente
Algoritmos
Introduccin a la Informtica
Departamento de Sistemas
Universidad del Cauca
2006
Agenda
Definiciones Importantes
Algoritmo
Programa
Metodologa de Resolucin de Problemas
con Algoritmos
Anlisis
Diseo
Implementacin
Algoritmo
Un algoritmo es una lista de actividades que se
preparan para la realizacin de una tarea.
Esta idea no slo est relacionada con las
computadoras, sino que pertenece al campo de
casi todas las actividades humanas.
Ejemplos:
Receta de Cocina
Mapa del Tesoro
Partitura Musical
Qu es un algoritmo?
Es una secuencia ordenada de pasos, sin ambigedades, que
conducen a la solucin de un problema dado.
Es la definicin de los procesos definidos en el anlisis.
Se representa en un lenguaje natural.
La exactitud es determinante.
Es independiente del lenguaje de programacin.
Solo puede ejecutarse una operacin a la vez.
Algoritmo= Traduccin al latn de la palabra rabe
Alkhowarizmi, nombre de un matemtico y astrnomo rabe.
Caractersticas de un
algoritmo
Debe tener un punto particular de inicio.
Preciso: Indica el orden de realizacin 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 algn momento, debe tener un
nmero finito de pasos.
Eficiente: Debe realizar los pasos con un mnimo de
utilizacin de recursos.
Independiente del lenguaje de Programacin: Su
implementacin debe ser posible en cualquier lenguaje de
programacin
Programa
Cuando un programa contiene precisamente el
conjunto de instrucciones que resuelven un
problema especfico y completan correctamente
una tarea propuesta, decimos que el programa es
una materializacin de un Algoritmo.
Un
algoritmo
es
el
planteamiento
general
de la solucin, mientras
el
programa
es
la
solucin
misma
y
contiene
todos
sus
detalles
en
forma
ejecutable.
6
Elementos de un Programa
La principal razn para que las personas
empiecen a programar, es porque se utiliza el
computador
como
una
herramienta
para
solucionar problemas.
Elementos:
El Objetivo
El Programador
Las Instrucciones
El Ejecutor
Restricciones:
Instrucciones comprensibles para el ejecutor
Realizable desde la situacin del ejecutor
No deben imposibilitar continuar la ejecucin
No repeticiones infinitas
Metodologa de Resolucin de
Problemas con Algoritmos
Qu pasara, si el ingeniero civil o
el arquitecto construye una casa o
un edificio sin hacer sus planos,
proyectos o maquetas?
Metodologa de Resolucin de
Problemas con Algoritmos
El desarrollo de una solucin a la medida de un
problema requiere una metodologa que
gradualmente nos lleve a una efectiva solucin
del problema.
Para poder realizar programas, adems de
conocer la metodologa mencionada, tambin
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.
Codificacin del
algoritmo
ANLISIS
Desarrollo de
Algoritmos
Verificacin del
Algoritmo
DISEO
Compilacin y
ejecucin del
programa
Prueba y
Depuracin
Documentacin
Mantenimiento
IMPLEMENTACIN
10
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.
11
12
Cmo 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.
13
Partes de un algoritmo
Pasos para el desarrollo de un
algoritmo
Notacin y representacin de
2. Verificacin
algoritmos del algoritmo
Prueba de Escritorio
14
Partes de un algoritmo
Entradas: Informacin dada al algoritmo
Instrucciones: Operaciones necesarias para
realizar un proceso
Salidas: Respuestas obtenidas al finalizar el
algoritmo
15
Ejemplo
Qu hacer para ver la pelcula Superman Regresa?
...
Inicio
ver cartelera de cine en el peridico
si proyectan Superman Regresa
ir hasta el cine
si no
buscar otra actividad
fin
Inicio
fin_si
caminar hasta llegar a la pri
si hay fila entonces
repetir
ponerse en ella
comparar nmeros de fila
mientras haya personas delante
si no son iguales
avanzar en la cola
pasar a la siguiente
fin_mientras
hasta que se localice la fila
fin_si
nmero de silla n
si hay entradas entonces mientras
avanzar a la siguiente silla
comprar una entrada
fin_mientras
pasar a la sala
sentarse en la butaca
localizar
butaca
localizar
la la
butaca
Fin
mientras proyectan la pelcula
ver la pelcula
fin_mientras
si no
refunfuar
fin_si
volver a casa
18
Fin
Notacin y Representacin de
Algoritmos
19
Diagrama de Flujo
Un Diagrama de Flujo representa
la esquematizacin grfica de un
algoritmo.
Se disea para permitir observar
las estructuras y la forma como
ellas se conectan entre s al
configurar un programa.
Diagrama Nassi-Schneiderman
Tambin conocido como
(N-S)
diagrama de Chapin.
Similar al Diagrama de Flujo, en
el que se omiten los conectores
y las cajas son contiguas.
20
Seudocdigo
Para expresar el contenido
de
un
programa
de
computadora, se requiere
el uso de un lenguaje de
programacin.
Cuando expresamos dicho
contenido
en
nuestra
lengua natural, utilizando
ciertas expresiones simples
que lo abrevian un poco, se
dice que est escrito en
seudocdigo.
21
Donde se va a hacer?
Culminacin del sistema, aunque en realidad
nunca termina su proceso .
PASOS:
1.
2.
3.
4.
5.
Codificacin
Compilacin y Ejecucin
Prueba y Depuracin
Documentacin
Mantenimiento
23
Codificacin
Es la escritura del algoritmo en un lenguaje de
programacin (Cdigo Fuente).
El cdigo puede ser escrito en cualquier leguaje, ya que
el diseo es independiente de este.
Compilacin y Ejecucin
Traduce el programa fuente a programa en cdigo de maquina y lo
ejecuta, introduciendo el programa en memoria.
Si se presentan errores de sintaxis o de compilacin, se vuelve a editar
el programa.
Se corrigen los errores y se compila de nuevo hasta que no salgan errores.
24
Prueba y Depuracin
Este paso se realiza debido a que los errores humanos dentro de la programacin 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 lgicos y se corrigen.
Tambin se encuentran errores de ejecucin (errores que el computador puede entender pero no ejecutar).
Ej: Divisiones por cero.
Para esto se utilizan valores de entrada:
Normales.
Extremos, limites.
Especiales.
25
Documentacin
Son
comentarios
que
facilitan
la
comprensin del programa, debido a que a
menudo un programa escrito por una
persona, es usado por otra.
Clases
de documentacin:
INTERNA:
- Se incluyen dentro del programa fuente.
-Son comentarios que ayudan a la comprensin del cdigo y
el entendimiento de los procesos.
EXTERNA:
-Es un archivo donde se documenta todos los pasos
realizados para el desarrollo del programa y la solucin del
problema.
-Incluye:
Anlisis, diseo, manual de usuario (como
funciona el programa), manual tcnico (como se
implement el programa en el lenguaje de programacin
26
seleccionado), pruebas, etc.
Mantenimiento
Se lleva a cabo despus de terminado el programa.
Se utiliza para hacerle soporte al programa: Cuando es necesario hacer algn
cambio, ajuste o complemento al sistema para que siga trabajando de manera
correcta.
Para esto la documentacin debe ser correcta, completa y actualizada.
27
ANALISIS
PROBLEMA
DISEO
ALGORITMO
IMPLEMENTACIN
PROGRAMA
28
CDIGO:
ENUNCIADO:
DATOS DE ENTRADA:
DATOS DE SALIDA:
DATOS AUXILIARES:
CONDICIONES O
RESTRICCIONES:
PROCESO:
ALGORITMO:
PRUEBA DE ESCRITORIO:
IMPLEMENTACIN DEL PROBLEMA
DOCUMENTACIN:
CODIGO FUENTE:
29
CDIGO:
ENUNCIADO:
DATOS DE ENTRADA:
DATOS DE SALIDA:
DATOS AUXILIARES:
CONDICIONES O
RESTRICCIONES:
PROCESO:
Estudiante, despertador
Estudiante levantado
Cama, cobijas, pantuflas
- Como la clase empieza a las 9:00 am, tiene
que levantarse a las 8:00 am
Inicio
1. Si el despertador marca las 8:00 am, entonces
2. Soar dursimo
3. Si la persona esta dormida, entonces //por si no ha llegado
a dormir
4. Abrir los ojos
5. Desperezarse
6. Quitarse las lagaas
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
30
CDIGO:
ENUNCIADO:
DATOS DE ENTRADA:
DATOS DE SALIDA:
DATOS AUXILIARES:
CONDICIONES O
RESTRICCIONES:
PROCESO:
31
CDIGO:
ENUNCIADO:
DATOS DE ENTRADA:
DATOS DE SALIDA:
DATOS AUXILIARES:
CONDICIONES O
RESTRICCIONES:
PROCESO:
Nmero
Si es primo o no
32
Bibliografa
Algoritmo:
http://es.wikipedia.org/wiki/Algoritmo
http://www.monografias.com/trabajos/algoritmo/algoritmo.shtml
Diagrama de Flujo, Seudocdigo
http://www.mis-algoritmos.com/2006/08/08/aprenda-a-creardiagramas-de-flujo/
http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo
http://www.mis-algoritmos.com/diagramas-flujo.html
Imgenes:
http://www.supermercadosgrande.com/recetas/recetaarrozypollo.jpg
http://www.modenasitiweb.it/casimirri_onofrio/immagini/xarama.gi
f
http://www.vaivenproducciones.com/images/productos/PARTITURA
%20900.jpg
33