TIPOS DE DATOS ABSTRACTOS

Slides:



Advertisements
Presentaciones similares
Fundamentos de Diseño de Software INFT.1
Advertisements

TECNICATURA UNIVERSITARIA EN INFORMATICA
PROCESOS ADMINISTRATIVOS
funciones Por: Carlos Alberto García Acosta
UNIDAD II: ALGORITMOS Y LENGUAJES
Resolución de Problemas Algoritmos y Programación
INSTITUTO TECNOLOGICO DE MINATITLAN
Técnico en programación de Software
Estructuras de datos y algoritmos
Tipo de Dato Abstracto Tipos de datos:
MANEJO DE ARRAYS EN C.
Traducción dirigida por la Sintaxis
Ingeniería de sw.
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Encapsulamiento y Abstracción
LAS CARAS DE LA EVALUACION
CAPITULO 2 La Representación del Conocimiento
Las variables en PHP Programación en Internet II.
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
Álgebra elemental.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
EXPONENTES Y RADICALES
Semana 5 Subprogramas..
Unidad 1 Definiciones Básicas
CARACTERÍSTICAS DE LOS PROGRAMAS
Fundamentos de programación
Facultad de Ciencias de la Computación MC Beatriz Beltrán Martínez
Introducción a los tipos de datos abstractos
1.1 Concepto y terminología
DISEÑO DE SOFTWARE 1ª. Parte
SOFTWARE DE PROGRAMACIÓN
Descomposición Factorial Unidad 5
Recurrencia Programación II de enero de 2009.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Simular: Representar una cosa, fingiendo o imitando lo que no es.
Introducción Lenguaje de Programación ING2101 SECC Ayud. Ariel Fierro Sáez.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 13/05/2006.
Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2.
Introducción a la programación
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
 Se necesita desarrollar a los alumnos integralmente para que sea competente, para ello es necesario aplicarles ejercicios de problemas que se le presentan.
Facultad de Ingeniería
DEFINICIÓN DE OBJETO Un objeto es aquello que puede ser observado, estudiado y aprendido CARACTERÍSTICAS nos permiten conocerlos mediante la observación,
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Visual Basic FUNCIONES Y PROCEDIMIENTOS
Exponentes Enteros.
Elaboración de algoritmos usando lógica de programación
Fundamentos de Programación
Operaciones Algebraicas
Tipos de Datos.
Metodología de la programación
“CURSO PROPEDÉUTICO PARA EL MEJORAMIENTO DEL PENSAMIENTO MATEMÁTICO”
Lic. Carla Aguirre Montalvo
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
TIPOS DE DATOS ABSTRACTOS
Objetivos del tema. Hemos visto lo que es la estructura de un programa, los datos, que esos datos en realidad se convierten en variables de distinto.
PARADIGMA Es un marco de referencia que impone reglas sobre cómo se deben hacer las cosas. CONCEPTO DE PARADIGMA DE PROGRAMACION colección de modelos conceptuales.
MEMORIA DINÁMICA.
Introducción Matemática Nivelatoria
Se llama fracción algebraica al cociente de dos polinomios.
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
Recuerda. Igualdades numéricas y con letras
Propiedad Intelectual Cpech PPTCAC008MT21-A16V1 Álgebra I Propiedad Intelectual Cpech ACOMPAÑAMIENTO ANUAL BLOQUE 21.
Sistema Numérico Binario Prof. Carlos Ortiz Muñoz.
1 Los números reales Los números racionales Los números irracionales
Transcripción de la presentación:

TIPOS DE DATOS ABSTRACTOS ESTRUCTURAS DE DATOS

OBJETIVOS Determinar las posibles entidades a participar en un problema Identificar las características y comportamientos importantes de cada entidad Abstraer la definición y comportamiento de una entidad para crear un nuevo TDA Aplicar un lenguaje formal parar definir un TDA

ABSTRACCION Es “ignorancia selectiva” Decidir que es importante y que no lo es Enfocarse y depender de lo que ES importante Ignorar y no depender de lo que NO ES importante El propósito de la abstracción no es ser poco específico, es más bien crear un nuevo nivel, en el cual se puede ser absolutamente preciso Edsger Dijkstra

ABSTRACCION PARA RESOLVER PROBLEMAS La mejor abstracción es aquella que hace simples las cosas complejas. Rescatar y resaltar los conceptos fundamentales Esconder los aspectos no importantes Ejemplo: Detalles de la implementación Mientras mas perfecta es una máquina, mas oculto se encuentra su funcionamiento. Al parecer, la perfección no se logra cuando no hay mas que añadir, si no cuando no haya mas que quitar. Antoine de Saint-Exupéry

ABSTRACCION DE DATOS Es una técnica poderosa de programación Permite “inventar”, o definir nuevos tipos de datos Observando e identificando entidades del mundo real: objetos Ocultando datos irrelevantes para la resolución del problema Gracias a esto, se pueden diseñar programas Mas cortos, Legibles y Flexibles Estos nuevos tipos de datos se conocen como: TIPOS DE DATOS ABSTRACTOS (TDA)

