Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1-EDA Teo
1-EDA Teo
Algoritmos
Curso 2009
Tecnólogo Informático
Presentación
Docentes:
Previas
Recursión
Estructuras Dinámicas (punteros)
Tipos Abstractos de Datos
Módulos
Técnicas de ensayo de programas
Temario
Tipos abstractos de datos.
Diseño de programas, módulos de programa.
Implementación de módulos en lenguaje C/C++.
Algoritmos de búsqueda y ordenación.
Introducción al análisis de algoritmos:
eficiencia en tiempo de ejecución y espacio de
almacenamiento.
Concepto de recurrencia.
Implementación de tipos de datos recurrentes:
concepto y manipulación de punteros. (ej:
Implementación de listas).
Temario
Implementación de funciones recurrentes.
Prácticos
Laboratorio
Pruebas
Parciales
Trabajo de Laboratorio
Estrategia
Registros
Uniones
Estructuras Dinámicas(Punteros)
Módulos
Compilación separada
Estrategia
Metodología de Programación
Recurrencia
Listas y Árboles
Ensayo de Programas
Autómatas Maquinas de estado
Transición:
if (x >= y) max = x; else max = y ;
Efecto
dado un estado inicial, la transición cambia ese estado de tal
modo que en el estado final la variable max contiene el
máximo de x e y
Efecto del programa
consiste en el cambio de estado
Maquinas de estado programables
Esquema:
Componentes:
Memoria
Lista de casillas identificadas
Cada casilla puede contener un símbolo, de una lista
dada.
Las casillas se usan para almacenar:
instrucciones
datos
Punto de control - “program counter"
Señala al lugar de memoria donde se
encuentra la siguiente instrucción a ejecutar
Maquinas de estado programables
Instrucciones:
hay un conjunto de instrucciones precisamente especificado
En general, cada instrucción modifica el estado de la
máquina
Máquina de Turing
1936 - Modelo de "procedimiento computable"
¿ Es decidible mecánicamente si un enunciado matemático
es verdadero o
falso ?
Maquinas de estado programables
Computadora Electrónica
Realización del modelo de Turing (~1945)
Las celdas pueden contener sólo 0 ó 1 (Bits)
Instrucciones y datos codificados en secuencias de bits
(código binario)
¡ La noción abstracta de PROGRAMA antecedió a las
computadoras electrónicas!
(Más aún: constituyó la base de su diseño)
Resultados inesperados de investigaciones altamente
teóricas
Maquinas de estado programables
Ejemplo:
-1100 (significa sumar)
-111011...1 (operandos)
Programa de Computadora
Programas
Difícil de definir, podríamos decir que:
instrucciones que la CPU de una computadora puede
entender y ejecutar.
Conjunto de pasos para resolver un problema dado.
Buscamos
acordar una noción (más) objetiva de programa
Metodologías de Programación
Partición
Refinamiento
Ejemplo: C, Basic...
Paradigmas de Programación
Programación Funcional
Utilizado en IA.
Paradigmas de Programación
Programación Lógica
En este paradigma, se consideran principalmente predicados
y reglas lógicas que alimentan una base de conocimientos.
Ejecutar un programa, en este caso, es evaluar o un
predicado o dar valores para que un predicado es verdadero.
Paradigmas de Programación
Programación Orientada a Objetos
La Programación Orientada a Objetos (POO , OOP) es un
paradigma de programación que usa objetos y sus interacciones
para diseñar aplicaciones y programas de computadora. Está
basado en varias técnicas, incluyendo herencia, modularidad,
polimorfismo y encapsulamiento
Lenguajes de Programación
En lenguaje de programación se puede clasificar
también según la forma de ejecución de los
programas escritos en el.
Interpretado
Compilado
Lenguajes de Programación
En un lenguaje interpretado, el código es convertido
en instrucciones ejecutables por el microprocesador al
momento mismo de la ejecución. Necesita un
programa interprete. La CPU ejecuta las instrucciones
del interprete.
Ejemplos : Python, JavaScript, prolog, Java,…
http://es.wikipedia.org/wiki/Programaci
%C3%B3n_orientada_a_objetos
http://es.wikipedia.org/wiki/Compilador
www.cimat.mx/~jbhayet
¿Preguntas?