SOLUCIÓN DE PROBLEMAS Problema Solución A B S T R C I Ó N C O N R E I

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

Algoritmos y Programas
PILA.
Estructuras de datos y algoritmos
Modelo de Datos Unidad II.
Estructuras de Datos (ARRAYS)
Estructuras de datos y algoritmos
Introducción a la Estadística Informática
ESTRUCTURAS DE DATOS AVANZADAS
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
Arreglos Ing. Nahiby Castillo.
Intervalos e Inecuaciones de primer grado
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Universidad Autónoma San Francisco
COLAS, IMPLEMENTACIÓN A PARTIR DE LISTAS Y PARA PILAS
Prof. Esteban Hernández
ESTRUCTURAS DE CONTROL
Esta presentación tiene como objetivo facilitar el aprendizaje de los contenidos asociados a la unidad.
INTRODUCCIÓN A LA COMPUTACIÓN 12va Semana – 19va Sesión Miércoles 18 de Mayo del 2005 Juan José Montero Román
Academia de Informática
Temas importantes para el desarrollo de la segunda parte del TPE
Coloración de Grafos Planos
Diseño de diagramación Diagrama: es una representación gráfica del flujo información de y el proceso de ejecución del programa. Plateo del problema en.
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas.
ALGORITMOS, CONCEPTOS BASICOS.
Facultad de Ciencias de la Computación MC Beatriz Beltrán Martínez
ESTRUCTURA DE DATOS EN JAVA
Clase 10: Estructuras de datos y arreglos.
Programación IMC José Andrés Vázquez Flores. Definición Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un.
ARBOLES ESTRUCTURAS DE DATOS.
ESTRUCTURA DE DATOS ESD-243
ELO3201 Contenedores Biblioteca Estándar de Templates Agustín J. González ELO320 Contenido Contenedores: Vector, List, Deque, Stack, Queue, Priority Queue,
COMPONENTES DE UN ALGORITMOS
Matemáticas para Ciencias de la Computación MCC3182
Aplicación de estructuras de datos
Clasificación de los TDA
Diseño y análisis de algoritmos
Planteos Recursivos Resolución de Problemas y Algoritmos
Programación de Sistemas
PILAS Una pila es una estructura de datos o lista de elementos, a la cual se le puede insertar o eliminar su contenido sólo por uno de sus extremos, llamado.
Tecnologías de las computadoras
MATEMATICAS COMPETENCIAS MATEMATICAS
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Relaciones y Grafos Análisis y Diseño de Algoritmos.
Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción
Desarrollo del Pensamiento Matemático
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
SOLUCION DE PROBLEMAS MEDIANTE BUSQUEDA
Estructura de Datos 4 Grafos Dirigidos
ALGORITMOS PRESENTADO POR: FERNANDA LEURO TATIANA CONTRERAS 1004
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
Presente un cuestionario con los aspectos mas importantes sobre los
M.S.C. Ivette Hernández Dávila
Capítulo 3: Conjuntos Autor: José Alfredo Jiménez Murillo.
Introducción a los TADs
Lic. Carla Aguirre Montalvo
PROGRAMACIÓN IV INTRODUCCIÓN.
PILAS Una pila es una estructura de datos o lista de elementos, a la cual se le puede insertar o eliminar su contenido sólo por uno de sus extremos, llamado.
Laboratorio de programación
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
RESOLUCION DE ECUACIONES DE PRIMER GRADO
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
ALGORITMOS Asignatura: Informática. Algoritmos Conjunto de instrucciones ordenadas de forma lógica y precisa, con un inicio y fin que permite resolver.
Ing. Barros Rodriguez D. Ronald Introducción a la Programacón.
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE MATERIAS PROPEDÉUTICAS INGENIERÍA EN SISTEMAS ENERGÉTICOS SUSTENTABLES.
Transcripción de la presentación:

SOLUCIÓN DE PROBLEMAS Problema Solución A B S T R C I Ó N C O N R E I MUNDO REAL Problema Solución Espacio del Problema MUNDO ABSTRACTO Espacio de la Solución MODELO A B S T R C I Ó N C O N R E I Ó Estructuras de Datos Abstractas Operaciones Abstractas ALGORITMO ABSTRACTO Datos de Prueba Programa Resultados

PROBLEMAS Imposibles de formular en términos que permitan solución por computador Expresables en términos de un modelo formal Investigar si existe un programa para solucionarlo Si no existe, se pueden estudiar las propiedades del modelo que ayuda a construir una buena solución MODELO SOLUCIÓN EN TÉRMINOS DE UN ALGORITMO

ALGORITMO SECUENCIA FINITA DE PASOS LÓGICOS, CADA UNO DE LOS CUALES TIENE UN SIGNIFICADO CLARO, PARA SOLUCIONAR UN PROBLEMA CON UNA CANTIDAD FINITA DE ESFUERZO, EN UN TIEMPO FINITO

