SlideShare una empresa de Scribd logo
1 de 18
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:
  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
      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

Más contenido relacionado

La actualidad más candente

Identificadores en Lógia de Programación
Identificadores en Lógia de ProgramaciónIdentificadores en Lógia de Programación
Identificadores en Lógia de Programaciónnormaroldano
 
Unidad 03 variables, constantes y operadores
Unidad 03   variables, constantes y operadoresUnidad 03   variables, constantes y operadores
Unidad 03 variables, constantes y operadoresLorenzo Alejo
 
Abstracción de datos en java
Abstracción de datos en java Abstracción de datos en java
Abstracción de datos en java Izayoi Sakamaki
 
Introduccion a la logica de programacion
Introduccion a la logica de programacionIntroduccion a la logica de programacion
Introduccion a la logica de programacionnmqy28
 
Tipos de datos, identificadores, variables y constantes
Tipos de datos, identificadores,  variables y constantesTipos de datos, identificadores,  variables y constantes
Tipos de datos, identificadores, variables y constantesIEO Santo Tomás
 
Unidad 4 Técnicas para la formulación de algoritmos
Unidad 4 Técnicas para la formulación de algoritmosUnidad 4 Técnicas para la formulación de algoritmos
Unidad 4 Técnicas para la formulación de algoritmosCarlos M. Sandoval
 
Clases 2 dfd y basico 2011
Clases 2  dfd y basico 2011Clases 2  dfd y basico 2011
Clases 2 dfd y basico 2011seolivares
 
Prelógica
PrelógicaPrelógica
Prelógicamitscar
 
IC estructuras de secuencia
IC estructuras de secuenciaIC estructuras de secuencia
IC estructuras de secuenciacbertolotti
 

La actualidad más candente (16)

Identificadores en Lógia de Programación
Identificadores en Lógia de ProgramaciónIdentificadores en Lógia de Programación
Identificadores en Lógia de Programación
 
Unidad 03 variables, constantes y operadores
Unidad 03   variables, constantes y operadoresUnidad 03   variables, constantes y operadores
Unidad 03 variables, constantes y operadores
 
Abstracción de datos en java
Abstracción de datos en java Abstracción de datos en java
Abstracción de datos en java
 
Introduccion a la logica de programacion
Introduccion a la logica de programacionIntroduccion a la logica de programacion
Introduccion a la logica de programacion
 
Tipos de datos, identificadores, variables y constantes
Tipos de datos, identificadores,  variables y constantesTipos de datos, identificadores,  variables y constantes
Tipos de datos, identificadores, variables y constantes
 
Tipos de datos abstractos
Tipos de datos abstractosTipos de datos abstractos
Tipos de datos abstractos
 
Uso y manejo de DFD - Una aproximación
Uso y manejo de DFD - Una aproximaciónUso y manejo de DFD - Una aproximación
Uso y manejo de DFD - Una aproximación
 
Unidad 4 Técnicas para la formulación de algoritmos
Unidad 4 Técnicas para la formulación de algoritmosUnidad 4 Técnicas para la formulación de algoritmos
Unidad 4 Técnicas para la formulación de algoritmos
 
Clases 2 dfd y basico 2011
Clases 2  dfd y basico 2011Clases 2  dfd y basico 2011
Clases 2 dfd y basico 2011
 
Programacion
ProgramacionProgramacion
Programacion
 
Prelógica
PrelógicaPrelógica
Prelógica
 
PSEUDOCODIGO
PSEUDOCODIGOPSEUDOCODIGO
PSEUDOCODIGO
 
Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de Datos
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 
Pseodocodigo
PseodocodigoPseodocodigo
Pseodocodigo
 
IC estructuras de secuencia
IC estructuras de secuenciaIC estructuras de secuencia
IC estructuras de secuencia
 

Destacado

Manual de Instruções DVD Pioneer AVH-X1680DVD AVH-X2680BT AVH-X5680BT
Manual de Instruções DVD Pioneer AVH-X1680DVD AVH-X2680BT AVH-X5680BTManual de Instruções DVD Pioneer AVH-X1680DVD AVH-X2680BT AVH-X5680BT
Manual de Instruções DVD Pioneer AVH-X1680DVD AVH-X2680BT AVH-X5680BTTuning Parts
 
Jornal março corrigido
Jornal março corrigidoJornal março corrigido
Jornal março corrigidosaojosepascom
 
