Tipos Abstractos de Datos
|
|
|
- Ángela San Segundo Velázquez
- hace 9 años
- Vistas:
Transcripción
1 Tipos Abstractos de Datos Tema 1. Estructuras de Datos y de la Información Tipos de Datos Un Tipo de Datos es una colección de valores Han sido estudiados los tipos de datos que implementan lenguajes como ADA o Java (Boolean, Integer, Character...) Estos tipos son conocidos como tipos simples Estos tipos pueden ser utilizados en nuestros programas sin necesidad de que los detalles sobre su implementación sean conocidos 1
2 Tipos Abstractos de Datos (TAD) (I) Podemos encontrar varias definiciones para el concepto de Tipo Abstracto de Datos (TAD) TAD: Conjunto de Operaciones. Weiss, Data Structures andalgorithms. p.46. TAD: Modelo matemático con una serie de operaciones definidas en ese modelo. Aho, Hopcroft, Ullman, Data Structures and Algorithms. p.11. TAD: Tipo de datos definido de forma única mediante un tipo y un conjunto de operaciones definidas sobre el tipo. Hernández, Lázaro, Dormido, Ros. Estructuras de Datos y Algoritmos. p.3. Tipos Abstractos de Datos (TAD) (II) Un Tipo Abstracto de Datos es una abstracción donde se encuentran encapsulados los estados potenciales en los que se puede encontrar una entidad de ese tipo y las operaciones que pueden realizarse sobre ella. Abstraer: Separar por medio de una operación intelectual las cualidades de un objeto para considerarlas aisladamente o para considerar el mismo objeto en su pura esencia o noción. 2
3 Tipos Abstractos de Datos (TAD) (II) Como se ha mencionado, se trata de una abstracción. No se incluyen detalles sobre la implementación de las operaciones. Los TAD son independientes por completo de la implementación. Estructuras de Datos En muchos textos, pueden encontrarse confundidos los términos TAD y Tipo de Datos, así como TAD y Estructura de Datos. Estructura de Datos: Conjunto de variables que se encuentran relacionadas. Con Estructura de Datos, por tanto, nos referimos a la implementación física de un TAD. 3
4 Atributos de un TAD El encapsulamiento y la ocultación de información son atributos internos del diseño. Un TAD tiene estas propiedades: Encapsulamiento: La información referente a la definición del tipo y todas las operaciones que pueden realizarse sobre el mismo se encuentran en el mismo lugar. Ocultación de Información: La información acerca de la implementación se encuentra oculta al usuario. Implementación de un TAD Es importante comprender la diferencia entre un TAD y su implementación Las implementaciones no dejan de ser importantes, y su elección es crítica Al final, el usuario no debe preocuparse de cómo está implementado un TAD. Su única preocupación debe ser el uso del mismo 4
5 Implementación de un TAD (II) Cómo debe implementarse un TAD? Deben considerarse detalles acerca de la complejidad espacial de las estructuras y temporal de las operaciones Preguntas que debe formularse el programador: Cómo será la estructura de datos? Cómo crecerá? Según lo anterior y otras consideraciones cuál será el coste de una implementación u otra para cada operación? TAD: Diseño e implementación Debido a todo lo expuesto, el diseñador de un TAD debe enfrentarse a tres pasos bien distintos, pero íntimamente relacionados: 1. Análisis de datos y operaciones 2. Elección del TAD 3. Elección de la implementación 5
6 Declaración de un TAD: Especificación Algebraica Una especificación algebraica de un TAD tiene dos componentes: 1. Signatura (Sintaxis): Se compone de a) Definición de los posibles valores del tipo b) Operaciones definidas 2. Axiomas (Semántica): Relaciones y restricciones que se establecen sobre el modelo Ejemplo 1: TAD Booleano TAD Booleano; SIGNATURA VALORES BOOLEAN={TRUE,FALSE OPERACIONES INIC:BOOLEAN BOOLEAN NOT:BOOLEAN BOOLEAN OR: BOOLEAN x BOOLEAN BOOLEAN AND: BOOLEAN x BOOLEAN BOOLEAN 6
7 Ejemplo 1: TAD Booleano (II) AXIOMAS INIC(p) = p NOT(TRUE) = FALSE NOT(NOT(p)) = p p OR NOT(p) = TRUE p OR p = p p AND NOT(p) = FALSE p AND p = p Ejemplo 2: TAD Número_Natural TAD Número_Natural; UTILIZA Booleano; SIGNATURA VALORES NAT OPERACIONES INIC: NAT NAT CERO: NAT ESCERO: NAT BOOLEAN SUCC: NAT NAT SUM: NAT x NAT NAT IGUALES: NAT x NAT BOOLEAN 7
8 Ejemplo 2: TAD Número_Natural (II) AXIOMAS X, Y NAT: INIC(X) = X CERO() = 0 ESCERO(CERO) = TRUE ESCERO(SUCC(X)) = FALSE SUMA(CERO,X) = X SUMA(SUCC(X),Y) = SUCC(SUMA(X,Y)) SUCC(X) = SUMA(X,1) IGUAL(X,CERO) = IF ESCERO(X) THEN TRUE ELSE FALSE IGUAL(CERO,SUCC(X)) = FALSE IGUAL(SUCC(X),SUCC(Y)) = IGUAL(X,Y) Construcción de TAD en Java: Clases y Objetos Java proporciona mecanismos para encapsular y ocultar la información. Encapsulamiento de datos en clases y objetos. Una clase constituye un nuevo tipo, y los objetos de esta clase serán instancias (entidades físicas) de este tipo. 8
9 Construcción de TAD en Java Esta construcción (la clase) permite, por tanto, encapsular datos y operaciones sobre los mismos, por lo que se revela idónea para construir TADs. Cada clase Java se corresponde con un fichero, que representa la declaración e implementación de un TAD. En el archivo que contenga el TAD deben encontrarse representados los atributos de la clase (privados), el nombre y forma de las operaciones que se exportan (su interfaz), y su implementación. Ejemplo de implementación: TAD conjunto public class Conjunto { private char contenedor[ ]; private int tam; public Conjunto(){ contenedor = new char[256]; tam = 0; public Conjunto(Conjunto S){ contenedor = new char[256]; for (int i = 0; i < S.length; i++) contenedor[i] = S.contenedor[i]; tam = S.tam; 9
10 Ejemplo de implementación: TAD conjunto public int posicion (char c){ int i = 0; while (i < tam && contenedor[i]!= c) i++; return i == tam? -1 : i; public boolean contiene (char c){ return posicion(c) >= 0; public boolean vacio (){ return tam == 0; public boolean lleno (){ return tam == 256; Ejemplo de implementación: TAD conjunto public void insertar (char c){ if (!contiene(c)){ contenedor[tam] = c; tam++; public void eliminar(char c){ int pos = posicion(c); if (pos >= 0){ for (int i = pos+1; i<contenedor.length; i++) contenedor[i-1] = contenedor[i]; tam--; 10
11 Ejemplo de implementación: TAD conjunto public Conjunto union (Conjunto s){ Conunto res = new Conjunto(s); for (int i = 0; i < this.tam; i++) res.insertar(this.contenedor[i]); return res; public Conjunto interseccion (Conjunto s){ Contenedores homogéneos genéricos: Generics Contenedor Homogéneo: Todos los registros contienen el mismo tipo de datos (e.g. array). Contenedor Homogéneo Genérico: El tipo de datos se decide en tiempo de compilación (e.g. array). En Java pueden crearse contenedores homogéneos genéricos de manera eficiente utilizando generics. 11
12 Contenedores homogéneos genéricos: Generics (II) Una clase generic recibe parámetros para su conformación como tal. En tiempo de compilación se creará el código real de la clase. Los parámetros pueden ser tipos. En el caso en el que se esté construyendo un contenedor homogéneo genérico, el tipo contenido siempre es un parámetro. Contenedores homogéneos genéricos: Generics (III) Ejemplo de contenedor homogéneo genérico: Conjunto de cualquier tipo. Para declarar una clase (o función) como generic, debemos incluir en la declaración la siguiente secuencia: <modificador> class <T> <declaración estándar> <T> indica que vamos a declarar una clase genérica con un tipo paramétrico T. 12
13 Ejemplo de implementación: TAD conjunto genérico public class Conjunto <T>{ private T contenedor[ ]; private int tam; public Conjunto(){ contenedor = (T[]) new Object[256]; tam = 0; public Conjunto(Conjunto<T> S){ contenedor = (T[]) new Object[256]; for (int i = 0; i < S.length; i++) contenedor[i] = S.contenedor[i]; tam = S.tam; Ejemplo de implementación: TAD conjunto genérico public int posicion (T c){ int i = 0; while (i < tam && contenedor[i]!= c) i++; return i == tam? -1 : i; public void contiene (T c){ return posicion(c) >= 0; public boolean vacio (){ return tam == 0; public boolean lleno (){ return tam == 256; 13
14 Ejemplo de implementación: TAD conjunto genérico public void insertar (T c){ if (!contiene(c)){ contenedor[tam] = c; tam++; public void eliminar (T c){ int pos = posicion(c); if (pos >= 0){ for (int i = pos+1; i<contenedor.length; i++) contenedor[i-1] = contenedor[i]; tam--; Ejemplo de implementación: TAD conjunto genérico public static void main(string args[]){ Conjunto<String> a = new Conjunto<String>(); Conjunto<int> b = new Conjunto<int>(); //Incorrecto Conjunto<Integer> b = new Conjunto<Integer>(); 14
15 Diseño por contrato (I) Cuando se fija un contrato, se desprenden de este las obligaciones y beneficios de cada una de las partes implicadas. Siguiendo una metáfora aplicada a software, en el diseño por contrato se establecerán las relaciones entre los procedimientos y sus invocadores. El Diseño por Contrato da una visión de la construcción del software como un conjunto de elementos cooperando entre sí. Diseño por contrato (II) El diseño por contrato toma su base de la especificación formal de programas, pero es mucho más pragmático. Siguiendo con la metáfora, se establecerán relaciones Proveedor-Cliente, siendo estos dos los roles que tomarán los elementos del software. Se establecerá un contrato entre las dos partes que especificará obligaciones y beneficios de ambas partes (una obligación de una parte supone un beneficio de la otra). 15
16 Diseño por contrato (III) Los contratos se especifican usando asertos lógicos de tres tipos: Precondiciones. Postcondiciones. Invariantes (de clase). Diseño por contrato (IV) En lo que se refiere a obligaciones y beneficios, la relación entre cliente y proveedor viene dada por la siguiente tabla: Proveedor Cliente Obligaciones Satisfacer la postcondición Satisfacer la precondición Beneficios No preocuparse por la precondición Obtiene lo establecido en la postcondición 16
17 Diseño por contrato (V) Invariante de una clase: Predicado que expresa el conjunto de estados de corrección para la clase. Un contrato debe incluir, entonces, una precondición, una postcondición y un invariante. El no cumplimiento de alguna de las cláusulas del contrato significará un defecto en el software. Diseño por contrato (VI) Utilizaremos excepciones al iniciarse la llamada a una función para verificar la precondición y el invariante, y al final para hacer lo propio con el invariante y la postcondición. Las excepciones de tipo RuntimeException no exigen declarar la cláusula throws en la cabecera del método. Tampoco obligan a invocar al método dentro de un bloque trycatch. 17
UNIDAD 3: TIPOS ABSTRACTOS DE DATOS
. 1 UNIDAD 3: TIPOS ABSTRACTOS DE DATOS (APUNTES DE APOYO A CLASES TEÓRICAS TIEMPO DE EXPOSICIÓN: 2 HS) Bibliografía: 2 1. Rubén Maza. Artículo Abstracción de Datos. Revista Compumagazine 1993 2000. 2.
Concepto. Ventajas. Abstracción, Encapsulamiento, Interfaz e Implementación. Tipos de unidades. Creación y uso de unidades para implementar TADs.
Tipos Abstractos de Datos (TAD) Concepto. Ventajas. Abstracción, Encapsulamiento, Interfaz e Implementación. Tipos de unidades. Creación y uso de unidades para implementar TADs. Abstracción: Concepto Simplificación
Clases abstractas e interfaces en Java
Clases abstractas e interfaces en Java Clases abstractas public abstract class Figura { private String _nombre; public Figura (string nombre) { _nombre = nombre; final public boolean mayor_que (Figura
Modulo 11. Clases y Objetos en Java
El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.
Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez
Algoritmos y Estructuras de Datos Iteradores Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/26 Iteradores Es muy común
Tema 4- Representación Enlazada
Tema 4- Representación Enlazada Tema 4: Representación Enlazada Índice general: 1. Representación Enlazada: Variables referencia Java como enlaces. 2. Listas Enlazadas Genéricas. Operaciones y costes.
Examen Teórico. Convocatoria de Julio de 2015
Examen Teórico Convocatoria de Julio de 2015 Nombre: DNI: Grupo: 1. Sobre la ejecución de aplicaciones Java desde la línea de comandos: a) Explica el significado y uso del parámetro cp. b) Indica si la
Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1
Interfaces Amparo López Gaona Septiembre de 2008 Amparo López Gaona () Interfaces Septiembre de 2008 1 / 1 Interfaces Las interfaces Java permiten al diseñador de clases establecer su forma definiendo
Concurso: Cuánto sabes de JAVA?
Concurso: Cuánto sabes de JAVA? Motivación: o Para cambiar el ritmo de las jornadas y que no todas las actividades sean charlas o Recordar conocimientos y aprender algo nuevo. o Las preguntas pueden ayudarnos
INTRODUCCION A LA PROGRAMACION EN JAVA
Departament d Arquitectura de Computadors INTRODUCCION A LA PROGRAMACION EN JAVA Índice Paso de parámetros en tiempo de ejecución Métodos static Atributos static Try-catch-finally Throws/throw 2 Paso de
PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica
Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar.
Clases La programación orientada a objetos utiliza clases para encapsular (envolver, esconder) datos (atributos) y métodos (comportamientos). Por ejemplo, el estéreo de un auto encapsula todos los atributos
Programación II Tipos Abstractos de Datos(TAD)
Programación II Tipos Abstractos de Datos(TAD) Definición Un Tipo Abstracto de Datos es un conjunto de valores y de operaciones definidos mediante una especificación independiente de cualquier representación.
Tema 4 Genericidad en Java. Programación Orientada a Objetos Curso 2013/2014
Tema 4 Genericidad en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Antecedentes. Genericidad en Java 5 y posterior. Características avanzadas: Genericidad restringida. Tipo puro. Limitaciones
Examen Teórico Convocatoria de Junio de 2012
Examen Teórico Convocatoria de Junio de 2012 Nombre: DNI: Titulación: 1. Sobre el control de errores en Java: a) El siguiente método contiene un error de compilación debido al uso de excepciones. Explica
Estructuras de Datos Clase 4 Pilas y colas
Estructuras de Datos Clase 4 Pilas y colas Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Tipo
Soluciones Ejercicios Tema 3
1 Soluciones Ejercicios Tema 3 Germán Moltó [email protected] Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Solución Ejercicio
Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005
24 Noviembre 2005 disponibles de acceso public private protected de tipo static abstract final modificadores más avanzados que no vamos a ver... Clase Sintaxis modificadores class nombreclase{} Tipos primitivos
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Estructuras de control selectivas
Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos
Parte I: Programación en un lenguaje orientado a objetos
Parte I: Programación en un lenguaje orientado a objetos 1. Introducción a los lenguajes de programación 2. Datos y expresiones 3. Estructuras algorítmicas 4. Datos compuestos 5. Modularidad 6. Tratamiento
Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende
1.2. Es Java un lenguaje ideal para aprender a programar? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar?
1 1. Introducción 1.1. Qué es Java? 1.2. Es Java un lenguaje ideal para aprender a programar? 1.3. Es Java software libre? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar? 1.5. Qué sistema
PROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Sea una aplicación Java donde todas las clases están compiladas y empaquetas en un solo fichero JAR (programa.jar). Qué sería necesario para conseguir ejecutar
PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }
PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)
Java. Introducción a la Programación Orientada a Objetos
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
Excepciones. Excepciones
Excepciones FJP Unidad 12 Excepciones Una excepción es la representación de una condición de error o cualquier situación no esperada en el resultado de un método. Son instancias de subclases de la clase
Examen Teórico. Convocatoria de Febrero de 2015
Examen Teórico Convocatoria de Febrero de 2015 Nombre: DNI: Grupo: 1. Contesta de forma razonada a las siguientes cuestiones relacionadas con los ficheros.jar: a) Para qué se utilizan los ficheros con
GENERAR NÚMEROS ALEATORIOS EN JAVA. CLASE RANDOM Y MÉTODO NEXTINT. EJERCICIO EJEMPLO RESUELTO. (CU00672B)
APRENDERAPROGRAMAR.COM GENERAR NÚMEROS ALEATORIOS EN JAVA. CLASE RANDOM Y MÉTODO NEXTINT. EJERCICIO EJEMPLO RESUELTO. (CU00672B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha
Introducción a la programación orientada a objetos
Introducción a la programación orientada a objetos Cristina Cachero Castro Pedro J. Ponce de León Amador Estela Saquete Boró Departamento de lenguajes y sistemas informáticos Universidad de Alicante Índice
18. Interfaces Declaración de una interfaz
Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir
Tema 7: Polimorfismo. Índice
Tema 7: Polimorfismo Antonio J. Sierra Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos. Recursividad. Control de acceso. Static. Final. Argumento
En este capitulo se estudiarán los conceptos relacionados a métodos, como lo son sobrecarga, métodos estáticos.
Lección 3: Creando clases 1. Definición de métodos 2. Sobrecarga de métodos 3. Definición de constructores 4. Creando miembros estáticos 5. Construcción e inicialización de objetos Objetivos En este capitulo
Tema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés
Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Índice general:. Modelo y Aplicación de Lista con Punto de Interés
LISTAS CIRCULARES. // Métodos private CElemento() {} // constructor. ultimo
LISTAS CIRCULARES Una lista circular es una lista lineal en la que el último elemento apunta al primero. Entonces es posible acceder a cualquier elemento de la lista desde cualquier punto dado. Las operaciones
Estructuras de Datos
Estructuras de Datos. Tema 1. Programación Imperativa de Computadores Tema 2. Fundamentos de Complejidad Algorítmica Tema 3. Estructuras de datos jerárquicas Tema 4. concepto y especificación de Tipos
Esta aplicación se compone de 3 programas o clases, según el siguiente esquema: SueldoMedio.java. Sueldo.java
PROGRAMACIÓN I FECHA: 10-septiembre-2002 Programa de ficheros de E/S (lau puntu) Realizar una aplicación en Java para calcular el sueldo medio mensual de los empleados en activo en una empresa de Vitoria,
Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005
Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas
Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015
Aspectos de los LP Diseño de compiladores Lenguajes de Programación Antes de comenzar con la construcción de un compilador, debemos comprender los conceptos basicos del lenguaje de programación con el
INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS
INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) 1. INTRODUCCIÓN INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Las computadoras fueron diseñadas o ideadas como una herramienta mediante la cual
Clase adicional 2. Estructuras básicas de control. Temas
Clase adicional 2 Temas Estructuras de control Sentencia condicional Iteración Clases Definir una clase Crear una instancia de una clase Campos estáticos Problemas de la clase adicional Problema de diseño
VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
TEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica
TEMA 3. Árboles Objetivos En este tema se estudia una de las estructuras de datos no lineal más importante en computación, el árbol. Comenzaremos introduciendo la terminología asociada a los árboles y
Unidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1
Unidad 1 Análisis de Algoritmos Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1 GENERALIDADES Qué se necesita para escribir un programa eficiente? Para diseñar programas eficientes
EDA. Tema 8 Colas de Prioridad: Heaps
EDA. Tema 8 Colas de Prioridad: Heaps Natividad Prieto Sáez. DSIC EDA, T-8. Curso 02/03. N.Prieto p.1/55 Objetivos Estudio de las definiciones asociadas a las Colas de Prioridad: Especificación: operaciones
PROGRAMACIÓN GENÉRICA
PROGRAMACIÓN GENÉRICA Lenguajes de Programación - Orientación a Objetos: Progr. Genérica 1 Programación genérica Objetivo: escribir algoritmos genéricos, independientes de las clases concretas de los datos
Práctica 11e. Práctica 11e. José M. Ordax
Práctica 11e José M. Ordax [email protected] 1 Copyright 2005 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación de javahispano
Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015 1. Introducción Este documento
Construcciones del Lenguaje Java
Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.
Tema 4: Corrección y Robustez en Java. Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 4: Corrección y Robustez en Java Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Introducción Corrección: Asertos Pruebas unitarias Robustez: Excepciones Diseño por contrato
Identidad, igualdad y equivalencia
Identidad, igualdad y equivalencia Introducción a la Programación Orientada a objetos 2018 Clases como tipos Cuando el analista o el diseñador de un sistema orientado a objetos especifica una clase, establece
Indice del curso básico programación desde cero Visual Basic Nivel I (CU00302A)
aprenderaprogramar.com Indice del curso básico programación desde cero Visual Basic Nivel I (CU00302A) Sección: Cursos Categoría: Curso Visual Basic nivel I Fecha revisión: 2029 Autor: Mario R. Rancel
Curso-Taller Programación Paralela con lenguaje C bajo Linux. MCC. Salazar Martínez Hilario
Curso-Taller Programación Paralela con lenguaje C bajo Linux MCC. Salazar Martínez Hilario Mayo 2011 Programación Paralela La que se realiza usando procesos separados. Interactúan intercambiando información.
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entr
Introducción Arquitectura de los DBMS Lenguajes de los DBMS Diccionario de datos Seguridad e integridad de los datos Administrador del DBMS Arquitectura Cliente-Servidor Definimos un Sistema Gestor de
1. (1 punto) Dado el siguiente fragmento en Java:
PROGRAMACIÓN I 9-septiembre-2004 1. (1 punto) Dado el siguiente fragmento en Java: class Pares public static void main (String [] argumentos) String numero = argumentos[0]; Completar el programa con las
Problemas de Recursividad
Problemas de Recursividad Problema 1. El factorial de un número entero n 0, denotado como n!, se define! como!!! i = 1 2 n cuando n > 0, y 0! = 1. Por ejemplo 6! = 1 2 3 4 5 6 = 720 Diseñad una método
Pilas Motivación
Capítulo 4 Pilas Las pilas son estructuras muy sencillas y poderosas, también conocidas como LIFO (last in, first out) por la forma en que se trabaja con ellas. Ejemplo de ellas son las pilas de charolas
Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad. Guillermo Román Díez
Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción a la Recursión
CLAVE ASIGNATURA REQUISITOS HORA/SEMANA CREDITOS TI-8 PROGRAMACION II 80% DE ASISTENCIA 4 6
PRESENTACIÓN: La programación orientada a objetos es una evolución de la programación procedural basada en funciones. La POO permite agrupar secciones de código con funcionalidades comunes, pretende agrupar
CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE
CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE 1 Estructura de Datos 1. Logica de Programación 2. Uso de Algoritmos usando Lenguaje Java 3. Ingreso de datos 4. Sentencias de Control 1.
REPASO ARRAYS MULTIDIMENSIONALES EN JAVA. DECLARACIÓN Y USO. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00905C)
APRENDERAPROGRAMAR.COM REPASO ARRAYS MULTIDIMENSIONALES EN JAVA. DECLARACIÓN Y USO. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00905C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I
Entiendo los métodos de Java equals y hashcode
Todos los días cuando programamos usamos objetos y en muchas ocasiones necesitamos comparar unos con otros. Para ello en muchas ocasiones usamos los métodos de de Java equals y hashcode. Estos métodos
Estructuras de Datos Clase 4 Pilas y colas
Estructuras de Datos Clase 4 Pilas y colas Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Tipo
EXAMEN PARA ALUMNOS PRESENTADOS A LA ASIGNATURA COMPLETA
EXAMEN PARA ALUMNOS PRESENTADOS A LA ASIGNATURA COMPLETA PRIMERA PARTE EJERCICIO 1 Cuestiones (1 punto) 1 2 3 4 5 6 7 8 9 10 Seleccione la opción correcta en cada caso, teniendo en cuenta que tan sólo
Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño
Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos
Diseño de tipos Igualdad, representación, código, copia y relación de orden
Práctica 4 Diseño de tipos Igualdad, representación, código, copia y relación de orden Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.1 Índice Gestión de excepciones
INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00921C)
APRENDERAPROGRAMAR.COM INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00921C) Sección: Cursos Categoría: Lenguaje de programación Java nivel
UNIDAD 6 Tipos Abstractos de Datos (TAD) Interfaz e Implementación. Tipos de unidades. Creación y uso de unidades para
Tipos Abstractos de Datos (TAD) Concepto. Abstracción, Ventajas. Encapsulamiento, Interfaz e Implementación. Tipos de unidades. Creación y uso de unidades para implementar TADs. Abstracción: Concepto Simplificación
Conceptos básicos de programación. Arquitectura de Computadoras. Conceptos básicos de programación
Arquitectura de Computadoras Conceptos básicos de programación 1. Introducción: Programación es el conjunto de actividades implicadas en la descripción, el desarrollo y la implementación eficaz de soluciones
Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Estructura de Datos Unidad 1: Repaso del Lenguaje Java
Estructura de Datos Unidad 1: Repaso del Lenguaje Java Introducción Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de 1991, con el que se van a
VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
Tema 5 Corrección y Robustez Excepciones en Java
Tema 5 Corrección y Robustez Excepciones en Java Parte I: Corrección del código Programación Orientada a Objetos Curso 2013/2014 Contenido Parte I: Corrección del código Introducción Excepciones runtime
Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs)
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs) Prof. Montserrat Serrano Montero ÍNDICE Tipos de datos El tipo abstracto
Objetivos y Temario CURSO SQL SERVER 2012
Objetivos y Temario CURSO SQL SERVER 2012 OBJETIVOS Este curso está dirigido a todos los que comienzan a trabajar con SQL Server 2012. De una forma rápida y concisa obtendrá el conocimiento necesario para
Clases y herencia. FJP Unidad 8. Diseño de clases
Clases y herencia FJP Unidad 8 Encapsulamiento Diseño de clases El encapsulamiento provee protección de atributos y métodos definidos en una clase de forma tal que comportamiento de objetos de una clase
Clases Abstractas e Interfaces
Clases Abstractas e Interfaces Presentación basada en: 1. Java 2., Curso de programación. Fco. Javier Ceballos. Ed. Alfoomega&RA-MA, 2003. 2. Apuntes del Curso Programación Orientado a Objetos. Pablo Castells.
La sintaxis básica para definir una clase es la que a continuación se muestra:
DEFINICIÓN DE CLASES Y OBJETOS EN C# Sintaxis de definición de clases La sintaxis básica para definir una clase es la que a continuación se muestra: class nombreclase miembros De este modo se definiría
Tipos abstractos de datos (TAD)
Capítulo 2 Tipos abstractos de datos (TAD) Objetivo: Introducir al alumno las estructuras de datos mediante el concepto de tipo abstracto de datos. En este capítulo se presenta una primera implementación
LA CLASE ARRAYLIST DEL API DE JAVA. MÉTODOS ADD, SIZE, ETC. CONCEPTO DE CLASE GENÉRICA O PARAMETRIZADA (CU00665B)
APRENDERAPROGRAMAR.COM LA CLASE ARRAYLIST DEL API DE JAVA. MÉTODOS ADD, SIZE, ETC. CONCEPTO DE CLASE GENÉRICA O PARAMETRIZADA (CU00665B) Sección: Cursos Categoría: Curso Aprender programación Java desde
Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011
Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011 Ejercicio 1 (2 puntos) SOLUCIONES class TarjetaDeCredito
