Programación II 3-4 de marzo de 2009

Slides:



Advertisements
Presentaciones similares
EL TABLERO DE AJEDREZ.
Advertisements

Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Diseño y análisis de algoritmos
Estrella 0 - Fundamentos de la Programación
Programación Básica con NQC Pedro F. Toledo – Patricio Castillo 18/08/2006.
Búsqueda con retroceso
Programación II de febrero de 2009
¿Cómo hacer para que una máquina comprenda el LN?
INFORMÁTICA II.
Hacer clic en la ficha Informes para crear un nuevo objeto.
Códigos Detectores y Correctores de Errores
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
5. Propiedades de los Lenguajes Recursivamente
Metodología de la Programación
Algoritmos de Búsqueda
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.
Objetivos Específicos de la Unidad
2 Acciones y funciones 2.1 Concepto
Funciones en lenguaje C
La función BUSCAR devuelve un valor de un rango de una fila o una columna o de una matriz. Forma matricial: Buscar el valor especificado en la primera.
Inteligencia Artificial Resolver problemas mediante búsqueda
Recurrencia Programación II 3-4 de febrero de 2009.
Inteligencia Artificial Resolver problemas mediante búsqueda
Ejercicios de funciones
Programación de Computadores
Competencias de Programación Inter-Universitarias
Semana 5 Subprogramas..
Tres Algoritmos Paralelos para Multiplicación Matriz Vector
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
Complejidad Programación II de febrero de 2009.
Algoritmos numéricos. Método de “aproximación sucesiva”: se genera una hipótesis sobre la respuesta y en cada iteración se utiliza dicha hipóte- sis para.
Problemas de Decisión y Optimización
Programación dinámica: Introducción
M.S.C. Ivette Hernández Dávila
BUSQUEDA SECUENCIAL Consiste en revisar elemento tras elemento hasta encontrar el dato buscado, o llegar al final del conjunto de datos disponibles. La.
Descomposición Modular. Funciones
Parte I. Estructuras de Datos.
Definición: Reorganizar un conjunto dado de objetos en una secuencia especificada Objetivo: Facilitar la búsqueda de los elementos del conjunto ordenado.
PROGRAMACIÓN PROCEDIMENTAL
Búsqueda y ordenación Programación II 7-8 de enero de 2009.
Recurrencia Programación II de enero de 2009.
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
Recurrencia Programación II de enero de 2009.
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
Parte II. Algorítmica. 4. Programación dinámica.
Parte I. Estructuras de Datos.
Metodología para la construcción de programas
Pertinencia de la enseñanza del cómputo paralelo en el currículo de las ingenierías. Proyecto PAPIME PE
Parte I. Estructuras de Datos.
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Quick Sort Estructuras de Datos Universidad Autónoma de Tlaxcala Unidad Académica Multidisciplinaria 14 de Septiembre de 2012.
¿Cuáles son los programas
ALGORITMO QUE ES ??.
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
PHP el Lenguaje Ejercicios Básicos.
Elaboración de algoritmos usando lógica de programación
Se pueden incluir comentarios en cualquier parte de un programa pero deben delimitarse con llaves o con paréntesis y asterisco:
ESTRUCTURAS REPETITIVAS
Conalep Coacalco Algoritmos Recursivos
Dirección General de Educación Superior Tecnológica Instituto Tecnológico de Salina Cruz CARRERA INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES.
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
Las funciones son librerías ya estandarizadas que permiten al usuario realizar sus respectivas programaciones. Una función es un conjunto de líneas de.
Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 3 Programas.
L ENGUAJE DE E SPECIFICACIÓN Algoritmos y Estructuras de Datos I Especificación – Práctica 2 AEDI Especificación – Práctica 2 1.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Informatica I Ing. Nora Costa. Solución de Problemas.
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
ALGORITMOS Y PROGRAMAS. OBJETIVOS  Resolver problemas mediante la especificación algorítmica.  Proporcionar los procedimientos y técnicas para el desarrollo.
Transcripción de la presentación:

Programación II 3-4 de marzo de 2009 Diseño descendente Programación II 3-4 de marzo de 2009

Descomposición funcional Descomponer un programa en funciones más sencillas Cada función resuelve una sola tarea Cada tarea es claramente diferenciada de las otras tareas Ayuda en la comprensión del programa Facilita la reutilización de código

Diseño descendente Empezar por el problema a resolver Diseñar una solución intuitiva sin especificar detalles Esta solución representa el primer nivel de abstracción Complementar detalles con funciones de segundo nivel (descender un nivel) Continuar hasta llenar todos los detalles

Secuencia Estructura de datos secuencial Funciones: LeerPrimerElemento(L, e); LeerSiguienteElemento(L, e); UltimoElemento(L); InicializarSecuencia(L); EscribirElemento(L, e);

Ejercicio Contar el número de veces que aparece la primera palabra en un texto acabado en punto “lo que sabemos es una gota de agua; lo que ignoramos es el océano.” (Isaac Newton)  “lo” aparece 2 veces Suponer que el texto está representado por una secuencia de caracteres

Problema de las ocho reinas Situar ocho reinas en un tablero de ajedrez sin que se amenacen entre sí

Idea Idea: para cada columna, encontrar la primera fila no amenazada Situar una reina allí Continuar con la próxima columna Si encontramos una columna sin posibilidades, dar vuelta atrás (backtrack) Probar la siguiente fila posible

Ejemplo

Algoritmo accion OchoReinas() pos:vector (dim 8) de natural; Situar(1, pos); faccion pos: posición de la reina en cada columna

Segundo nivel accion Situar(col:natural, pos:vector de natural) variable fila:natural; si (col > 8) entonces Mostrar(pos); sino fila  ProximaFila(0, col, pos); mientras (fila ≤ 8) hacer pos[col]  fila; Situar(col + 1, pos); fila  ProximaFila(fila, col, pos); fmientras fsi faccion

Tercer nivel accion Mostrar(pos:vector de natural) variable i:natural; para i  1 hasta 8 hacer Mostrar(pos[i]); fpara Mostrar(‘\n’); faccion

Tercer nivel funcion ProximaFila(fila,col:natural, pos:vector de natural) devuelve natural fila  fila + 1; mientras (fila ≤ 8 y Amenazado(fila,col,pos)) hacer fmientras devuelve fila; ffuncion

Detectar amenazas

Cuarto nivel funcion Amenazado(fila,col:natural, pos:vector de natural) devuelve booleano variable i:natural; para i  1 hasta (col-1) hacer si ((pos[col-i] = fila-i) o (pos[col-i] = fila) o (pos[col-i] = fila+i)) entonces devuelve cierto; devuelve falso; faccion

Diseño descendente OchoReinas Situar Mostrar ProximaFila Amenazado

Pista de Carreras Estructura del código de la práctica 3 3023 líneas de código 51 funciones 19 archivos

main (p2Main.c) Leer los parámetros de la línea de comanda Llamar a la función StartGame con la pista y las estrategias Mostrar el ganador

StartGame (p2Game.c) Crear e inicializar las estructuras de datos Crear la matriz de adyacencia Repetir hasta finalizar el juego: Seleccionar el movimiento de un jugador Mostrar la pista Comprobar si el juego ha finalizado Liberar la memoria

CreateAdjacencyMatrix Diseño descendente main StartGame FreeMatrix ReadMatrix DisplayRaceTrack CreateAdjacencyMatrix MoveCar IsGameOver

Resumen Algoritmos de búsqueda y de ordenación Recurrencia Complejidad Diseño descendente