1. ICV Kongres controllera Srbije 2013, Ljiljana Aksić, head of controlling, ...
1. ICV Kongres controllera Srbije 2013, Ljiljana Aksić, head of controlling, ...1. ICV Kongres controllera Srbije 2013, Ljiljana Aksić, head of controlling, ...
1. ICV Kongres controllera Srbije 2013, Ljiljana Aksić, head of controlling, ...Menadžment Centar Beograd
 
Organización territorial e os desequilibrios rexionais
Organización territorial e os desequilibrios rexionaisOrganización territorial e os desequilibrios rexionais
Organización territorial e os desequilibrios rexionaisRosacidgalante
 
LATEC -UFF . O FUTURO ESTÁ EM NOSSAS MÃOS
LATEC -UFF . O FUTURO ESTÁ EM NOSSAS MÃOSLATEC -UFF . O FUTURO ESTÁ EM NOSSAS MÃOS
LATEC -UFF . O FUTURO ESTÁ EM NOSSAS MÃOSLATEC - UFF
 
Estimulos difono vocálico dr
Estimulos difono vocálico drEstimulos difono vocálico dr
Estimulos difono vocálico drJavi Acevedo
 
hooligans giovanni
hooligans giovannihooligans giovanni
hooligans giovannipekula
 
América nuestra 5
América nuestra 5América nuestra 5
América nuestra 517101810
 
Apresentação bloq (1)
Apresentação bloq (1)Apresentação bloq (1)
Apresentação bloq (1)RafaelaLuna98
 
Resumo do conflito israel x palestinos
Resumo do conflito  israel x palestinosResumo do conflito  israel x palestinos
Resumo do conflito israel x palestinosGoogle
 

Destacado (18)

Fran y jose luis
Fran y jose luisFran y jose luis
Fran y jose luis
 
Insertar videos a powerpoint 2007 i 2010
Insertar videos a powerpoint 2007 i 2010Insertar videos a powerpoint 2007 i 2010
Insertar videos a powerpoint 2007 i 2010
 
How To Count Number
How To Count NumberHow To Count Number
How To Count Number
 
Manual de Instruções DVD Pioneer AVH-X1680DVD AVH-X2680BT AVH-X5680BT
Manual de Instruções DVD Pioneer AVH-X1680DVD AVH-X2680BT AVH-X5680BTManual de Instruções DVD Pioneer AVH-X1680DVD AVH-X2680BT AVH-X5680BT
Manual de Instruções DVD Pioneer AVH-X1680DVD AVH-X2680BT AVH-X5680BT
 
Novo Titanic
Novo TitanicNovo Titanic
Novo Titanic
 
Jornal março corrigido
Jornal março corrigidoJornal março corrigido
Jornal março corrigido
 
1. ICV Kongres controllera Srbije 2013, Ljiljana Aksić, head of controlling, ...
1. ICV Kongres controllera Srbije 2013, Ljiljana Aksić, head of controlling, ...1. ICV Kongres controllera Srbije 2013, Ljiljana Aksić, head of controlling, ...
1. ICV Kongres controllera Srbije 2013, Ljiljana Aksić, head of controlling, ...
 
Organización territorial e os desequilibrios rexionais
Organización territorial e os desequilibrios rexionaisOrganización territorial e os desequilibrios rexionais
Organización territorial e os desequilibrios rexionais
 
Boletín Agroclimático Cauca #8
Boletín Agroclimático Cauca #8Boletín Agroclimático Cauca #8
Boletín Agroclimático Cauca #8
 
LATEC -UFF . O FUTURO ESTÁ EM NOSSAS MÃOS
LATEC -UFF . O FUTURO ESTÁ EM NOSSAS MÃOSLATEC -UFF . O FUTURO ESTÁ EM NOSSAS MÃOS
LATEC -UFF . O FUTURO ESTÁ EM NOSSAS MÃOS
 
Introdução
IntroduçãoIntrodução
Introdução
 
Estimulos difono vocálico dr
Estimulos difono vocálico drEstimulos difono vocálico dr
Estimulos difono vocálico dr
 
hooligans giovanni
hooligans giovannihooligans giovanni
hooligans giovanni
 
América nuestra 5
América nuestra 5América nuestra 5
América nuestra 5
 
Ferrovia madeira
Ferrovia madeiraFerrovia madeira
Ferrovia madeira
 
Apresentação bloq (1)
Apresentação bloq (1)Apresentação bloq (1)
Apresentação bloq (1)
 
Resumo do conflito israel x palestinos
Resumo do conflito  israel x palestinosResumo do conflito  israel x palestinos
Resumo do conflito israel x palestinos
 
3 diapositivas
3 diapositivas3 diapositivas
3 diapositivas
 

Similar a ED 02 1_tda

Similar a ED 02 1_tda (20)

