logica algoritmos
DESCRIPTION
Tema 2: Algoritmos - Logica de Programación - Nivel 1 - Grupo 248TRANSCRIPT
Algoritmos…
Grupo 248Docente: Ma. Eugenia Morales M.
Institución Universitaria de EnvigadoFacultad de Ingenierías
Generalidades sobre algoritmos
Algoritmos cualitativos y cuantitativos.
Un Algoritmo es…
◦ “Método para resolver un problema”
◦ Secuencia ordenada de pasos para resolver un problema dado.
Origen: ◦ Mohammed al-
Khowarizmí, matemático persa S.IX AC
◦ Euclídes, matemático griego S.IV AC
Pasos para resolver un problema…
Diseño del algoritmo
Codificación
Ejecución y validación
Tipos de Algoritmos
Cualitativos Cuantitativos
Conjunto de pasos para resolver un problema de la vida cotidiana.
Se puede generalizar a todos los casos del mismo problema.
Se expresa mediante palabras.
Es sintético y claro
Conserva las reglas de los algoritmos.
Está escrito en términos que pueda entender el computador.
Hace uso de términos estándares en la codificación de programas.
Tiene diferentes formas de expresión: estructural, flujo o pseudocódigo.
Conserva las reglas de los algoritmos
Técnicas de diseño de Algoritmos
Algoritmos voraces: seleccionan los elementos más prometedores del conjunto deopciones hasta encontrar una solución.
Algoritmos paralelos: permiten la división de un problema en subproblemas de formaque se puedan ejecutar de forma simultánea en varios procesadores.
Algoritmos probabilísticos: algunos de los pasos están en función de valorespseudoaleatorios.
Algoritmos determinísticos: tiene un lineal: cada paso del algoritmo tieneúnicamente un paso sucesor y otro antecesor. Algoritmos no determinísticos: elcomportamiento tiene forma de árbol y a cada paso del algoritmo puede bifurcarse acualquier número de pasos inmediatamente posteriores, además todas las ramas seejecutan simultáneamente.
Divide y vencerás: dividen el problema en subconjuntos obteniendo una solución decada uno de ellos para después unirlas, logrando así la solución al problema completo.
Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemasbasándose en un conocimiento anterior de los mismos.
Programación dinámica: intenta resolver problemas disminuyendo su costecomputacional aumentando el coste espacial.
Ramificación y acotación: se basa en la construcción de las soluciones mediante unárbol implícito que se recorre de forma controlada encontrando las mejores soluciones.
Vuelta atrás (backtracking): se construye el espacio de soluciones del problema enun árbol que se examina completamente, almacenando las soluciones menos costosas.
Fuente: http://exa.unne.edu.ar/informatica/programacion1/public_html/archivos/tema10_algoritmos.pdf
Fuente: http://es.wikipedia.org/wiki/Algoritmo
Características de los Algoritmos
Debe ser preciso e indicar el orden de realización de cada paso.
Debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Debe tener un número finito de pasos. Consta de tres partes:
◦ Inicio◦ Proceso◦ Fin
La definición de un algoritmo debe constar de:◦ Datos de Entrada◦ Proceso para la solución del Problema◦ Salida: datos que dan cuenta de la solución del problema
Fuente: Fundamentos de Programación, algoritmos y estructuras de datos. Luis Joyanés Aguilar. editorial McGrawHill
Ejemplo de un algoritmo (1)
Problema a resolver:
◦ Encontrar número de teléfono de unaempresa en la guía de páginas amarillas(libro físico).
Datos de Entrada:
◦ Directorio = muchas páginas.
◦ Se tiene categoría y subcategoría:búsqueda en el índice.
◦ Se conoce estructura del directorio:
Índice por orden alfabético
Cada letra dividida en categorías en ordenalfabético.
Se accede a la página de la categoría.
Cada categoría se identifica con un letreroprincipal dentro del cual están lassubcategorías.
Las empresas de cada subcategoría seagrupan en orden alfabético (exceptoavisos destacados).
Ejemplo de un algoritmo (2)
Proceso para la solución delproblema planteado:◦ Inicio Determinar categoría a buscar.
Buscar en el directorio el Índice
Ubicar letra de la categoría
Ubicar categoría: página.
Ubicar página
Ubicar dentro de lacategoría, la subcategoríarequerida.
Ubicar dentro de lasubcategoría por ordenalfabético el nombre de laempresa.
Verificar datos de acuerdo anecesidad.
Identificar Número de teléfono.
◦ Fin.
Practiquemos con los Algoritmos…
Diseñar algoritmos para:1. Cambiar el neumático de un carro.2. Buscar las llaves perdidas3. Preparar un cóctel.4. Servir una taza de café.5. Recoger el carro en el parqueadero
del centro comercial6. Solicitar la comida a domicilio.7. Ir al cine a ver una película de
estreno.8. Cambiar un bombillo fundido.9. Inscribirse a un curso de baile10. Instalar un nuevo software en el
equipo.11. Crear la cuenta de Email12. Comprar un nuevo celular.13. Utilizar por primera vez un
electrodoméstico.14. Comprar un par de zapatos.15. Abrir la cuenta personal en Twitter.16. Pagar la cuenta de servicios públicos.17. Solicitar una cita médica.18. Buscar a un antiguo amigo del colegio
en el Facebook.