Tema 2 Tipos abstractos de datos. 2.2 Pila de números enteros

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

Download "Tema 2 Tipos abstractos de datos. 2.2 Pila de números enteros"

Transcripción

1 Tema 2 Tipos abstractos de datos. 2.2 Pila de números enteros

2

3 Especificación de TAD s. TAD Pila de Enteros. desapilar apilar Cima de la Pila Cima de la Pila Definición: Estructura de Datos que contiene una serie de elementos de tipo entero a los que sólo sepuede acceder por un único lado. Característica: Primer elemento obtenido es el último introducido Estructura LIFO (Last input, First Output) Operaciones: apilar. desapilar. pilavacía. inicializarpila.

4 TAD Pila de Enteros: especificación (I) Operación Especificación semántica Especificación sintáctica inicializarpila apilar * desapilar * pilavacia cima * decapitar * Método que deja a disposición del programa un TAD pila sobre el que se podrá operar posteriormente. (Equivalente a crear o construir un objeto/instancia.). Método que entrega un elemento (x) para que quede incorporado en la cima de la pila. Método que elimina el elemento que ocupa la cima de la pila y devuelve como resultado dicho elemento. Método que al ejecutarse devuelve true si la pila está vacía (no tiene elementos), y false en caso contrario. Método que devuelve la cima de la pila (sin alterarla). Método que elimina el elemento de la cima de la pila. void inicializarpila () void apilar (int x) int desapilar () boolean pilavacia () int cima () void decapitar ()

5 Especificación de TAD s. TAD Pila de Enteros (II) Operación Especificación semántica Especificación sintáctica leerpila imprimirpila Método que se utiliza para realizar la carga inicial de elementos de la pila. Método que muestra en la pantalla el contenido de la pila. void leerpila () throws NumberFormatException, IOException void imprimirpila () eliminar numelempila Método que recibe una pila (que puede tener elementos o no) y la devuelve vacía. Método que devuelve el número de elementos de la pila. void eliminarpila () int numelempila ()

6 Excepciones (I) Excepción: circunstancia que produce que una Operación Válida sobre un TAD no pueda ser efectuada. Ejemplos: apilar: Al intentar apilar un nuevo elemento en la pila, ésta está llena. La operación apilar no debe producir ningún efecto. desapilar, cima,decapitar: Al intentar desapilar un elemento de la pila, obtener su cima o decapitarla, ésta está vacía. Estas operaciones no deben producir ningún efecto

7 Excepciones (II) Para Especificar completa y correctamente cada operación válida de un TAD se debe indicar: Especificaciones Sintácticas. Especificaciones Semánticas. Excepciones: Se indicarán como parte de las especificaciones semánticas.