Estructura de datos power point
Estructura de datos power pointEstructura de datos power point
Estructura de datos power point
 
Abstraccion ppt
Abstraccion pptAbstraccion ppt
Abstraccion ppt
 
Abstracción de datos
Abstracción de datosAbstracción de datos
Abstracción de datos
 
1.1 tda
1.1 tda1.1 tda
1.1 tda
 
6. tda arrayu generico
6. tda arrayu generico6. tda arrayu generico
6. tda arrayu generico
 
ESTRUCTURA DE DATOS
ESTRUCTURA DE DATOSESTRUCTURA DE DATOS
ESTRUCTURA DE DATOS
 
Tad
TadTad
Tad
 
Tarea 4 algoritmos
Tarea 4 algoritmosTarea 4 algoritmos
Tarea 4 algoritmos
 
Programacion C#
Programacion C#Programacion C#
Programacion C#
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Tipos de datos abstractos
Tipos de datos abstractosTipos de datos abstractos
Tipos de datos abstractos
 
Manual de PSeInt
Manual de PSeIntManual de PSeInt
Manual de PSeInt
 
Alisson
AlissonAlisson
Alisson
 
Compendio de clean code (robert c. martin)
Compendio de clean code (robert c. martin)Compendio de clean code (robert c. martin)
Compendio de clean code (robert c. martin)
 
Fundamentos programación
Fundamentos programaciónFundamentos programación
Fundamentos programación
 
Tiposdedatos 091026085500-phpapp02
Tiposdedatos 091026085500-phpapp02Tiposdedatos 091026085500-phpapp02
Tiposdedatos 091026085500-phpapp02
 
Abstracción de datos
Abstracción de datosAbstracción de datos
Abstracción de datos
 
Tipos De Datos
Tipos De DatosTipos De Datos
Tipos De Datos
 
Datos
DatosDatos
Datos
 
datos
datos datos
datos
 

Más de A J

ED 03 2_listas especiales
ED 03 2_listas especialesED 03 2_listas especiales
ED 03 2_listas especialesA J
 
ED 03 1_listas
ED 03 1_listasED 03 1_listas
ED 03 1_listasA J
 
ED 02 2_tda_arra_u
ED 02 2_tda_arra_uED 02 2_tda_arra_u
ED 02 2_tda_arra_uA J
 
ED 02 0_tda_definicion_td_as-bnf
ED 02 0_tda_definicion_td_as-bnfED 02 0_tda_definicion_td_as-bnf
ED 02 0_tda_definicion_td_as-bnfA J
 
ED 01 tipos_datos_ejercicios
ED 01 tipos_datos_ejerciciosED 01 tipos_datos_ejercicios
ED 01 tipos_datos_ejerciciosA J
 
ED 01 tipos_datos
ED 01 tipos_datosED 01 tipos_datos
ED 01 tipos_datosA J
 

Más de A J (6)

ED 03 2_listas especiales
ED 03 2_listas especialesED 03 2_listas especiales
ED 03 2_listas especiales
 
ED 03 1_listas
ED 03 1_listasED 03 1_listas
ED 03 1_listas
 
ED 02 2_tda_arra_u
ED 02 2_tda_arra_uED 02 2_tda_arra_u
ED 02 2_tda_arra_u
 
ED 02 0_tda_definicion_td_as-bnf
ED 02 0_tda_definicion_td_as-bnfED 02 0_tda_definicion_td_as-bnf
ED 02 0_tda_definicion_td_as-bnf
 
ED 01 tipos_datos_ejercicios
ED 01 tipos_datos_ejerciciosED 01 tipos_datos_ejercicios
ED 01 tipos_datos_ejercicios
 
ED 01 tipos_datos
ED 01 tipos_datosED 01 tipos_datos
ED 01 tipos_datos
 

Último

Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 

Último (20)

Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 

ED 02 1_tda

  • 1. TIPOS DE DATOS ABSTRACTOS ESTRUCTURAS DE DATOS
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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)
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. ¿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!
  • 12. 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
  • 13. 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
  • 14. EL TDA RACIONAL CON BNF Comportamiento: Sumar, Restar, Multiplicar, Simplificar Estado: <racional> := <numerador>/<denominador> <numerador>:=<digito>{<digito>} <denominador>:=<dig_no_cero>{<digito>}
  • 15. 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
  • 16. 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.
  • 17. DEFINICION DE STRING Comportamiento  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’
  • 18. EJERCICIOS EN CLASE  Crear un TDA para representar:  Un numero complejo y sus diferentes operaciones  Una arreglo y sus diferentes operaciones