TIPOS DE DATOS ABSTRACTOS Un TDA trata de representar entidades del mundo real: objetos Especificando el QUE y no el COMO Se componen de Comportamiento  Operaciones Los TDAs existen PARA proveer operaciones Ejemplo: Un carro, es útil porque se lo puede manejar Manejar es un comportamiento u operación del TDA Carro Estado Se refiere al funcionamiento interno del TDA Un TDA correctamente creado mantiene su estado OCULTO Ejemplo: No nos interesa como Carro funciona, solo nos interesa… que funciona

EJEMPLO Se necesita crear un TDA para representar los números racionales La abstracción nos permitirá reconocer El comportamiento de un número racional y El estado (datos) del mismo TDA: Racional Comportamiento: Sumar, Restar, Multiplicar, Simplificar, etc. Estado: Numerador Denominador, siempre debe ser diferente de 0

VENTAJAS DE LOS TDA Permiten una mejor representación del mundo real Una solución puede estar compuesta de un grupo de TDAs Cada uno con sus comportamientos y estados El código se comprende mejor, pues los TDAs representan entidades del mundo real Permite llevar un control de cambios Si el estado de un TDA esta oculto, si se modifica, nadie se verá afectado Ejemplo: Se pueden hacer modificaciones a un auto sin que el usuario del mismo se entere o cambie su forma de USAR el auto Permite la extensibilidad de un sistema Cada Nuevo Tipo de Dato es un modulo que se adapta a una solución

DEFINICION DE UN TDA La definición de un TDA durante el diseño debería Clara, concisa, sin ambigüedades Sin embargo, muchos de nosotros usamos Lenguaje natural: sujeto a ambigüedades Lenguaje de programación en particular No todos lo entienden Una notación formal, generalizada Todos lo podrán entender y la definición será clara y concisa Una notación formal propuesta es BNF

QUE ES BNF? Backus-Naur Form Es una notación formal matemática Es utilizada para definir la sintaxis de los lenguajes Que esta permitido en cierto lenguaje y que no Sin lugar a ambigüedades Ejemplo: En lenguaje C, Hay reglas para declarar variables Y cada sentencia de control tiene su propia regla de sintaxis

¿Cómo funciona BNF? Es como un juego matemático Se busca definir un símbolo, dando las reglas para reemplazarlo Símbolo := alternativa1 | alternativa2 Si una expresión escrita Se puede expresar usando su definición BNF Estará correctamente escrita Si no, no será permitida según la sintaxis del lenguaje ¡ERROR!

REGLAS Y SINTAXIS DE BNF Una regla en BNF indica que Un símbolo no terminal a la izquierda del := puede ser reemplazado por la o las alternativas del lado derecho Las alternativas de reemplazo se separan con | Cada alternativa puede ser Otro símbolo no terminal Que aún falta por definir, va encerrado entre <> Un simbolo terminal Que ya no necesita más definición

SIMBOLOS EN EL BNF := | [..] {..} Equivalencia Separa opciones de reemplazo para un símbolo dado [..] Todo lo encerrado entre corchetes se considera opcional {..} Todo lo encerrado entre llaves se puede repetir mas de una vez

EL TDA RACIONAL CON BNF Comportamiento: Estado: Sumar, Restar, Multiplicar, Simplificar Estado: <racional> := <numerador>/<denominador> <numerador>:=<digito>{<digito>} <denominador>:=<dig_no_cero>{<digito>}

LAS CADENAS EN C Conocemos las cadenas: Conjuntos de caracteres En C, el concepto implica cierta complejidad Una cadena es un arreglo de caracteres o es el puntero al primer carácter El problema es que El uso de punteros a veces es confuso y las funciones para trabajo con cadenas no son amigables Ejemplo: char cadena[4]; // se puede trabajar, pero tiene una longitud máxima de 4 char *ncadena; //no se puede trabajar aun strcpy(cadena, “Mama”); //si sobrepasa la long. Max. Habra problemas ncadena = malloc(sizeof(char) * 4); //hay que conocer memoria dinámica

EL TDA string Mucha complejidad para usar las cadenas Definamos que es una cadena Basándonos en su comportamiento y estado Sin considerar la complejidad ¿Qué esperamos de las cadenas?  Comportamiento Poder asignarle valores Obtener un carácter de la cadena Calcular su longitud Buscar posición de un carácter en la cadena Concatenar cadenas Extraer una subcadena, etc.

DEFINICION DE STRING Comportamiento Estado (debe estar oculto) Obtener un carácter de la cadena Calcular su longitud Buscar posición de un carácter en la cadena Concatenar cadenas Extraer una subcadena, etc Estado (debe estar oculto) <string> := <fin_cadena>|<carácter><string> <caracter>:= ‘a’|’b’|…. <fin_cadena>:=‘\0’

EJERCICIOS EN CLASE Crear un TDA para representar: Un numero complejo y sus diferentes operaciones Una arreglo y sus diferentes operaciones