8 Interfaz del TAD Pila import java.io.*; public interface Pila { void inicializarpila (); boolean pilavacia (); void eliminarpila (); int cima (); void apilar (int x); int desapilar (); void decapitar (); void imprimirpila (); Define los métodos de objeto utilizados en la clase TAD_PILA void leerpila () throws NumberFormatException, IOException; int numelempila ();

9 Prueba (condiciones normales) import java.io.*; public class pruebapila1 { public static void main (String [] args) { Pila p = new TadPila (); int x; p.inicializarpila (); p.apilar (1); p.apilar (2); p.apilar (3); p.apilar (11); p.apilar (15); x = p.desapilar(); System.out.println ("x = " + x); x = p.desapilar (); System.out.println ("x = " + x); p.eliminarpila ();

10 Situaciones de excepción public class pruebapila2 { public static void main (String [] args) { Pila pila1 = new TadPila (); int i, j; pila1.inicializarpila (); for (I = 1; I < 10; i++) pila1.apilar (i); j = pila1.desapilar (); for (I = 1; I < 10; i++) j = pila1.desapilar (); pila1.eliminarpila ();

11 Algoritmos básicos con Pilas Tratamiento recursivo. Ventaja: legibilidad. Inconveniente: consumo de memoria Justificación: Adecuación de la estructura a la técnica. Restricciones del enunciado. Mecánica: desapilar llamar apilar. Terminaciones: Pesimista : Llegar al final. Anticipada: No llamar más.

12 Ejemplos: Imprimir los elementos de una pila -Contar los elementos de una pila static void escribirpila (Pila pila) { int elem; if (! pila.pilavacia ()) { elem = pila.desapilar (); System.out.println (elem); escribirpila (pila); pila.apilar (elem); static int contarpila (Pila pila) { int elem, resul; if (! pila.pilavacia ()) { elem = pila.desapilar (); resul = 1 + contarpila (pila); pila.apilar (elem); else resul = 0; return resul;

13 Obtener el duplicado de una pila static void copiarpila (Pila pilao, Pila pilad) { int elem; if (! pilao.pilavacia ()) { elem = pilao.desapilar (); copiarpila (pilao, pilad); pilao.apilar (elem); pilad.apilar (elem); Ejercicio propuesto: duplicar invirtiendo el orden de los elementos en la pila copia.

14 Invertir el contenido de una pila Argumentos: Pila de origen y pila de destino (ambos por referencia) Fase de ida: desapilamosen pila origeny apilamos en la pila destino Fase de vuelta: apilamos en pila origen (para restablecer la pila) Fase de transición: no hacemos nada Condición de parada: pila vacía (sin terminación anticipada) Estado inicial

15 7 2 if (! pilao.pilavacia ()) { elem = pilao.desapilar (); pilad.apilar (elem); invertirpila (pilao, pilad); 3 5 elem = elem = elem = elem = 7 3 pilao.apilar (elem);

16 Sumergir un elemento Consideraciones: Fase de ida: desapilamos elemento Condición de parada:pila.pilavacia () (sin terminación anticipada) Transición: Apilamos el dato que queremos sumergir Fase de vuelta: restablecemos la pila, apilamos el elemento

17 Sumergir un elemento static void sumergir (Pila pila, int dato) { int elem; if (!pila.pilavacia ()) { elem = pila.desapilar (); sumergir (pila, dato); pila.apilar (elem); else pila.apilar (dato);

18 Invertir los elementos de una pila static void invertir (Pila pila) { int elem; if (!pila.pilavacia ()) { elem = pila.desapilar (); invertir (pila); sumergir (pila, elem);

19 Terminación anticipada Parar la ejecución del programa antes de alcanzar la condición de parada si se cumple determinada condición No se realizan más llamadas recursivas. Condición de parada pesimista: pilavacia. Ejemplo: buscar un valor. Condición de parada pesimista: pilavacia Terminación anticipada: existe dato no se realizan más llamadas recursivas Fase de ida: desapilar elem de pila y comparar con dato Si igual termino llamadas recursivas Si no llamada a funcion recursiva Fase de vuelta: apilar elem en pila

20 Quitar el elemento del fondo public static int desfondar (Pila p) { int elem, dato; if (!p.pilavacia ()) { elem = p.desapilar (); if (! p.pilavacia ()) { dato = desfondar (p); p.apilar (elem); else dato = elem; else { System.out.println ("error, la pila está vacía"); dato = -9999; return dato;

21 Buscar un valor static boolean esta (Pila pila, int dato) { int elem; boolean resul; if (!pila.pilavacia ()) { elem = pila.desapilar (); if (elem == dato) resul = true; else resul = esta (pila,dato); pila.apilar (elem); else resul = false; return resul; Terminación anticipada Terminación pesimista

22 Varias Pilas: Mezclar dos Pilas (AND). (I). Estrategia Entrada: Dos pilas ordenadas ascendentemente (pila1 y pila2) Salida: Pila ordenada ascendentemente (pila3) con los elementos de pila1y de pila2 sin repeticiones. Argumentos: pila1, pila2, pila3: clase Pila. elem1, elem2: enteros. (No pueden ser variables locales). apilar1, apilar2: lógicos. (Elemento pendiente de apilar). Fase de ida: Variables de control: pend1 y pend2 (lógicos): La pila (1 ó 2) tiene algo pendiente de tratar. Condición de terminación: Alguna de la pilas no tiene elementos por tratar (!(pend1 && pend2) (!pend1!pend2). Tratamiento: desapilar según proceda (utilizar apilar1 2). Comparar elementos de pila1 y pila2. Llamada recursiva con los valores oportunos de apilar1 y apilar2. Fase de transición: apilar en pila1 o pila2 algún posible elemento pendiente. Fase de vuelta: apilar en pila1o pila2 según el valor de apilar1 2. apilaren pila3 solo cuando se corresponda con una instancia de la fase de ida en la que elem1 = elem2

23 Varias Pilas: Mezclar dos Pilas (AND). (II). Argumentos apilar1 y apilar2 Según lo que haya ocurrido en la instancia anterior: pendiente de apilar en pila1 ó en pila2 Se inicializan en la llamada externa al programa, ambas a false. pend1 y pend2: quedan elementos por tratar en pila1 2 si no están vacías (!pila1 2.pilaVacia ())o que dan elementos por tratar (apilar1 apilar2) pend1 = (!pila1.pilavacia() apilar1) pend1 2 = (!pila2.pilavacia() apilar2)

24 Varias Pilas: Mezclar dos Pilas (AND). (III). Modelo

25 Varias Pilas: Mezclar dos Pilas (OR). (I). Estrategia Entrada: Dos pilas ordenadas ascendentemente (pila1 y pila2) Salida: Pila ordenada ascendentemente (pila3) con los elementos de pila1y de pila2 sin repeticiones. Argumentos: pila1, pila2, pila3: clase Pila. elem1, elem2: enteros. (No pueden ser variables locales). apilar1, apilar2: lógicos. (Elemento pendiente de apilar). Fase de ida: Variables de control: pend1 y pend2 (lógicos): La pila (1 ó 2) tiene algo pendiente de tratar. Condición de terminación: Alguna de la pilas no tiene elementos por tratar (!(pend1 && pend2) (!pend1!pend2). Tratamiento: desapilar según proceda (utilizar apilar1 2). Comparar elementos de pila1 y pila2. Llamada recursiva con los valores oportunos de apilar1 y apilar2. Fase de transición: Copiarel resto de la pila no vacía en pila3( Llamada al método copiarpila). Tratar algún posible elemento pendiente de pila1 o pila2. Fase de vuelta: apilar en pila3. apilar en pila1o pila2 según el valor de apilar1 2.

26 Varias Pilas: Mezclar dos Pilas (OR). (II). Argumentos apilar1 y apilar2 Según lo que haya ocurrido en la instancia anterior: pendiente de apilar en pila1 ó en pila2 Se inicializan en la llamada externa al programa, ambas a false. pend1 y pend2: quedan elementos por tratar en pila1 2 si no están vacías (!pila1 2.pilaVacia ()) o que dan elementos por tratar (apilar1 apilar2) pend1 = (!pila1.pilavacia() apilar1) pend1 2 = (!pila2.pilavacia() apilar2)

27 Varias Pilas: Mezclar dos Pilas (OR). (III). Modelo

28 Varias Pilas: Mezclar dos Pilas (OR). (IV). Simulación (I) Ambas pilas tienen elementos por tratar (pend1 && pend2) if (!apilar1) elem1 = pila1.desapilar (); if (!apilar2) elem2 = pila2.desapilar (); 1 2 [1] If (!apilar1) elem1 = pila1.desapilar (); elem1 = 1 elem2 = 2 elem1 = 5 elem2 = 2 if (elem1 < elem2) if (elem2 < elem1) mezclarpila (pila1,pila2,pila3,false,true,1,2) mezclarpila (pila1,pila2,pila3,true, false,5,2); [1] [2] pila1.apilar (1); pila2.apilar (2); pila3.apilar (1); pila3.apilar (2);

29 Varias Pilas: Mezclar dos Pilas (OR). (IV). Simulación (II) Ambas pilas tienen elementos por tratar (pend1 && pend2) [2] if (! apilar2) elem2 = pila2.desapilar (); [3] if (! apilar2) elem2 = pila2.desapilar (); elem1 = 5 elem2 = 4 elem1 = 5 elem2 = 6 if (elem2<elem1) mezclarpila(pila1,pila2,pila3,true,false,true,5,4); [3] pila2.apilar (4); pila3.apilar (4); if (elem1<elem2) mezclarpila (pila1,pila2,pila3,false,true,5,6); [4] pila1.apilar (5); pila3.apilar (5);

30 Varias Pilas: Mezclar dos Pilas (OR). (IV). Simulación (III) Ambas pilas tienen elementos por tratar (aux1 && aux2) [5] pend1;! pend2; apilar1 [4] if (!apilar1) elem1 = pila1.desapilar (); if (apilar1) pila1.apilar (elem1); pila3.apilar (elem1); 7 elem1 = 7 elem2 = 6 if (elem2 < elem1) mezclarpila (pila1,pila2,pila3,true,false,7,6); [5] pila2.apilar (6); pila3.apilar (6); 7 7 FASE DE VUELTA

31 Varias Pilas: Mezclar dos Pilas (OR). (IV). Simulación (IV) [5] pila2.apilar (6); pila3.apilar (6); [4] pila1.apilar (5); pila3.apilar (5); [3] pila2.apilar (4); pila3.apilar (4); [2] pila2.apilar (2); pila3.apilar (2); [1] pila1.apilar (1); pila3.apilar (1);

32 Varias pilas. Terminación anticipada (I). Ejemplo. Método que devuelve un valor lógico que indica si una pila de enteros ordenados ascendentemente desde la cima hacia el fondo (pila2) está contenida en otra (pila1) de las mismas características. Es una variante del algoritmo de mezcla AND con terminación anticipada si durante la fase ida aparece un elemento de pila2que no está en pila1 (elem2 < elem1). Fase de ida: Variables de control: pend1 y pend2 (lógicos): La pila (1 ó 2) tiene algo pendiente de tratar. Condición de terminación (pesimista): Alguna de la pilas no tiene elementos por tratar (!(pend1 && pend2) (!pend1!pend2). Tratamiento: desapilar según proceda (utilizar apilar1 2). Comparar elementos de pila1 y pila2. Si elem1 elem2, llamada recursiva con los valores oportunos de apilar1 y apilar2. En otro caso (Terminación anticipada). No hay más llamadas.

33 Varias pilas. Terminación anticipada (II). Fase de transición: Por terminación anticipada: Se apilan los elementos pendientes en pila1 y pila2 Se devuelve false. Por terminación pesimista. Posibilidades: Se ha terminado con pila2 (y no con pila1). Se apila el elemento pendiente de pila1 Se devuelve true. Se ha terminado con pila1(y no con pila2). Se apila el elemento pendiente de pila2 Se devuelve false. Se ha terminado con ambas pilas. Se devuelve true. Fase de vuelta: apilar en pila1o pila2 según el valor de apilar1 2. Se devuelve el resultado a la instancia de llamada.

34 En resumen. A la hora de manipular un TAD Qué tipo de problema? Crear un TAD a partir de otro, modificar el contenido, realizar cálculos con los elementos del TAD Parámetros: TAD por referencia. Otros argumentos: por referencia o por valor?. Cuáles están implícitos en el enunciado y cuáles no pero son necesarios Requieren inicialización? Dónde los inicializo (fuera del módulo recursivo, o dentro)? Condición de parada Finalización anticipada: circunstancia que la provoca Diseño: Fase de ida: desapilar (+ operaciones) Transición: se alcanza la condición de parada y se realiza el proceso correspondiente Fase de vuelta: (Operaciones +) apilar

35 Recapitulamos. Especificación de un TAD: Propiedades sintácticas, propiedades semánticas y excepciones TAD Pila Estructura LIFO (Last Input First Output) Recursividad Fase de ida fase de transición fase de vuelta Desapilar Procesar Apilar

ESTRUCTURAS DE DATOS TIPOS ABSTRACTOS DE DATOS 51

ESTRUCTURAS DE DATOS TIPOS ABSTRACTOS DE DATOS 51 ESTRUCTURAS DE DATOS TIPOS ABSTRACTOS DE DATOS 51 TEMA 2 Tipos Abstractos de Datos. 2.1. CONCEPTO Como se vio en el apartado 1.4, se entiende por Estructura de Datos una agrupación de datos, simples o

Más detalles

Tema 2 Tipos abstractos de datos. 2.3 Cola de números enteros.

Tema 2 Tipos abstractos de datos. 2.3 Cola de números enteros. Tema 2 Tipos abstractos de datos. 2.3 Cola de números enteros. Especificación de TAD s. TAD Cola de Enteros. Definición del TAD Cola de Enteros: Estructura de Datos que contiene una serie de elementos

Más detalles

Estructuras de Datos. 14 de junio de Apellidos

Estructuras de Datos. 14 de junio de Apellidos Ejercicio 1) (3 puntos). Dado el TAD Pila de Números Enteros con las siguientes operaciones: boolean pilavacia (); void apilar (int x); int desapilar () throws PilaVacia; SE PIDE: Codificar un método estático

Más detalles

Tema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés

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

Más detalles

ESTRUCTURAS DE DATOS LISTAS 93

ESTRUCTURAS DE DATOS LISTAS 93 ESTRUCTURAS DE DATOS LISTAS 93 TEMA 3 Listas. 3.1. CONCEPTOS GENERALES. Una lista es una estructura de datos lineal que se puede representar simbólicamente como un conjunto de nodos enlazados entre sí.

Más detalles

TEMA 1. Tipos Abstractos de Datos. CONSIDERACIONES GENERALES.

TEMA 1. Tipos Abstractos de Datos. CONSIDERACIONES GENERALES. TEMA 1 Tipos Abstractos de Datos. CONSIDERACIONES GENERALES. El TAD es oculto por naturaleza. Se desconoce cualquier referencia a su funcionamiento interno. Salvo expresa indicación en contra, las estructuras

Más detalles

Soluciones Ejercicios Tema 7. Cambio de Signo Pila (3/3) if (!p.esvacia()) { d i l cambiasignopila(p); this.apilar(new Integer(-dato));

Soluciones Ejercicios Tema 7. Cambio de Signo Pila (3/3) if (!p.esvacia()) { d i l cambiasignopila(p); this.apilar(new Integer(-dato)); Cambio de Signo Pila (1/3) Soluciones Ejercicios Tema 7 Germán Moltó Martínez gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica

Más detalles

Estructuras de Datos Clase 4 Pilas y colas

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

Más detalles

4. Pilas ESTRUCTURAS DE DATOS 1

4. Pilas ESTRUCTURAS DE DATOS 1 4. Pilas Una Pila es una colección de elementos homogéneos dispuestos en orden tal que se recuperan en orden inverso a como se introdujeron. La extracción e inserción de elementos en la Pila se realiza

Más detalles

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

1. Cuántas sentencias hay en la secuencia principal del siguiente programa? 1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: 1. Ejercicio (3 puntos) a) Qué estructura de datos utilizarías para transformar la siguiente expresión a su equivalente expresión postfija? Argumenta tu decisión. Ej. entrada:

Más detalles

TEMA 4. Árboles CONSIDERACIONES GENERALES.

TEMA 4. Árboles CONSIDERACIONES GENERALES. TEMA 4. Árboles CONSIDERACIONES GENERALES. Se detallan a continuación ejercicios de implementación de funcionalidades de árboles binarios con estructuras dinámicas (referencias). A la hora de abordar la

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

Tema 5. Estructura de datos Pila

Tema 5. Estructura de datos Pila Tema 5. Estructura de datos Pila http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la

Más detalles

Las FILAS. ING PEDRO BELTRÁN CANESSA Estructuras de Datos 1

Las FILAS. ING PEDRO BELTRÁN CANESSA Estructuras de Datos 1 Las FILAS Estructuras de Datos 1 LA FILA (Conceptos...) Es un contenedor que utiliza el protocolo FIFO (First In, First Out) o bien, PEPS (Primeras Entradas, Primeras Salidas) Entrada Salida Estructuras

Más detalles

TAD: Pila. TALLER: TAD Pila

TAD: Pila. TALLER: TAD Pila TALLER: TAD Una pila (stack) es un conjunto de elementos del mismo tipo que solamente puede crecer o decrecer por uno de sus extremos. Una pila también se la conoce con el nombre de estructura de tipo

Más detalles

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ Fichero nodo.h #ifndef NODO_H #define NODO_H const int cantidad_nodos = 10; class Nodo private: string dato; Nodo* siguiente; public: Nodo(); void setdato(string

Más detalles

Solucionado!!! La Torre de Hanói (Sin recursividad)

Solucionado!!! La Torre de Hanói (Sin recursividad) 1 Solucionado!!! La Torre de Hanói (Sin recursividad) import java.util.scanner; public class Prueba { public static void main(string[] args) { Pila t1=new Pila(); Pila t2=new Pila(); Pila t3=new Pila();

Más detalles

Pilas Motivación

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

Más detalles

Estructuras de Datos

Estructuras de Datos 8 de marzo de 2011 1 2 3 4 5 Tipo de Dato Abstracto Un tipo de dato abstracto (TDA), corresponde a un conjunto de valores y un conjunto de operaciones sobre tales valores. s de TDA Enteros. Reales. Booleanos.

Más detalles

Estructuras de Datos Clase 4 Pilas y colas

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

Más detalles

PILAS. Prof. Ing. M.Sc. Fulbia Torres

PILAS. Prof. Ing. M.Sc. Fulbia Torres S ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS PILAS Definición. Operaciones. Implementación secuencial. Aplicaciones. Ejemplos. Ejercicios. DEFINICIÓN Una PILA (o stack) es una estructura

Más detalles

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez Algoritmos y Estructuras de Datos Iteradores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/26 Iteradores Es muy común

Más detalles

LECTURA 7.1 ENVÍO DE PARÁMETROS A UN MÉTODO: POR VALOR, POR REFERENCIA Y PARÁMETROS DE SALIDA EN C#

LECTURA 7.1 ENVÍO DE PARÁMETROS A UN MÉTODO: POR VALOR, POR REFERENCIA Y PARÁMETROS DE SALIDA EN C# LECTURA 7.1 ENVÍO DE PARÁMETROS A UN MÉTODO: POR VALOR, POR REFERENCIA Y PARÁMETROS DE SALIDA EN C# La recursividad basa su funcionamiento en el uso correcto del ámbito de las variables y para entenderla

Más detalles

PILAS Fundamentos

PILAS Fundamentos Alg. y Estr. Datos-I / Fund. Progr.-II (R. Ferrís, J. Albert) 11 PILAS 11.1 Fundamentos En este tema y en el siguiente se analizarán las estructuras de datos lineales pilas y colas. Las pilas y las colas

Más detalles

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa Contenido Estructura de un programa en Java... 2 Tipos de datos básicos... 2 Operadores... 3 Literales... 4 Entrada / Salida... 4 Sentencias condicionales... 5 Funciones... 5 Ejercicios... 6 Variables,

Más detalles

Tema 2: Clases y Objetos

Tema 2: Clases y Objetos Tema 2: Clases y Objetos Anexo: tipo de datos Pila Programación Orientada a Objetos Curso 2017/2018 Características del paradigma OO Curso 2017/2018 Programación Orientada a Objetos 2 Características del

Más detalles

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

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

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

Colas. 5.1 Implementación

Colas. 5.1 Implementación Capítulo 5 Colas Las colas al igual que las pilas son un tipo especial de listas en las cuales los elementos se insertan por un lado y se eliminan por el otro. Es decir se sacan en el mismo orden en que

Más detalles

RELACIÒN ENTRE LA PROGRAMACIÒN ORIENTADA A OBJETOS Y LA ESTRUCTURADA

RELACIÒN ENTRE LA PROGRAMACIÒN ORIENTADA A OBJETOS Y LA ESTRUCTURADA RELACIÒN ENTRE LA PROGRAMACIÒN ORIENTADA A OBJETOS Y LA ESTRUCTURADA La Programación Orientada a Objetos toma las mejores ideas de la programación estructurada la combina con nuevos y poderosos conceptos

Más detalles

1. Una pila funciona según el método LIFO (Last In First Out ). Se define la clase Pila de la siguiente forma:

1. Una pila funciona según el método LIFO (Last In First Out ). Se define la clase Pila de la siguiente forma: Facultad de Ingeniería Establecimiento Público de Educación Superior, adscrito al Departamento de Antioquia Lógica de Programación II Taller Nº 3: Pilas, colas y recursividad Período 02 de 2014 Profesor:

Más detalles

TECNICAS DE PROGRAMACION Universidad Católica Los Angeles de Chimbote MODIFICADORES DE ACCESO A LOS MIEMBROS DE UNA CLASE

TECNICAS DE PROGRAMACION Universidad Católica Los Angeles de Chimbote MODIFICADORES DE ACCESO A LOS MIEMBROS DE UNA CLASE MODIFICADORES DE ACCESO A LOS MIEMBROS DE UNA CLASE Los modificadores de acceso, como su nombre indica, determinan desde qué clases se puede acceder a un determinado elemento. En Java tenemos 4 tipos:

Más detalles

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Leonardo DaVinci. Piccasso La Tempestad. Mona Lisa

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Leonardo DaVinci. Piccasso La Tempestad. Mona Lisa 1. Ejercicio (3,5 puntos) a) Complentar la especificación public class Galeria { LinkedList cuadrosportitulo; LinkedList cuadrosporautor; LinkedListItr itrcuadrosportitulo; LinkedListItr itrcuadrosporautor;

Más detalles

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

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Nombre-Apellidos: Nombre-Apellidos: Nota: 1. Ejercicio (1 punto) Responder a las siguientes preguntas de tipo test, seleccionando sólo una de las respuestas. Se evaluarán sólo las respuestas contestadas con el siguiente

Más detalles

LEA ATENTAMENTE ESTAS INSTRUCCIONES ANTES DE COMENZAR LA PRUEBA

LEA ATENTAMENTE ESTAS INSTRUCCIONES ANTES DE COMENZAR LA PRUEBA Asignatura Estructura de Datos y Algoritmos Grado en Ingeniería Informática y Doble Grado en Informática y Administración de Empresas 24 de Marzo de 2014. SEGUNDO EXAMEN PARCIAL Nombre:... Apellidos:...

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

a) Reescribir P1 introduciendo un error sintáctico (de compilación), otro de ejecución, y

a) Reescribir P1 introduciendo un error sintáctico (de compilación), otro de ejecución, y Examen de Programación (13294) Convocatoria de Septiembre 2007 Licenciatura de Lingüística y Nuevas Tecnologías Pregunta 1 Nombre: Apellidos: NIA: Tenemos el programa P1 que utiliza los métodos de String

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

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

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

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

EDA. Tema 8 Colas de Prioridad: Heaps

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

Más detalles

Departamento de Informática Universidad de Valladolid Campus de Segovia. TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs)

Departamento de Informática Universidad de Valladolid Campus de Segovia. TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs) Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs) TIPOS ABSTRACTOS DE DATOS (TADs) Introducción Un contraejemplo completo Metodología de la

Más detalles

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

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

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2007.

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2007. Dpto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación, Ciudad Universitaria, 28040 Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2007. Normas de examen: Con

Más detalles

Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos

Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. Complejidad de

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: NOTA FINAL: Nota Practica (1 punto) + Nota Examen (9 punto) Es indispensable aprobar el examen (4,5 puntos) para aprobar la asignatura (5 puntos) La práctica es opcional Duración:

Más detalles

El programa P1 tiene como objetivo imprimir cada uno de los caracteres de una cadena en una línea, como por ejemplo: h o l a

El programa P1 tiene como objetivo imprimir cada uno de los caracteres de una cadena en una línea, como por ejemplo: h o l a Examen de Programación (13294) Convocatoria de Junio 2006 Licenciatura de Lingüística y Nuevas Tecnologías Pregunta 1 El programa P1 tiene como objetivo imprimir cada uno de los caracteres de una cadena

Más detalles

Examen escrito de Programación I

Examen escrito de Programación I Examen escrito de Programación I Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 12 de septiembre de 2011 Disponer sobre la mesa en lugar visible un documento

Más detalles

Prueba N o 1. Programación II

Prueba N o 1. Programación II UNIVERSIDAD ANDRÉS BELLO 1 Prueba N o 1 Programación II Profesores: José Luis Allende y Carlos Beyzaga. Fecha: 10 de Septiembre de 2013 Nombre: Nota: Instrucciones: Coloque su nombre a todas las hojas.

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS)

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) 200 UNAN LEON Departamento de Computación Ingeniería en Sistema y Telemática Docente: Ing. Juan Carlos Antón S. Asignatura: Algoritmo y Estructuras de Datos ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) Pilas

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays

Más detalles

Estructuras de Datos Clase 6 Listas e Iteradores (primera parte)

Estructuras de Datos Clase 6 Listas e Iteradores (primera parte) Estructuras de Datos Clase 6 Listas e Iteradores (primera parte) 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

Más detalles

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado

Más detalles

EXAMEN PROGRAMACIÓN 21 de Septiembre de 2007 INGENIERÍA INFORMÁTICA Primera parte: Cuestiones 1,5 horas

EXAMEN PROGRAMACIÓN 21 de Septiembre de 2007 INGENIERÍA INFORMÁTICA Primera parte: Cuestiones 1,5 horas Apellidos Nombre Firma NIA Grupo EXAMEN PROGRAMACIÓN 21 de Septiembre de 2007 INGENIERÍA INFORMÁTICA Primera parte: Cuestiones 1,5 horas Pregunta 1 (0,5 puntos).- Indicar si las siguientes afirmaciones

Más detalles

11. PILAS Introducción Fundamentos

11. PILAS Introducción Fundamentos 11. PILAS 11.0 INTRODUCCIÓN... 31 11.1 FUNDAMENTOS... 31 11.2. REPRESENTACIÓN DE LAS PILAS EN C++... 32 Implementación mediante estructuras estáticas... 36 Implementación mediante estructuras dinámicas...

Más detalles

Examen parcial Convocatoria de junio de 2005 FUNDAMENTOS DE LA PROGRAMACIÓN

Examen parcial Convocatoria de junio de 2005 FUNDAMENTOS DE LA PROGRAMACIÓN EJERCICIO 1 (1.5 puntos) Diseñe un conjunto de casos de prueba adecuado para comprobar el funcionamiento de un método encargado de calcular la duración de una llamada telefónica. Entradas Hora de inicio

Más detalles

Introducción a Java 10/02/2011. Tokens. Juan Manuel Fernández Peña Curso Rev Tokens. Tokens

Introducción a Java 10/02/2011. Tokens. Juan Manuel Fernández Peña Curso Rev Tokens. Tokens Introducción a Java Juan Manuel Fernández Peña Curso 2005. Rev 2011 Comentarios: //comentario /* comentario fin de comentario */ /** comentario para javadoc fin */ Palabras reservadas: (como ejemplo) abstract,

Más detalles

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS Curso 2008-09 Examen parcial APELLIDOS: NOMBRE: 1. (0.5 puntos) Enumera las características de un algoritmo

Más detalles

18. Interfaces Declaración de una interfaz

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

Más detalles

Métodos CON valor de retorno

Métodos CON valor de retorno Métodos Estáticos C# Fundamentos de Programación. Objetivos del tema: Qué es un método? Qué métodos conoces? Métodos que NO devuelven valor. Métodos que SI devuelven un valor. Paso de parámetros. Variables

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º 1. Ejercicio (1 puntos) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 (a) Escribir la secuencia de ordenación del array A por medio del algoritmo de InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8, 7, 1,

Más detalles

Tipos abstractos de datos (TAD)

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

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 (3 puntos) Dado una lista L, cuyo contenido son números enteros y están ordenados en orden ascendente, escribir en Java un programa óptimo que crea y devuelve dos listas: una de pares y otra

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

Más detalles

Tipo de dato Abstracto (Tad) PILAS COLAS

Tipo de dato Abstracto (Tad) PILAS COLAS Tipo de dato Abstracto (Tad) PILAS COLAS Tipos Abstractos de Datos - PILA Tope Poner Sacar Tipos Abstractos de Datos - PILA El tipo de Dato PILA (stack) es una estructura de datos que organiza los datos

Más detalles

Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005

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

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos

Más detalles

SUBPROGRAMAS. Los subprogramas pueden ser invocados varias veces desde diferentes partes del programa.

SUBPROGRAMAS. Los subprogramas pueden ser invocados varias veces desde diferentes partes del programa. SUBPROGRAMAS Los subprogramas son un conjunto de instrucciones que realizan una labor específica y se comportan de manera independiente en un programa. Los subprogramas facilitan: Descomponer la complejidad

Más detalles

Práctica 5c. Práctica 5c. José M. Ordax

Práctica 5c. Práctica 5c. José M. Ordax Práctica 5c José M. Ordax chemi@javahispano.org 1 Copyright 2004 Arancha Ocaña Díaz-Ufano Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación de javahispano

Más detalles

Hoja de ejercicios del Tema 9

Hoja de ejercicios del Tema 9 Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 9 1. Sin ejecutarlo, qué mostraría el siguiente código? int x = 5, y = 12, z;

Más detalles

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

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

Más detalles

Programación II Recursividad Dr. Mario Rossainz López

Programación II Recursividad Dr. Mario Rossainz López 5. RECURSIVIDAD 5.1. Introducción La recursividad es una técnica en la que una función o método se hace llamadas a sí misma en el proceso de la realización de sus tareas. La recursividad da al programador

Más detalles

Programación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED)

Programación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED) Examen de Ejemplo Programación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED) Parte Teórica (2,5 puntos). La respuesta correcta se indica

Más detalles

8 de Junio 2005 UNIVERSITAT DE VALÈNCIA

8 de Junio 2005 UNIVERSITAT DE VALÈNCIA Prob.1. En la práctica 4 ( Qué impresora uso?), se nos acaba de romper la impresora nueva. Ante esta situación nos piden que realicemos una nueva función para el programa de gestión de colas de impresión

Más detalles

Soluciones Ejercicios Tema 8

Soluciones Ejercicios Tema 8 Traza Pila (1/2) Pila p = new ArrayPila(); Soluciones Ejercicios Tema 8 Germán Moltó Martínez gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería

Más detalles

Complejidad de algoritmos recursivos

Complejidad de algoritmos recursivos Tema 3. Complejidad de algoritmos recursivos 1. INTRODUCCIÓN... 1 CLASIFICACIÓN DE FUNCIONES RECURSIVAS... 1 DISEÑO DE FUNCIONES RECURSIVAS... 2 2. VENTAJAS E INCONVENIENTES DE LA RECURSIVIDAD... 4 3.

Más detalles

El programa P1 tiene como objetivo imprimir cada uno de los caracteres de una cadena en una línea, como por ejemplo: h o l a

El programa P1 tiene como objetivo imprimir cada uno de los caracteres de una cadena en una línea, como por ejemplo: h o l a Examen de Programación (13294) Convocatoria de Junio 2006 Licenciatura de Lingüística y Nuevas Tecnologías Pregunta 1 El programa P1 tiene como objetivo imprimir cada uno de los caracteres de una cadena

Más detalles

Tema 8. Listas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz

Tema 8. Listas.  José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz Tema 8. Listas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información Universitat

Más detalles

Programación Tema 4: Métodos. Programación DIT-UPM

Programación Tema 4: Métodos. Programación DIT-UPM Programación Tema 4: Métodos 1 Contenidos! 1. El concepto de método! 2. Definición: cabecera! 3. Definición: cuerpo! 4. Uso de métodos! 5. Métodos útiles 2 Métodos! Un método es un bloque de código con

Más detalles

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o 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)

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

M.C. Yolanada Moyao Martínez

M.C. Yolanada Moyao Martínez M.C. Yolanada Moyao Martínez Es una técnica de programación que permite que un bloque de instrucciones se ejecute n veces. En Java los métodos pueden llamarse a sí mismos. Si dentro de un método existe

Más detalles

TEMA 1. Introducción a la programación. CONSIDERACIONES GENERALES.

TEMA 1. Introducción a la programación. CONSIDERACIONES GENERALES. TEMA 1 Introducción a la programación. CONSIDERACIONES GENERALES. EJERCICIOS AreaTriangulo Escriba un programa que calcule el área de un triángulo rectángulo dadas la altura y la base. El área de un triángulo

Más detalles

Soluciones al Examen de Fundamentos de Computadores y Lenguajes

Soluciones al Examen de Fundamentos de Computadores y Lenguajes Soluciones al Examen de Fundamentos de Computadores y Lenguajes Cuestiones (5 cuestiones, 5 puntos en total) Examen Parcial. Junio 2005 1) Escribir una clase con un atributo privado que sea un array de

Más detalles

FUNCIONES O MÉTODOS. Algoritmia y Programación

FUNCIONES O MÉTODOS. Algoritmia y Programación FUNCIONES O MÉTODOS Algoritmia y Programación CONTENIDO Funciones/métodos Definición Partes de una función Ejemplos Ámbito de variables Variables Locales Variables Globales Slide 2 DEFINICIÓN Una función

Más detalles

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO INGENIERÍA EN COMPUTACIÓN

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO INGENIERÍA EN COMPUTACIÓN UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO INGENIERÍA EN COMPUTACIÓN REPORTE DE INVESTIGACIÓN PROGRAMA FUNCIÓN FACTORIAL ALGORITMO PROGRAMA FUNCION FIBONACCI ALGORITMO

Más detalles

Metodología de la Programación II. Recursividad

Metodología de la Programación II. Recursividad Metodología de la Programación II Recursividad Objetivos Entender el concepto de recursividad. Conocer los fundamentos del diseño de algoritmos recursivos. Comprender la ejecución de algoritmos recursivos.

Más detalles

Variables Globales: Estas se crean durante toda la ejecución del programa, y son globales, ya que pueden ser llamadas, leídas, modificadas, etc;

Variables Globales: Estas se crean durante toda la ejecución del programa, y son globales, ya que pueden ser llamadas, leídas, modificadas, etc; FUNCIONES. C++ JAVA FUNCIONES C++. En C, se conocen como funciones aquellos trozos de códigos utilizados para dividir un programa con el objetivo que, cada bloque realice una tarea determinada. En las

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA ÁREA DE LENGUAJES Y SISTEMAS INFORMÁTICOS DEPARTAMENTO DE INFORMÁTICA E INGENIERÍA DE SISTEMAS ESCUELA DE INGENIERÍA Y ARQUITECTURA FUNDAMENTOS DE INFORMÁTICA 1ª CONVOCATORIA (16-junio-2011) Ejercicio

Más detalles

Estructura de datos y Programación

Estructura de datos y Programación Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de

Más detalles

El método main de la clase PruebaArbol, empieza creando una instancia de un objeto Árbol vacío y asigna su referencia a la variable árbol

El método main de la clase PruebaArbol, empieza creando una instancia de un objeto Árbol vacío y asigna su referencia a la variable árbol Árboles Las listas enlazadas, pilas y colas son estructuras de datos lineales (es decir, secuencias). Un árbol es una estructura de datos bidimensional no lineal, con propiedades especiales. Los nodos

Más detalles

CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS

CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS 1 TEMAS A VER Listas simples genéricas Pilas Colas 2 LISTA SIMPLE GENÉRICA Una lista simple genérica nos permite crear listas de diferentes objetos: enteros, char,

Más detalles

Práctica 11e. Práctica 11e. José M. Ordax

Práctica 11e. Práctica 11e. José M. Ordax Práctica 11e José M. Ordax chemi@javahispano.org 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

Más detalles

Segundo Parcial de Programación 2 7 de junio de 2017

Segundo Parcial de Programación 2 7 de junio de 2017 Instituto de Computación. Facultad de Ingeniería. Universidad de la República Segundo Parcial de Programación 2 7 de junio de 2017 Problema 1 (30 puntos) Considere un TAD T que permita almacenar a lo sumo

Más detalles

Estructuras de control selectivas

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

Más detalles