Metodología y Tecnología de la Programación

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Metodología y Tecnología de la Programación"

Transcripción

1 Metodología y Tecnología de la Programación Curso 2008/09 Tema 7 Tipos de Datos Abstractos Temario 7.1 Concepto de Tipo de Datos Abstracto 7.2 Clasificación de Tipos de Datos Abstractos 7.3 Especificación de Tipos de Datos Abstractos Especificaciones Informales Especificaciones Formales 7.4 Implementación y Uso de TDAs en Java Protección y Privacidad Representaciones Contiguas y Enlazadas Implementación de TDAs Mutables e Inmutables 7.5 Implementaciones Robustas y TDAs Genéricos en Java (Sesiones Prácticas) Interfaces Java TDAs Genéricos Implementaciones Robustas 2

2 7.1 Concepto de Tipo de Datos Abstracto Tipos de Datos: colección de valores + operaciones Básicos: Enteros, reales, booleanos, caracteres. Definidos por el programador: Enumerados, subrango. Opacos: Representación invisible al programador. Operaciones predefinidas. Tipos Estructurados: genericidad Riesgo de crear valores sin semántica. Tipos de Datos Abstractos (TDAs): colección de valores + operaciones Tipos de Datos creados por el programador. Opacos. Independientes de la representación Clasificación de Tipos de Datos Abstractos TDAs simples: Cambian su valor pero no su estructura: Espacio de almacenamiento constante. Enteros, reales, booleanos, carácter, enumerado, subrango, etc. TDAs contenedores: Cambian su valor y estructura: Colecciones de elementos de número variable. Espacio de almacenamiento variable. Listas, colas, pilas, árboles, grafos, conjuntos, etc. TDAs inmutables: Sus casos no pueden modificarse: No existen operaciones de modificación. TDAs mutables: Sus casos pueden modificarse. Existen operaciones de modificación. 4

3 7.3 Especificación de Tipos de Datos Abstractos TDA Colección de valores Operaciones Usuario Especificación Implementador Implementación del TDA Representación elegida Implementación de las operaciones Especificaciones informales: Lenguaje natural. Poco precisas, no son breves. Ambigüedad. Sencillas de escribir, leer y entender. Especificaciones formales: Lenguaje algebraico. Precisas y breves. Verificación formal. Complejas de escribir, leer y entender Especificaciones Informales Cabecera: Nombre de las operaciones. Descripción: Se describe de forma general en qué consiste la abstracción, sin decir nada acerca de la implementación. Los casos del TDA pueden describirse en términos de otros tipos para los cuales se espera que el lector de la especificación esté más familiarizado. Se pueden utilizar gráficos y abstracciones matemáticas. Se puede incluir en la descripción si el TDA es mutable o inmutable. Especificación de las operaciones: Seguiremos el siguiente modelo: nombre de la operación (entrada) devuelve (salida) requerimientos: Esta cláusula muestra las restricciones de uso. modifica: Esta cláusula identifica las entradas que van a ser modificadas. efecto: Esta cláusula define el comportamiento. 6

4 7.3.1 Especificaciones Informales TDA Racional: Especificación informal. Racional = tipo de datos con operaciones crea, numerador, denominador, suma, resta, multiplica, divide, simplifica. DESCRIPCIÓN: Los valores del TDA Racional son números racionales. El TDA Racional es inmutable. OPERACIONES: crea(a,b:entero) devuelve (Racional) requerimientos: B 0. efecto: Devuelve un número racional cuyo numerador es A y cuyo denominador es B. numerador(r:racional) devuelve (entero) efecto: Devuelve el numerador del número racional R Especificaciones Informales denominador(r:racional) devuelve (entero) efecto: Devuelve el denominador del número racional R. suma(r1,r2:racional) devuelve (Racional) efecto: Devuelve un número racional que es la suma R1 + R2. resta(r1,r2:racional) devuelve (Racional) efecto: Devuelve un número racional que es la resta R1 R2. multiplica(r1,r2:racional) devuelve (Racional) efecto: Devuelve un número racional que es la multiplicación R1 R2. divide(r1,r2:racional) devuelve (Racional) requerimientos: num(r2) 0. efecto: Devuelve un número racional que es la división R1 / R2. simplifica(r:racional) devuelve (Racional) efecto: Devuelve un número racional que es la simplificación de R. 8

5 7.3.2 Especificaciones Formales Tipo: Nombre del TDA. Sintaxis: Forma de las operaciones. nombre de la función (tipo de los argumentos) tipo del resultado. Semántica: Significado de las operaciones. nombre de la función (valores particulares) expresión del resultado Especificaciones Formales TDA Bolsa: Especificación formal. Tipo: Bolsa (Elemento) Sintaxis: bolsavacia Bolsa poner(bolsa,elemento) Bolsa vacia(bolsa) booleano cuantos(bolsa,elemento) natural Semántica: B Bolsa, E,F Elemento: vacia(bolsavacia) cierto vacia(poner(b,e)) falso cuantos(bolsavacia,e) cero cuantos(poner(b,f),e) si F = E sucesor(cuantos(b,e)) cuantos(b,e) 10