QUE PROBLEMA SOLUCIONAR” LA CONSTRUCCIÓN DE ALGORITMOS Para construir un algoritmo, es necesario: Tener un problema a resolver Haberle encontrado solución Frase del día: “LA MITAD DE LA BATALLA ES SABER QUE PROBLEMA SOLUCIONAR”

LA CONSTRUCCIÓN DE ALGORITMOS cont... Una vez que se tiene la solución, se puede proceder al diseño del algoritmo. Pasos: Identificar los tipos de objetos que el algoritmo va a usar. Seleccionar las variables que representen instancias de cada tipo, para uso del programa. Seleccionar estructuras de control y operadores abstractos primitivos que reflejen las manipulaciones de datos. Abstraer estas estructuras de control y datos en procedimientos.(Estos procedimientos son “encarnaciones” abstractas del algoritmo. IMPORTANTE: En este punto, se está muy por encima de cualquier lenguaje de programación

Diseñar un semàforo para una intersección complicada de calles PROBLEMA D E C A B Diseñar un semàforo para una intersección complicada de calles

SOLUCIÓN GRAFO ( AB, AC, AD, BA, BC,...) AB EA AB EA MODELO MATEMÁTICO VÉRTICES : GIROS PERMISIBLES ÁRCOS : GIROS NO PERMISIBLES DETERMINACIÓN DE GIROS ( AB, AC, AD, BA, BC,...) GIROS NO SIMULTÁNEOS AB EA COLOREAR AB EA

SOLUCIÓN cont.. AB AC AD BA BC BD DA DB DC EA EB EC ED

AB AC EA DC DB DA BA BC BD AD ED EC EB SOLUCIÓN cont.. AB AC EA DC DB DA BA BC BD AD ED EC EB BA, DC, EB: Libres.

MACROALGORITMO Seleccionar algún vértice no coloreado y asignarle un nuevo color. Revisar la lista de vértices no coloreados. Para cada vértice no coloreado, determinar si tiene un ARCO a algún vértice ya coloreado con el nuevo color. Si no lo hay, coloree el vértice con el nuevo color.

SEUDOCÓDIGO PRIMER REFINAMIENTO Procedimiento COLOREAR(G:grafo;NUEVOCOLOR:set); NUEVOCOLOR = [ ] para cada vértice no coloreado V en G si V no es adyacente a algún vértice en NUEVOCOLOR entonces marque a V como coloreado lleve V a NUEVOCOLOR finsi finCOLOREAR

SEUDOCÓDIGO cont... SEGUNDO REFINAMIENTO Procedimiento COLOREAR(G:grafo;NUEVOCOLOR:set); NUEVOCOLOR = [ ] para cada vértice no coloreado V en G encontró = falso para cada vértice W en NUEVOCOLOR si hay un arco entre V y W en G entonces encontró = verdadero finsi si (no encontró) marque a V como coloreado lleve V a NUEVOCOLOR finCOLOREAR

Conjunto de valores que puede tener una variable ALGUNAS DEFINICIONES IMPORTANTES TIPO DE DATOS Conjunto de valores que puede tener una variable Ej: BOOLEAN: true, false ADT (Abstract Data Type) Modelo matemático con una colección de operaciones definidas sobre el modelo Ej: Conjunto : È, Ç, - ESTRUCTURA DE DATOS Permite representar el modelo Ej: arreglo, lista, map, stack

TIPOS DE DATOS ABSTRACTOS BÁSICOS LISTA DEFINICIÓN ESTRUCTURA DE DATOS FLEXIBLE QUE PUEDE CRECER O DISMINUIR BAJO DEMANDA, Y LOS ELEMENTOS SE PUEDE ACCEDER INSERTAR ELIMINAR EN CUALQUIER POSICIÓN DENTRO DE LA LISTA

OPERACIONES ABSTRACTAS LISTAS OPERACIONES ABSTRACTAS 1. INSERTAR(x, p, L) Inserta x, en la posición p de L 2. ELIMINAR(p, L) Borra elemento de la posición p de L 3. LOCALIZAR(x, L) Retorna a través de LOCALIZAR, la posición de x en L 4. RECUPERAR(p, L) Retorna a través de RECUPERA, el contenido de la posición p en L

LISTAS cont... OPERACIONES ABSTRACTAS 5. HACERLISTANULA(L) Crea o hace una lista vacía 6. PRIMERO(L) Retorna en PRIMERO, la primera posición de la lista L. Si está vacía, retorna el final de la lista 7. FINAL(L) Retorna la posición siguiente al “último elemento” de la lista

LISTAS cont... OPERACIONES ABSTRACTAS 8. PROXIMO(p, L) Entrega en PROXIMO, la dirección del elemento siguiente a p 9. PREVIO(p, L) Entrega en PREVIO, la dirección del elemento anterior a p 10. IMPRIMIRLISTA(L) Imprime los elementos de la lista L