6 7.4.1 Protección y Privacidad TDA: clase public. Estructura de datos: private. Operaciones de creación: métodos constructores. Operaciones de acceso: public. public class Elemento { private int dato; public Elemento(int valor) { dato = valor; public int valor() { return dato; // fin class Elemento Elemento elemento = new Elemento(10); int n = elemento.valor(); Representaciones Contiguas y Enlazadas: Nº fijo de elementos TDA Vector: Especificación informal. Vector = tipo de datos es crea, recupera, asigna, longitud. DESCRIPCIÓN: Los valores del TDA Vector son vectores de elementos del tipo Elemento. El TDA Vector es mutable: la operación asigna modifica el vector al establecer un nuevo valor para uno de sus elementos. OPERACIONES: crea(n:entero) devuelve (Vector) requerimientos: N > 0. efecto: Devuelve un vector de N Elementos. longitud(v:vector) devuelve (entero) efecto: Devuelve la longitud del vector V. 12

7 7.4.2 Representaciones Contiguas y Enlazadas: Nº fijo de elementos recupera(v:vector, I:entero) devuelve (Elemento) requerimientos: I 0 y I < longitud(v). efecto: Devuelve el elemento contenido en la posición I-ésima del vector V. asigna(v:vector, I:entero, E:Elemento) requerimientos: I 0 y I < longitud(v). modifica: V. efecto: Asigna el valor E al elemento I-ésimo del vector Representaciones Contiguas y Enlazadas: Nº fijo de elementos TDA Vector: Métodos en Java. Clase Vector class Vector Constructores Vector(int longitud) Métodos int longitud() Elemento recupera(int i) void asigna(int i, Elemento e) 14

8 7.4.2 Representaciones Contiguas y Enlazadas: Nº fijo de elementos TDA Vector: Implementación. public class Vector { private Elemento elemento[]; public Vector(int longitud) { elemento = new Elemento[longitud]; public int longitud() { return elemento.length; public Elemento recupera(int i) { return elemento[i]; public void asigna(int i, Elemento e) { elemento[i]=e; // fin class Vector Representaciones Contiguas y Enlazadas: Nº fijo de elementos TDA Vector: Utilización. public class VectorUtil { public static Vector lee(int n) { Vector v = new Vector(n); for(int i=0;i<n;i++) { Elemento e = new Elemento(i); v.asigna(i,e); return v; public static void imprime(vector v) { for(int i=0;i<v.longitud();i++) { Elemento e = v.recupera(i); System.out.println(e.valor()); 16

9 7.4.2 Representaciones Contiguas y Enlazadas: Nº fijo de elementos public static boolean encuentra(vector v, Elemento e) { for(int i=0;i<v.longitud();i++) { Elemento elem = v.recupera(i); if (e.valor()==elem.valor()) return true; return false; public static void ordena(vector v) { for(int i=0;i<v.longitud();i++) { for(int j=i+1;j<v.longitud();j++) { Elemento e1 = v.recupera(i); Elemento e2 = v.recupera(j); if (e1.valor()<e2.valor()) { v.asigna(i,e2); v.asigna(j,e1); Representaciones Contiguas y Enlazadas: Nº fijo de elementos public static void main(string args[]) { Vector v = lee(10); ordena(v); imprime(v); Elemento e = new Elemento(5); if (encuentra(v,e)) System.out.println("Encontrado"); else System.out.println("No encontrado"); // fin class VectorUtil 18

10 7.4.2 Representaciones Contiguas y Enlazadas: Nº variable de elementos TDA Conjunto: Especificación informal. Conjunto = tipo de datos es crea, vacio, pertenece, inserta, suprime, cardinal, muestrea. DESCRIPCIÓN: Los valores del TDA Conjunto son conjuntos de elementos del tipo Elemento. El TDA Conjunto es mutable: las operaciones inserta y suprime añaden y suprimen elementos del conjunto respectivamente. OPERACIONES: crea() devuelve (Conjunto) efecto: Devuelve un conjunto vacío. vacio(c:conjunto) devuelve (booleano) efecto: Devuelve cierto si C es vacío y falso en caso contrario Representaciones Contiguas y Enlazadas: Nº variable de elementos cardinal(c:conjunto) devuelve (entero) efecto: Devuelve el número de elementos de C. inserta(c:conjunto, E:Elemento) requerimientos: E C. modifica: C. efecto: Añade E al conjunto C. suprime(c:conjunto, E:Elemento) requerimientos: E C. modifica: C. efecto: Suprime E del conjunto C. pertenece(c:conjunto, E:Elemento) devuelve (booleano) efecto: Devuelve cierto si E pertenece al conjunto C y falso en caso contrario. muestrea(c:conjunto) devuelve (Elemento) requerimientos: C vacío. efecto: devuelve un elemento E aleatorio del conjunto C. 20

11 7.4.2 Representaciones Contiguas y Enlazadas: Nº variable de elementos TDA Conjunto: Métodos en Java. Clase Conjunto class Conjunto Constructores Conjunto() Métodos boolean vacio() int cardinal() void inserta(elemento e) void suprime(elemento e) boolean pertenece(elemento e) Elemento muestrea() Representaciones Contiguas y Enlazadas: Nº variable de elementos TDA Conjunto: Utilización. public class ConjuntoUtil { static public Conjunto lee(int n) { Conjunto c = new Conjunto(); for(int i=0;i<n;i++) { Elemento e = new Elemento(i); c.inserta(e); return c; static public int muestrea(conjunto c, int n, Elemento e) { int cuenta=0; for(int i=0;i<n;i++) { Elemento elem = c.muestrea(); System.out.println(elem.valor()); if (e.valor()==elem.valor()) cuenta++; return cuenta; 22

12 7.4.2 Representaciones Contiguas y Enlazadas: Nº variable de elementos static public Elemento maximo(conjunto c, int n) { Elemento max=c.muestrea(); System.out.println(max.valor()); for(int i=0;i<n;i++) { Elemento elem = c.muestrea(); System.out.println(elem.valor()); if (elem.valor()>max.valor()) max=elem; return max; static public void main(string args[]) { Conjunto c = lee(10); Elemento e = new Elemento(5); int cuenta = muestrea(c,7,e); System.out.println("Cuenta = "+cuenta); Elemento max = maximo(c,7); System.out.println("Maximo = "+max.valor()); // fin class ConjuntoUtil Representaciones Contiguas y Enlazadas: Nº variable de elementos TDA Conjunto: Implementación con representación Contigua. public class Conjunto { private Elemento elemento[]; private int n; public Conjunto() { elemento = new Elemento[100]; n=0; public boolean vacio() { return (n==0); public int cardinal() { return n; public void inserta(elemento e) { elemento[n] = e; n++; 24

13 7.4.2 Representaciones Contiguas y Enlazadas: Nº variable de elementos public void suprime(elemento e) { int i=0; while(elemento[i].valor()!=e.valor()) i++; while(i<n-1) { elemento[i]=elemento[i+1]; i++; n--; public boolean pertenece(elemento e) { for(int i=0;i<n;i++) if (elemento[i].valor()==e.valor()) return true; return false; public Elemento muestrea() { int j = (int)math.floor(math.random()*n); return elemento[j]; // fin class Conjunto Representaciones Contiguas y Enlazadas: Nº variable de elementos TDA Conjunto: Implementación con representación Enlazada. public class Conjunto { private class Celda { private Elemento elemento; private Celda sig; private Celda inicio; private int n; public Conjunto() { inicio = new Celda(); inicio.elemento = null; inicio.sig = null; n = 0; public boolean vacio() { return (n==0); public int cardinal() { return n; 26

14 7.4.2 Representaciones Contiguas y Enlazadas: Nº variable de elementos public void inserta(elemento e) { Celda c = new Celda(); c.elemento = e; c.sig = inicio.sig; inicio.sig = c; n++; public void suprime(elemento e) { Celda c = inicio; while(c.sig.elemento.valor()!=e.valor()) c = c.sig; c.sig = c.sig.sig; n--; public boolean pertenece(elemento e) { for(celda c=inicio.sig;c!=null;c=c.sig) if (c.elemento.valor()==e.valor()) return true; return false; Representaciones Contiguas y Enlazadas: Nº variable de elementos public Elemento muestrea() { int j = (int)math.floor(math.random()*n); Celda c = inicio.sig; for(int i=0;i<j;i++) c=c.sig; return c.elemento; // fin class Conjunto 28

15 7.4.3 Implementación de TDAs mutables e inmutables Tipo: Polinomio Sintaxis: crea() Polinomio suma(polinomio,real,real) Polinomio evalua(polinomio,real) real Semántica: P Polinomio, x,e,r real: evalua(crea(),x) 0 evalua(suma(p,e,r),x) evalua(p) + r x e Implementaciones posibles: TDA Polinomio mutable con representación enlazada. TDA Polinomio mutable con representación contigua. TDA Polinomio inmutable con representación enlazada. TDA Polinomio inmutable con representación contigua Implementación de TDAs mutables e inmutables TDA Polinomio Inmutable: Métodos en Java. Clase polinomio class Polinomio Constructores Polinomio() Polinomio(Polinomio p, double e, double r) Métodos double evalua(double x) TDA Polinomio Mutable: Métodos en Java Clase Polinomio class Polinomio Constructores Polinomio() Métodos void suma(double e, double r) double evalua(double x) 30

16 7.4.3 Implementación de TDAs mutables e inmutables TDA Polinomio Inmutable: Utilización. public class PolinomioUtil { public static void main(string args[]) { Polinomio p = new Polinomio(); p = new Polinomio(p,0.0,3.2); p = new Polinomio(p,1.0,7.4); p = new Polinomio(p,2.0,0.5); p = new Polinomio(p,3.0,2.5); double valor = p.evalua(2.5); System.out.println(valor); valor = p.evalua(3.4); System.out.println(valor); // fin class PolinomioUtil Implementación de TDAs mutables e inmutables TDA Polinomio Mutable: Utilización. public class PolinomioUtil { public static void main(string args[]) { Polinomio p = new Polinomio(); p.suma(0.0,3.2); p.suma(1.0,7.4); p.suma(2.0,0.5); p.suma(3.0,2.5); double valor = p.evalua(2.5); System.out.println(valor); valor = p.evalua(3.4); System.out.println(valor); // fin class PolinomioUtil 32

17 7.4.3 Implementación de TDAs mutables e inmutables TDA Polinomio Inmutable: Implementación con representación Enlazada. public class Polinomio { private double exp,coef; private Polinomio sig; public Polinomio() { sig = null; public Polinomio(Polinomio p, double e, double r) { sig = p; exp = e; coef = r; public double evalua(double x) { if (sig==null) return 0.0; return sig.evalua(x)+coef*math.pow(x,exp); // fin class Polinomio Implementación de TDAs mutables e inmutables TDA Polinomio Inmutable: Implementación con representación Contigua. public class Polinomio { private int n; private double[] exp,coef; public Polinomio() { n = 0; public Polinomio(Polinomio p, double e, double r) { n = p.n+1; exp = new double[n]; coef = new double[n]; for(int i=0;i<n-1;i++) { exp[i]=p.exp[i]; coef[i]=p.coef[i]; exp[n-1] = e; coef[n-1] = r; public double evalua(double x) { double valor = 0.0; for(int i=0;i<n;i++) valor += coef[i]*math.pow(x,exp[i]); return valor; // fin class Polinomio 34

18 7.4.3 Implementación de TDAs mutables e inmutables TDA Polinomio Mutable: Implementación con representación Enlazada. public class Polinomio { private double exp,coef; private Polinomio sig; public Polinomio() { sig = null; public void suma(double e, double r) { Polinomio p = new Polinomio(); p.exp = e; p.coef = r; p.sig = sig; sig = p; public double evalua(double x) { double valor = 0.0; for(polinomio p=sig;p!=null;p=p.sig) valor += p.coef*math.pow(x,p.exp); return valor; // fin class Polinomio Implementación de TDAs mutables e inmutables TDA Polinomio Mutable: Implementación con representación Contigua. public class Polinomio { private int n; private double[] exp,coef; public Polinomio() { n = 0; exp = new double[100]; coef = new double[100]; public void suma(double e, double r) { exp[n] = e; coef[n] = r; n++; public double evalua(double x) { double valor = 0.0; for(int i=0;i<n;i++) valor += coef[i]*math.pow(x,exp[i]); return valor; // fin class Polinomio 36

19 7.5.1 Interfaces Java public interface ConjuntoInterface { public boolean vacio(); public int cardinal(); public void inserta(elemento e); public void suprime(elemento e); public boolean pertenece(elemento e); public Elemento muestrea(); // fin interface ConjuntoInterface public class ConjuntoContiguo implements ConjuntoInterface { // fin class ConjuntoContiguo public class ConjuntoEnlazado implements ConjuntoInterface { // fin class ConjuntoEnlazado Interfaces Java public class ConjuntoUtil { static public void lee(conjuntointerface c,int n){ static public int muestrea(conjuntointerface c,int n,elemento e){ static public Elemento maximo(conjuntointerface c,int n){ static public void main(string args[]) { Elemento e = new Elemento(5); ConjuntoContiguo cc = new ConjuntoContiguo(); lee(cc,10); System.out.println("Cuenta = "+muestrea(cc,7,e)); System.out.println("Maximo = "+maximo(cc,7).valor()); ConjuntoEnlazado ce = new ConjuntoEnlazado(); lee(ce,10); System.out.println("Cuenta = "+muestrea(ce,7,e)); System.out.println("Maximo = "+maximo(ce,7).valor()); // fin class ConjuntoUtil 38

20 7.5.2 TDAs Genéricos public class Vector { private Object elemento[]; public Vector(int longitud) { elemento=new Object[longitud]; public int longitud() { return elemento.length; public Object recupera(int i) { return elemento[i]; public void asigna(int i, Object e) { elemento[i]=e; // fin class Vector TDAs Genéricos public class ConjuntoContiguo { private Object elemento[]; private int n; public ConjuntoContiguo(){elemento=new Object[100];n=0; public boolean vacio() {return (n==0); public int cardinal() {return n; public void inserta(object e){elemento[n]=e;n++; public void suprime(object e){ int i=0; while(!elemento[i].equals(e)) i++; while(i<n-1) { elemento[i]=elemento[i+1]; i++; n--; public boolean pertenece(object e) { for(int i=0;i<n;i++) if (elemento[i].equals(e)) return true; return false; public Object muestrea() { int j = (int)math.floor(math.random()*n); return elemento[j]; // fin class ConjuntoContiguo 40

21 7.5.2 TDAs Genéricos public class ConjuntoEnlazado { private class Celda { private Object elemento; private Celda sig; private Celda inicio; private int n; public ConjuntoEnlazado() { inicio = new Celda(); inicio.elemento = null; inicio.sig = null; n = 0; public boolean vacio() { return (n==0); public int cardinal() { return n; TDAs Genéricos public void inserta(object e) { Celda c = new Celda(); c.elemento = e; c.sig = inicio.sig; inicio.sig = c; n++; public void suprime(object e) { Celda c = inicio; while(!c.sig.elemento.equals(e)) c = c.sig; c.sig = c.sig.sig; n--; public boolean pertenece(object e) { for(celda c=inicio.sig;c!=null;c=c.sig) if (c.elemento.equals(e)) return true; return false; public Object muestrea() { int j = (int)math.floor(math.random()*n); Celda c = inicio.sig; for(int i=0;i<j;i++) c=c.sig; return c.elemento; // fin class ConjuntoEnlazado 42

22 7.5.2 TDAs Genéricos Conversión Explícita public static void imprime(vector v) { for(int i=0;i<v.longitud();i++) { Elemento e = (Elemento)v.recupera(i); System.out.println(e.valor()); public static boolean encuentra(vector v, Elemento e) { for(int i=0;i<v.longitud();i++) { Elemento elem = (Elemento)v.recupera(i); if (e.valor()==elem.valor()) return true; return false; TDAs Genéricos Conversión Explícita public static void ordena(vector v) { for(int i=0;i<v.longitud();i++) { for(int j=i+1;j<v.longitud();j++) { Elemento e1 = (Elemento)v.recupera(i); Elemento e2 = (Elemento)v.recupera(j); if (e1.valor()<e2.valor()) { v.asigna(i,e2); v.asigna(j,e1); 44

23 7.5.2 TDAs Genéricos Métodos Genéricos public static void imprime(vector v) { for(int i=0;i<v.longitud();i++) { Object e = v.recupera(i); System.out.println(e); public static boolean encuentra(vector v, Object e) { for(int i=0;i<v.longitud();i++) { Object elem = v.recupera(i); if (e.equals(elem)) return true; return false; TDAs Genéricos Sobreescritura de Métodos Genéricos public class Elemento { private int dato; public Elemento(int valor) { dato = valor; public int valor() { return dato; public String tostring() { return (""+dato); public boolean equals(object o) { if (o==null) return false; if (!(o instanceof Elemento)) return false; Elemento e = (Elemento)o; return (dato==e.dato); // fin class Elemento 46

24 7.5.2 TDAs Genéricos Implementación de Comparable public class Elemento implements Comparable { private int dato; public Elemento(int valor) { dato = valor; public int valor() { return dato; public String tostring() { return (""+dato); public boolean equals(object o) { if (o==null) return false; if (!(o instanceof Elemento)) return false; Elemento e = (Elemento)o; return (dato==e.dato); public int compareto(object o) { Elemento e = (Elemento)o; if (dato<e.dato) return -1; if (dato>e.dato) return 1; return 0; // fin class Elemento TDAs Genéricos Utilización de Comparable public static void ordena(vector v) { for(int i=0;i<v.longitud();i++) { for(int j=i+1;j<v.longitud();j++) { Comparable e1 = v.recupera(i); Comparable e2 = v.recupera(j); if (e1.compareto(e2)<0) { v.asigna(i,e2); v.asigna(j,e1); 48

25 7.5.3 Implementaciones Robustas Implementación de Excepciones public class VectorException extends Exception { public VectorException(String s) { super(s); // fin class VectorException Implementaciones Robustas Utilización de Excepciones public class Vector { private Object elemento[]; public Vector(int longitud) throws VectorException { if (longitud<0) throw new VectorException("Longitud no válida. Debe ser positiva."); elemento = new Object[longitud]; public int longitud() { return elemento.length; public Object recupera(int i) throws VectorException { int n = elemento.length; if ((i<0) (i>=n)) throw new VectorException("Índice "+i+" debe estar entre 0 y "+(n-1)); return elemento[i]; public void asigna(int i, Object e) throws VectorException { int n = elemento.length; if ((i<0) (i>=n)) throw new VectorException("Índice "+i+" debe estar entre 0 y "+(n-1)); elemento[i]=e; // fin class Vector 50

26 7.5.3 Implementaciones Robustas Tratamiento de Excepciones: Propagación y Captura public class VectorUtil { public static Vector lee(int n) throws VectorException { Vector v = new Vector(n); for(int i=0;i<n;i++) v.asigna(i,new Elemento(i)); return v; public static void imprime(vector v) { try { for(int i=0;i<v.longitud();i++) System.out.println(v.recupera(i)); catch(vectorexception e) { System.err.prinltn(e); public static void main(string args[]) { try { Vector v = lee(10); imprime(v); catch (VectorException e) { System.err.println(e); // fin class VectorUtil 51

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

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

Más detalles

Objetivo de aprendizaje del tema

Objetivo de aprendizaje del tema Computación II Tema 3. Identificadores, palabras clave y tipos de datos Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Distinguir i entre modificadores d válidos y no válidos. Enumerar

Más detalles

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS 1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para

Más detalles

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores El lenguaje de programación Java Programa Java Un programa Java está formado por un conjunto de clases que interactúan entre sí La clase es la unidad básica de programación La ejecución depende de la clase

Más detalles

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA ARREGLOS EN JAVA I I N T R O D U C C I Ó N En las sesiones anteriores, los datos manejados en los programas han sido datos simples (carácter, entero, reales) En un gran número de problemas es necesario

Más detalles

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente

Más detalles

2) Cual modificador limita el acceso a un método de una clase pública a los miembros de la misma clase?

2) Cual modificador limita el acceso a un método de una clase pública a los miembros de la misma clase? PRTIIPNT: MPRS: H: xamen de iagnóstico Programador Java Instrucciones: Lea cada pregunta cuidadosamente y marque la(s) respuesta(s) que sean correctas. 1) ada la siguiente clase: 1. class rrayopy3{ 2.

Más detalles

Soluciones Ejercicios Tema 3

Soluciones Ejercicios Tema 3 1 Soluciones Ejercicios Tema 3 Germán Moltó gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Solución Ejercicio

Más detalles

Tema 1. Introducción a los TAD

Tema 1. Introducción a los TAD Tema 1. Introducción a los TAD Objetivos En este tema nos ocupamos inicialmente del concepto de abstracción, dedicando la mayor atención a la abstracción de datos, estudiando aspectos relacionados con

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

Más detalles

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. Práctica 3 mtp metodoloxía e tecnoloxía da programación Objetivos: Duración: Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. 1 semana 1.- Identificadores Los identificadores

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

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

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2008/2009 Nombre:... Fecha: / 01 / 2009 HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Esta hoja de ejercicios nos servirá

Más detalles

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida } REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)

Más detalles

Resumen Lenguaje Java

Resumen Lenguaje Java Resumen Lenguaje Java Métodos (Subprogramas) Tipos de Métodos: con resultado y tipo void Definición 1. Método con resultado, retorna un solo valor, equivalente a los subprogramas tipo función tipo_de_dato_a_retornar

Más detalles

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

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

Más detalles

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de diseño Patrón básico Handler Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de diseño Introducción Objetivos: Diseño específico para el problema, pero general para

Más detalles

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un

Más detalles

Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015

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

Más detalles

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º 1. Ejercicio (1 punto) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 Describir cual es el estado del array A después de cada paso principal del algoritmo: InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8,

Más detalles

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) APRENDERAPROGRAMAR.COM INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:

Más detalles

11. Algunas clases estándar de Java (II)

11. Algunas clases estándar de Java (II) 122 A. García-Beltrán y J.M. Arranz 11. Algunas clases estándar de Java (II) Objetivos: a) Presentar la clase predefinida en Java para trabajar con arrays b) Interpretar el código fuente de una aplicación

Más detalles

Excepciones en Java Colecciones e iteradores Genericidad Cierre de UML

Excepciones en Java Colecciones e iteradores Genericidad Cierre de UML Excepciones en Java Colecciones e iteradores Genericidad Cierre de UML Carlos Fontela cfontela@fi.uba.ar Temario Excepciones en Java Colecciones e iteradores En Java 1.4 y.net 1.1 Genericidad Desde Java

Más detalles

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape.

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape. CARACTERES EN JAVA Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape. Letra, Dígitos y Otros Estos caracteres

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

Más detalles

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Solución al Examen de Prácticas de Programación (Ingeniería Informática) Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1

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

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2 Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3

Más detalles

Práctica 5. Fecha límite de entrega: viernes, 14 de diciembre

Práctica 5. Fecha límite de entrega: viernes, 14 de diciembre Algoritmos http://www.lfcia.org/alg/ 2007-2008 Ingeniería Informática Ingeniería Técnica de Informática de Gestión Práctica 5 Fecha límite de entrega: viernes, 14 de diciembre Implementación de un Diccionario

Más detalles

Universidad Carlos III de Madrid Ingeniería de Telecomunicación. Examen de Programación Febrero 2007. Parte de Ejercicios

Universidad Carlos III de Madrid Ingeniería de Telecomunicación. Examen de Programación Febrero 2007. Parte de Ejercicios Universidad Carlos III de Madrid Ingeniería de Telecomunicación Examen de Programación Febrero 2007 Parte de Ejercicios Responder y entregar cada ejercicio en hojas separadas Numerar todas las hojas de

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

James Gosling, creador de Java

James Gosling, creador de Java Lo que Java intenta hacer y lo hace con bastante éxito, es abarcar dominios diferentes. De esa forma le permite efectuar trabajos para de aplicaciones del lado del servidor, del lado del cliente, para

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

Introducción a la Programación Orientada a Objetos

Introducción a la Programación Orientada a Objetos Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir

Más detalles

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando

Más detalles

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1 Departamento de Lenguajes y Sistemas Informáticos JavaScript Programación en Internet Curso 2005-2006 Contenidos Introducción El lenguaje Validación de formularios DLSI - Universidad de Alicante 1 Introducción

Más detalles

Fundamentos del Lenguaje de Programación Java

Fundamentos del Lenguaje de Programación Java Fundamentos del Lenguaje de Programación Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx El lenguaje Java Estándares de codificación Comentarios Programas con Java Identificadores Palabras clave

Más detalles

Programación de Sistemas

Programación de Sistemas Programación de Sistemas Repaso Julio Villena Román MATERIALES BASADOS EN EL TRABAJO DE DIVERSOS AUTORES: M.Carmen Fernández Panadero, Natividad Martínez Madrid 1 Programación de

Más detalles

Primer Parcial Septiembre 5 de 2009

Primer Parcial Septiembre 5 de 2009 Primer Parcial Septiembre 5 de 2009 Algoritmos y Lenguajes II Reglas del juego Tal como se le dijo antes, durante este examen usted no puede pedir ABSOLUTAMENTE nada prestado a sus compañeros, ni hablar

Más detalles

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases Programación Avanzada para Sistemas de Telecomunicación Objetos y clases Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles

9. Objetos y clases. 9.1. Clases

9. Objetos y clases. 9.1. Clases Programación orientada a objetos con Java 103 9. Objetos y clases Objetivos: a) Presentar el concepto de objeto, clase, atributo, método e instancia b) Interpretar el código fuente de una aplicación Java

Más detalles

Examen de Prácticas de Programación Ingeniería Informática

Examen de Prácticas de Programación Ingeniería Informática Examen de Prácticas de Programación Ingeniería Informática Septiembre 2007 1) (3.5 puntos) Se pretende desarrollar un programa para gestionar las reparaciones de coches realizadas en un garaje. Del análisis

Más detalles

8. Sentencia return y métodos

8. Sentencia return y métodos 92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente

Más detalles

FIUBA - 7507 Algoritmos y programación 3

FIUBA - 7507 Algoritmos y programación 3 FIUBA - 7507 Algoritmos y programación 3 Trabajo práctico 2: Algo Hero 2010 1er cuatrimestre, 2010 1er entrega (trabajo grupal) Integrantes: 90365, Nahuel Lucero, nahuel.bm6@gmail.com 91299, Diego Meller,

Más detalles

POLIMORFISMO "una interfaz, múltiples métodos".

POLIMORFISMO una interfaz, múltiples métodos. "una interfaz, múltiples métodos". 20/02/2007 Polimorfismo 2 Indice Definición y caracteristicas Objetivos. SOBRRESCRITURA-SOBRECARGA SOBRECARGA Clases y métodos abstractos INTERFACES (herencia múltiple)

Más detalles

Introducción al lenguaje JAVA

Introducción al lenguaje JAVA Universidad Autónoma de Tlaxcala Introducción al lenguaje JAVA M.C.. José Juan Hernández ndez Mora Segunda Sesión 1. Arreglos 2. Matrices 3. Clases en Java 4. Clases de Usuario en Java 5. Objetos definidos

Más detalles

Multitarea en Java. Rafa Caballero - UCM

Multitarea en Java. Rafa Caballero - UCM Multitarea en Java Rafa Caballero - UCM Programa Monoproceso (monotarea) En cada momento hay una única instrucción ejecutándose Se dice que el programa es monotarea, o monoproceso o monohebra (o single

Más detalles

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1. Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07

PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07 PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07 Ejercicio 1. Un indice de referencias cruzadas de las palabras que aparecen en un texto es una tabla por palabras y, por cada

Más detalles

10. Algunas clases estándar de Java (I)

10. Algunas clases estándar de Java (I) Programación orientada a objetos con Java 113 10. Algunas clases estándar de Java (I) Objetivos: a) Presentar algunas de las clases predefinidas en Java b) Interpretar el código fuente de una aplicación

Más detalles

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase Java: Clases y Objetos Clases La unidad fundamental de programación en Java es la clase Un programa Java está formado por un conjunto de clases Una clase es una plantilla que describe un conjunto de objetos

Más detalles

Trabajo Práctico N 4: Diseño por Contratos

Trabajo Práctico N 4: Diseño por Contratos 1. Defina los contratos de las siguientes clases: Trabajo Práctico N 4: Diseño por Contratos a. La clase Fecha representa una fecha en el formato dia, mes y año. Especificar los contratos para asegurar

Más detalles

Administración Local Soluciones

Administración Local Soluciones SISTEMA INTEGRADO DE GESTIÓN DE EXPEDIENTES MODULAR (SIGM) FUNCIONALIDAD ANTIVIRUS (MÓDULO TRAMITACIÓN ELECTRÓNICA) SIGM v3 Administración Local Soluciones Control de versiones Versión Fecha aprobación

Más detalles

ESTRUCTURAS DE DATOS ÁRBOLES 143

ESTRUCTURAS DE DATOS ÁRBOLES 143 ESTRUCTURAS DE DATOS ÁRBOLES 143 TEMA 4. ÁRBOLES 4.1. CONCEPTOS GENERALES. Un árbol es una estructura de datos ramificada (no lineal) que puede representarse como un conjunto de nodos enlazados entre sí

Más detalles

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h>

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h> Arreglos Introducción. En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en

Más detalles

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:...

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:... Cuadernillo de examen ASIGNATURA Laboratorio de Sistemas Operativos Abiertos (Java) CÓDIGO 321 CONVOCATORIA Extraordinaria de Septiembre de 2003 PLAN DE ESTUDIOS 1996 ESPECIALIDAD Sistemas CURSO 2002/2003

Más detalles

APUNTES JAVA ARRAYS (ARREGLOS) Un arreglo es un grupo de posiciones de memoria contiguas. Todas las cuales tienen el mismo nombre y el mismo tipo.

APUNTES JAVA ARRAYS (ARREGLOS) Un arreglo es un grupo de posiciones de memoria contiguas. Todas las cuales tienen el mismo nombre y el mismo tipo. APUNTES JAVA ARRAYS (ARREGLOS) Los arreglos son estructuras de datos que consisten en elementos de información del mismo tipo relacionados entre sí. Los arreglos son entidades estáticas en cuanto a que

Más detalles

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

Más detalles

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos Tema 3: Genericidad en Java Tema 3: Genericidad en Java Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Definición y Ventajas de la

Más detalles

Laboratorio de Aplicaciones Telemáticas Ingeniería Técnica de Telecomunicación Especialidad en Telemática

Laboratorio de Aplicaciones Telemáticas Ingeniería Técnica de Telecomunicación Especialidad en Telemática Laboratorio de Aplicaciones Telemáticas Ingeniería Técnica de Telecomunicación Especialidad en Telemática Escuela Politécnica Superior. Universidad Carlos III de Madrid. Leganés, a 9 de Febrero de 2004.

Más detalles

Tipos primitivos y clases de interés

Tipos primitivos y clases de interés Programación Avanzada para Sistemas de Telecomunicación Tipos primitivos y clases de interés Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Tipos primitivos. Clase String y asociadas. Clases

Más detalles

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos. Threads Un thread es un flujo de control secuencial dentro de un programa. A los threads también se los conoce como procesos livianos ó contextos de ejecución. Un thread es similar a un programa secuencial:

Más detalles

Programación Orientada a Eventos

Programación Orientada a Eventos Programación Orientada a Eventos Técnicas de Programación Santiago Pavón V:2012.03.13 Programas Secuénciales El flujo de ejecución del programa sigue la secuencia de sentencias que lo forman. El estado

Más detalles

Hoja 4: Solución. public String tostring() { return "("+getx()+", "+gety()+")"+" Lado: "+getlx();

Hoja 4: Solución. public String tostring() { return (+getx()+, +gety()+)+ Lado: +getlx(); Hoja 4: Solución Ejercicio 1 package figuras; public class Cuadrado extends Rectángulo { public Cuadrado(int x, int y, int ancho) { super(x,y,ancho,ancho); public String tostring() { return "("+getx()+",

Más detalles

15. Parámetros o argumentos

15. Parámetros o argumentos Programación orientada a objetos con Java 161 15. Parámetros o argumentos Objetivos: a) Profundizar en el concepto de parámetro de una clase e indicar su mecanismo de funcionamiento. b) Interpretar el

Más detalles

Repaso desarrollo de software Parte #1. Jorge Iván Meza Martínez jimezam@gmail.com

Repaso desarrollo de software Parte #1. Jorge Iván Meza Martínez jimezam@gmail.com Repaso desarrollo de software Parte #1 Jorge Iván Meza Martínez jimezam@gmail.com Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia Sede Manizales 1/55 Contenido Concepto desarrollo

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

Tema Evaluación / Pruebas del Software

Tema Evaluación / Pruebas del Software 1 DISEÑO DE SISTEMAS DE INFORMACIÓN Tema Evaluación / Pruebas del Software 2 Tema 3. Evaluación / Pruebas del Software 3 Índice Introducción Objetivos y principios de las pruebas Diseño de casos de prueba

Más detalles

Prácticas de Programación

Prácticas de Programación Prácticas de Programación Tema 1. Introducción al análisis y diseño de programas Tema 2. Clases y objetos Tema 4. Tratamiento de errores Tema 5. Aspectos avanzados de los tipos de datos Tema 6. Modularidad

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Ejercicios de evaluación de fundamentos de programación en Java

Ejercicios de evaluación de fundamentos de programación en Java Ejercicios de evaluación de fundamentos de programación en Java Jorge Martínez Ladrón de Guevara Editorial EME ISBN 978-84-96285-40-8 Contenido 1. Introducción a Java... 1 Test de evaluación...1 Ejercicios...4

Más detalles

1. Manejo de memoria estática 2. Manejo de memoria dinámica

1. Manejo de memoria estática 2. Manejo de memoria dinámica 1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo

Más detalles

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 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

Más detalles

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase Programación Orientada a Objetos Implementación en Java Angela C. Carrillo Ramos Agenda Implementación y uso de clases en Java Ejemplo clase CuentaBancaria 1 Ejemplo Diseño Cuenta Bancaria (1) Diseñar

Más detalles

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 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

Más detalles

Curso 2010-2011. Informática Lección 2. Introducción a la programación en Java

Curso 2010-2011. Informática Lección 2. Introducción a la programación en Java Fundamentos de Informática Lección 2. Introducción a la programación en Java Curso 2010-2011 Pedro Álvarez y José Ángel Bañares 24/09/2010. Dpto. Informática e Ingeniería de Sistemas. Índice de contenidos

Más detalles

Programación Orientada a Objetos en JAVA

Programación Orientada a Objetos en JAVA Programación Orientada a Objetos en JAVA Jorge Pérez Introducción a la Computación Jorge Pérez Programación Orientada a Objetos en JAVA 1 / 36 Orientación a Objetos OO es un paradigma de modelación y programación

Más detalles

Tema 14: Excepciones

Tema 14: Excepciones Tema 14: Excepciones 0 Excepción Definición Las Excepciones son objetos que definen el estado de la aplicación cuando se producen situaciones anómalas. Son un mecanismo usado por muchos lenguajes de programación

Más detalles

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta. Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO LAEFF - INTA raul@laeff.inta.es Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado por Sun

Más detalles

Tema 2. El lenguaje de programación Java. Arrays y cadenas

Tema 2. El lenguaje de programación Java. Arrays y cadenas Programación en Java Tema 2. El lenguaje de programación Java. Arrays y cadenas Luis Rodríguez Baena Facultad de Informática Arrays y colecciones Hay dos formas de guardar varias referencias a objetos:

Más detalles

Examen Teórico Convocatoria de Junio de 2012

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

Más detalles

PROGRAMACIÓN EN JAVA

PROGRAMACIÓN EN JAVA SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 3: Comunicación entre tareas. Modelo productor / consumidor. Objetivos Implementar una aplicación en Java en la que existan

Más detalles

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices Vectores y matrices Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices Algoritmos de ordenación Ordenación por selección Ordenación por inserción Ordenación

Más detalles

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA José Luis Pastrana Brincones (pastrana@lcc.uma.es) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga

Más detalles

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS CONTENIDOS 1. Introducción a las cadenas 2. Definición 3. Declaración de cadenas 4. Inicialización de cadenas 5. Escritura y Lectura de datos tipo cadena 6. Funciones de manipulación de cadenas 7. Arrays

Más detalles

PROGRAMACIÓN GENÉRICA

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

Más detalles

Clase adicional 3. Métodos. Temas

Clase adicional 3. Métodos. Temas Clase adicional 3 Temas Métodos o Definir un método o Llamar a un método o Llamada por valor o Constructores o Método static Arrays Vectores Problemas de la clase adicional Problemas de diseño Métodos

Más detalles