PROGRAMACIÓN EN JAVA

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

Download "PROGRAMACIÓN EN JAVA"

Transcripción

1 SISTEMAS INFORMÁTICOS INDUSTRIALES curso 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 varios threads o hilos de ejecución. Conocer el modelo clásico de comunicación entre tareas productor / consumidor. Usar los mecanismos de Java para sincronizar tareas: utilización de los métodos wait() y notify(). Descripción Una aplicación multitarea permite realizar de forma simultánea varias tareas. Estas tareas pueden comunicarse entre sí. Un mecanismo clásico de comunicación de tareas es el modelo productor / consumidor. En este modelo el productor produce una determinada salida, que es adquirida por el consumidor. Para comprender este modelo de comunicación se va a crear una aplicación en Java en la que: - El productor será una tarea encargada de introducir caracteres en una tubería. - El consumidor será una tarea que irá leyendo los caracteres que va introduciendo el productor. - La propia tubería actuará como un monitor que controlará el proceso de sincronización entre las dos tareas. La tubería consistirá en una clase que contendrá un array de caracteres de un determinado tamaño en el que se introducirán y extraerán caracteres. Será necesario controlar que el productor no introduzca un carácter si el array está lleno o si el consumidor está extrayendo un carácter. Del mismo modo, habrá que controlar que el consumidor no lea un carácter si el array está vacío o si el productor está insertando un carácter. Gráficamente el modelo productor / consumidor se puede representar como: Página 1 de 5

2 Productor Monitor lanzar(char c) recoger() A D G H C E Consumidor Detalles de implementación Productor Para implementar el productor se creará una clase denominada Productor que derivará de la clase Thread. El código de esta clase es el siguiente: // fichero Productor.java class Productor extends Thread private Tuberia tuberia; private String alfabeto="abcdefghijklmnopqrstuvwxyz"; public Productor(Tuberia t) tuberia = t; public void run() char c; // introduce 10 caracteres en la tuberia for(int i=0;i<10;i++) c = alfabeto.charat((int)(math.random()*26)); // se introduce el caracter en la tuberia tuberia.lanzar(c); // se espera antes de añadir más caracteres try sleep((long)(math.random()*100)); catch(interruptedexception e) e.printstacktrace(); En el método run() de la clase Productor se puede observar que se introducen 10 caracteres en la tubería utilizando el método tuberia.lanzar(char). Los caracteres son introducidos de uno en uno con una separación temporal aleatoria. Página 2 de 5

3 Consumidor Para implementar el consumidor se creará una clase denominada Consumidor que derivará de la clase Thread. El código de esta clase es el siguiente: // fichero Consumidor.java class Consumidor extends Thread private Tuberia tuberia; public Consumidor(Tuberia t) tuberia = t; public void run() char c; // consume 10 caracteres de la tuberia for(int i=0;i<10;i++) c = tuberia.recoger(); // se espera antes de recoger más caracteres try sleep((long)(math.random()*2000)); catch(interruptedexception e) e.printstacktrace(); En este caso, en el método run() se leen 10 caracteres de la tubería utilizando el método tuberia.recoger(). Los caracteres son recogidos de uno en uno con una separación temporal aleatoria. Tubería La clase Tuberia debe controlar la comunicación entre el productor y el consumidor. A continuación se muestra parte del código de esta clase: Página 3 de 5

4 // fichero Tuberia.java class Tuberia private int tamtuberia; private char []buffer; // indica la posicion libre del buffer private int siguiente; // flags que indican el estado del buffer private boolean estallena; private boolean estavacia; public Tuberia(int tam) tamtuberia = tam; buffer = new char[tamtuberia]; siguiente = 0; estallena = false; estavacia = true; // método para retirar letras del buffer public synchronized char recoger() // método para añadir letras al buffer public synchronized void lanzar(char c) La variable miembro buffer representa el array en el que el productor introducirá caracteres, y desde el que el consumidor los leerá. El tamaño de este array vendrá dado por tamtuberia. Las variables miembros estallena y estavacia actúan como semáforos. Indicarán, respectivamente, si el buffer de caracteres está lleno o vacío. En esta clase falta por implementar los métodos lanzar() y recoger(). Estos métodos son sincronizados. Esto implica que mientras el productor esté añadiendo una letra a la tubería, el consumidor no la puede retirar, y viceversa. - En el método recoger() será necesario comprobar si el buffer está vacío, ya que en ese caso, el consumidor deberá esperar hasta que el productor introduzca algún carácter. Para que el consumidor se quede en espera, deberá utilizarse el método wait(). El consumidor dejará de esperar cuando se introduzca un carácter en el buffer. Por tanto en el método lanzar(char) será necesario invocar al método notify() para indicar al consumidor que puede continuar su ejecución. Página 4 de 5

5 - En el método lanzar() será necesario comprobar si el buffer está lleno, ya que en ese caso, el productor deberá esperar hasta que el consumidor recoja algún carácter. Por tanto en el método recoger() será necesario invocar al método notify() para indicar al productor que puede continuar su ejecución. Tanto en el método recoger() como en el método lanzar(), deberá mostrarse en pantalla el carácter leído o introducido respectivamente. Aplicación Se debe crear una aplicación que cree una tubería y arranque las dos tareas: el productor y el consumidor. Para ello se puede utilizar el siguiente código: // fichero ComunicacionTareas.java class ComunicacionTareas public static void main(string []arg) Tuberia t = new Tuberia(6); Productor p = new Productor(t); Consumidor c = new Consumidor(t); p.start(); c.start(); Observaciones Tras implementar los métodos recoger() y lanzar(char) se debe comprobar el correcto funcionamiento de la aplicación. En el fichero fuente de la aplicación se ha creado una tubería cuyo buffer es de 6 caracteres. Comprobar que modificando el tamaño del buffer, así como el número de caracteres que introduce el productor y extrae el consumidor, la aplicación sigue comportándose correctamente. Página 5 de 5

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 4 Profr: María del Carmen Cerón Garnica Alumno: Roberto

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

Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente.

Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente. Threads (hilos) Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente. Conceptos: Proceso (thread o hilo): es un programa en ejecución

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

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 5 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

1 HILOS (THREADS) EN JAVA

1 HILOS (THREADS) EN JAVA 1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

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

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Servidores y Clientes Sincronizados Contenido Procesos Semáforos Sincronización Lectura y Escritura de Archivos Servidores Orientados a Conexión Servidores No Orientados

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

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Hilos en Java A veces necesitamos que nuestro programa Java realice varias cosas simultáneamente. Otras veces tiene que realizar una tarea muy

Más detalles

Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java

Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java Java RMI Remote Method Invocation Invocación Remota de Métodos en Java Contenido Introducción Implementación Diseño de la interfaz remota. Implementación de la interfaz remota. Obtención de las clases

Más detalles

Programación Concurrente en Java

Programación Concurrente en Java Programación Concurrente en Java Curso 2006-2007 9/2/2007 Prog. Distribuida Bajo Internet Qué es la Programación Concurrente? Diseño basado en varias actividades independientes Conceptualmente se ejecutan

Más detalles

Práctica 2: Simón dice

Práctica 2: Simón dice Práctica 2: Simón dice Fecha de entrega: 31 de enero de 2016 0.- Descripción del juego (Wikipedia.org) Simon dice es un juego electrónico, creado por Ralph Baer, que consiste en reproducir una secuencia

Más detalles

Ejemplo de lectura por teclado de un número entero: int n; System.out.print("Introduzca un número entero: "); n = sc.nextint();

Ejemplo de lectura por teclado de un número entero: int n; System.out.print(Introduzca un número entero: ); n = sc.nextint(); Fuente : http://puntocomnoesunlenguaje.blogspot.com.ar/2012/08/java-scanner.html Java Scanner para lectura de datos La clase Scanner está disponible a partir de Java 5 y facilita la lectura de datos en

Más detalles

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la

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

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

Java: Programación Multithread

Java: Programación Multithread Qué es un thread? Java: Programación Multithread Hasta el momento hemos desarrollado programas secuenciales con un único thread: en cualquier instante durante la ejecución de un programa hay un único punto

Más detalles

7. Manejo de Archivos en C.

7. Manejo de Archivos en C. 7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de

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

TEMA 5: Control de la Concurrencia en Java (API Estándar)

TEMA 5: Control de la Concurrencia en Java (API Estándar) TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos

Más detalles

Monitores Ing. Iván Medrano Valencia

Monitores Ing. Iván Medrano Valencia Universidad Nacional de San Antonio Abad del Cusco Departamento Académico de Informática Programación Concurrente y Distribuida Práctica 5 1. OBJETIVO. Ing. Iván Medrano Valencia En esta práctica, comprobaremos

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

Examen escrito de Programación 1

Examen escrito de Programación 1 Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento

Más detalles

Concurrencia en Android LSUB, GYSC, URJC

Concurrencia en Android LSUB, GYSC, URJC Concurrencia en Android LSUB, GYSC, URJC Repaso de concurrencia en Java Crear un thread Instanciar un Thread, con el método run sobreescrito Intanciar un objeto que cumpla el interfaz Runnable y pasárselo

Más detalles

Programación concurrente y semáforos en Java

Programación concurrente y semáforos en Java Programación concurrente y semáforos en Java En Java es posible ejecutar tareas en paralelo, utilizando hebras de control (hilos, threads). Este modo de programación permite tener un espacio de memoria,

Más detalles

3UiFWLFD. 3URJUDPDFLyQ-DYD

3UiFWLFD. 3URJUDPDFLyQ-DYD 3UiFWLFD 3URJUDPDFLyQ-DYD Ë1',&( PRACTICA N 7...2 1. EJERCICIO 1: DESARROLLAR UN PROGRAMA JAVA PARA UNA PEQUEÑA ORQUESTA...2 CLASE INSTRUMENTO...2 INTERFACE IDENTIFICABLE...3 CLASE VIENTO...3 CLASE PERCUSIÓN...3

Más detalles

Manual del Protocolo XML-RPC de Mensajería Negocios

Manual del Protocolo XML-RPC de Mensajería Negocios Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...

Más detalles

Concurrencia en Java

Concurrencia en Java Concurrencia en Java Concurrencia y Distribución Programación Avanzada Posgrado en Ciencia e Ingeniería de la Computación, UNAM 1. El mecanismo de threads Una aplicación Java o applet puede contener secciones

Más detalles

Programación multihebra

Programación multihebra Programación multihebra by Scheme the API man 2000 (jmrequena@larural.es) Qué es la programación multihebra? Podemos definir la programación multihebra o multihilo como un estilo de ejecucion en el que

Más detalles

El lenguaje de programación Java

El lenguaje de programación Java Departament d Arquitectura de Computadors El lenguaje de programación Java Java (I) Orientado a objetos Ejecutado por una maquina virtual Independiente de la plataforma Multithreaded Orientado a la red

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Variables y Tipos de Datos PRÁCTICA NÚM. [ 1 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

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

void main(void) { string lname; list <string> lnamelist; cout << "Please enter your list of last names finishing with `.`"<<endl;

void main(void) { string lname; list <string> lnamelist; cout << Please enter your list of last names finishing with `.`<<endl; Segundo Certamen 1.- Haga uso de la información adjunta y desarrolle un programa en C++ que lea apellidos de teclado y los almacene en una lista. Luego se pide listar los apellidos en orden alfabético

Más detalles

Java y JVM: programación concurrente

Java y JVM: programación concurrente Java y JVM: programación concurrente Adolfo López Díaz Escuela de Ciencias de la Computación e Informática. Universidad de Costa Rica Resumen: El lenguaje de programación Java proporciona, sin necesidad

Más detalles

Programación Concurrente en Java

Programación Concurrente en Java Hebras y monitores Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid 21 de marzo de 2006 Threads Extendiendo la clase java.lang.thread. public class PrThread extends

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 8 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante ÍNDICE ÍNDICE... 1 1. INTRODUCCIÓN... 1 1.1 EJERCICIO 1: HERENCIA Y POLIMORFISMO I... 1 1.2 EJERCICIO

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

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

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

75-62 Técnicas de Programación Concurrente II 2004 java Threads

75-62 Técnicas de Programación Concurrente II 2004 java Threads 75-62 Técnicas de Programación Concurrente II 2004 java Threads FIUBA Ing. Osvaldo Clúa Bibliografía: tutorial de Java en http://java.sun.com Un buen libro (algo teórico) es Garg: Concurrent and Distributed

Más detalles

Clases y Objetos. Informática II Ingeniería Electrónica

Clases y Objetos. Informática II Ingeniería Electrónica Clases y Objetos Informática II Ingeniería Electrónica Los Tipos de Datos Hasta ahora, en un programa podemos usar para representar variables a: Tipos fundamentales : enteros (int), caracteres (char),

Más detalles

Object 1. Threads en Java

Object 1. Threads en Java Object 1 Threads en Java Introducción En este artículo voy a explicar cómo se usan los threads en Java (también traducidos como "hilos de ejecución"). La intención no es solamente explicar cuáles son las

Más detalles

1 ELEMENTOS BASICOS DEL LENGUAJE

1 ELEMENTOS BASICOS DEL LENGUAJE 1 ELEMENTOS SICOS DEL LENGUJE Contenido: Variables su declaracion y asignacion Caracteres en java Secuencias de escape y comentarios Tipos de datos Operadores aritméticos, relacionales y lógicos Entrada

Más detalles

1. Creación del repositorio

1. Creación del repositorio FACULTADE DE INFORMÁTICA Departamento de Computación Tecnología de la Programación 2008-2009 Ingeniería Informática Práctica 1: Subversion Introducción El objetivo de esta práctica es aprender a manejar

Más detalles

INSTITUTO POLITECNICO NACIONAL. ESCUELA SUPEIRIOR DE INGENIERIA MECANICA Y ELECTRICA. UNIDAD CULHUACAN. INTEGRANTES: FLORES ACOLTZI ONESIMO

INSTITUTO POLITECNICO NACIONAL. ESCUELA SUPEIRIOR DE INGENIERIA MECANICA Y ELECTRICA. UNIDAD CULHUACAN. INTEGRANTES: FLORES ACOLTZI ONESIMO INSTITUTO POLITECNICO NACIONAL. ESCUELA SUPEIRIOR DE INGENIERIA MECANICA Y ELECTRICA. UNIDAD CULHUACAN. INTEGRANTES: FLORES ACOLTZI ONESIMO MARCEL SANTOS ARIEL MARTINEZ AGUILAR GILBERTO. MATERIA: ESTRUCTURA

Más detalles

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

Práctica III: Streams, Readers y Writers

Práctica III: Streams, Readers y Writers Práctica III: Streams, Readers y Writers Objetivos En esta práctica vamos a aprender a utilizar Streams, Readers y Writers para realizar operaciones de entrada/salida desde programas escritos en el lenguaje

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

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

Índice ÍNDICE...1 1. EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.)...1 2. EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4

Índice ÍNDICE...1 1. EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.)...1 2. EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4 Pág.1 Índice ÍNDICE...1 1. EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.)...1 2. EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4 1. Ejercicio 1: Cálculo Financiero (5 ptos.) Desde un banco se le ha encargado

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

Práctica 2: Java Remote Method Invocation (RMI)

Práctica 2: Java Remote Method Invocation (RMI) Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es

Más detalles

Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el C.

Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el C. EJERCICIO GUIADO. JAVA: VARIABLES GLOBALES Variables Globales / Propiedades de la Clase Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el

Más detalles

MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007

MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007 MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007 Servicio de Informática y Comunicaciones Para poder diseñar un formulario y que éste nos envíe los resultados a nuestro correo electrónico, necesitamos

Más detalles

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia

Más detalles

Examen Septiembre Curso 2001-2002 -- Programación en C++ Pág. 1

Examen Septiembre Curso 2001-2002 -- Programación en C++ Pág. 1 Examen Septiembre Curso 2001-2002 -- Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Convertidor Dec->Hex y Hex->Dec (5.0 ptos.)... 1 1.1.1 Apartado A (4.0 ptos.)... 1 1.1.2 Apartado B (1.0

Más detalles

Tema 4. Gestión de entrada/salida

Tema 4. Gestión de entrada/salida Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada

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

Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Algoritmia y Programación

Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Algoritmia y Programación Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Algoritmia y Programación NORMAS PARA LA ENTREGA DE LOS LABORATORIOS Coloque el nombre de los integrantes del grupo, nombre del profesor,

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

Parsear HTML con htmlparser para Android Guillem Pérez

Parsear HTML con htmlparser para Android Guillem Pérez Parsear HTML con htmlparser para Android Guillem Pérez He escogido esta librería(http://htmlparser.sourceforge.net/) aunque no había muchos ejemplos porque la he visto realmente ligera y esta en java hay

Más detalles

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

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

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

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA Qué es la arquitectura cliente servidor? La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten

Más detalles

Multitarea En Swing. Varios hilos trabajadores, también conocidos como hilos en segundo plano.

Multitarea En Swing. Varios hilos trabajadores, también conocidos como hilos en segundo plano. Multitarea En Swing 1.- Introducción. En las aplicaciones Java que usan Swing es particularmente importante manejar con cuidado la concurrencia. Una aplicación Java que usa Swing y que está bien desarrollada

Más detalles

Hebras y Sincronización en Java

Hebras y Sincronización en Java Hebras y Sincronización en Java Jonathan Makuc http://jmakuc.ublog.cl Noviembre 2008 Tópicos: 1. Introducción a hebras en Java...2 2. Hebras a través del clase Thread...3 3. Hebras a través de la interfaz

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

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 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Práctica 5: Servidor web concurrente en Java

Práctica 5: Servidor web concurrente en Java Práctica 5: Servidor web concurrente en Java Esta práctica pretende familiarizar al alumno con la programación de servidores que emplean sockets TCP. Para ello partiremos del servidor web básico visto

Más detalles

Segunda práctica de Programación 2

Segunda práctica de Programación 2 Segunda práctica de Programación 2 La segunda práctica consistirá en el diseño y posterior implementación como proyecto de Netbeans de dos versiones sobre el mismo problema. El tema central de ambas versiones

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Estructuras de iteración PRÁCTICA NÚM. [ 6 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones

INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL BLACKJACK Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones 1. Explicación del juego de cartas del Blackjack El Blackjack

Más detalles

Informática Industrial (II)

Informática Industrial (II) Informática Industrial (II) 3º Ingeniería Técnica Industrial (Especialidad en Electrónica). E. U. Politécnica. Universidad de Sevilla. 3-mayo Práctica STR2: Entorno de desarrollo para un SOTR (Sistema

Más detalles

Contenidos. Archivos en C++ Archivos en C++ Introducción

Contenidos. Archivos en C++ Archivos en C++ Introducción Contenidos 1. Introducción. 2. Manipulación de ficheros. 3. Organización de archivos. 4. Tipo de almacenamiento. 5. Biblioteca de flujos. 6. Operaciones asociadas a archivos: Abrir fichero, Cerrar fichero,

Más detalles

Caso práctico Alquiler de películas en un vídeo-club

Caso práctico Alquiler de películas en un vídeo-club Caso práctico Alquiler de películas en un vídeo-club Adaptado de Refactoring Martin Fowler, 2000 Supongamos que tenemos que desarrollar una aplicación que gestione los alquileres de DVDs en un vídeo-club.

Más detalles

Programación Java. Práctica 11. Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García

Programación Java. Práctica 11. Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García Práctica 11 Programación Java San Sebastián, mayo 1999 Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García Informática 2: Práctica nº 11 página 1 INDICE

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

3URJUDPDFLyQ-DYD. 3UiFWLFD. -DYLHU *DUFtD GH -DOyQ Â -RVp,JQDFLR 5RGUtJXH] $OIRQVR %UD]iOH] Â $OEHUWR /DU]DEDO Â -HV~V &DOOHMD Â -RQ *DUFtD

3URJUDPDFLyQ-DYD. 3UiFWLFD. -DYLHU *DUFtD GH -DOyQ Â -RVp,JQDFLR 5RGUtJXH] $OIRQVR %UD]iOH] Â $OEHUWR /DU]DEDO Â -HV~V &DOOHMD Â -RQ *DUFtD 3UiFWLFD 3URJUDPDFLyQ-DYD San Sebastián, abril 1999 -DYLHU *DUFtD GH -DOyQ Â -RVp,JQDFLR 5RGUtJXH] $OIRQVR %UD]iOH] Â $OEHUWR /DU]DEDO Â -HV~V &DOOHMD Â -RQ *DUFtD Informática 2: Práctica nº 9 página 1

Más detalles

Práctica 1 El juego de los chinos

Práctica 1 El juego de los chinos Práctica 1 El juego de los chinos Fecha de entrega: 6 de diciembre Según una teoría, el conocido como juego de los chinos nació en el año 1787 en un pequeño pueblo de León. Felipe Valdeón Triguero, un

Más detalles

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

Metodología y Tecnología de la Programación 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

Más detalles

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid las RPC de Java. Parte I Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de marzo de 006 RMI y RPC RPC: Remote Procedure Call. RMI y RPC RPC: Remote Procedure Call.

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia

Más detalles

3.9 Patrón Distributed callback

3.9 Patrón Distributed callback 3.9 Patrón Distributed callback Motivación (1) Queremos que la aplicación de administración de los termostatos Monitorize la temperatura de algunos termostatos, avisándonos si ésta baja o sube por encima

Más detalles

Anexo B. Comunicaciones entre mc y PC

Anexo B. Comunicaciones entre mc y PC Anexo B Comunicaciones entre mc y PC En este apartado se hará hincapié en los comandos para el manejo del módulo de comunicaciones desde el PC. Conociendo estos comando se podrá realizar una aplicación

Más detalles

Academia técnica de computación A.T.C.

Academia técnica de computación A.T.C. Academia técnica de computación A.T.C. Free Pascal (FPC) El Free Pascal es un compilador Pascal portable, libre y de código abierto, que representa una alternativa a los productos comerciales Turbo Pascal

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

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

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores PROGRAMACIÓN CONCURRENTE Tema 5 Monitores 1 Indice Definición de los monitores Sincronización condicional usando monitores Algunos problemas con monitores 2 Problemas de las regiones críticas condicionales

Más detalles

MANUAL DE USUARIO. Sistema Administrativo XENX ERP. Modulo Suministros Almacén Requisición Compras Proveedores

MANUAL DE USUARIO. Sistema Administrativo XENX ERP. Modulo Suministros Almacén Requisición Compras Proveedores Pag. 1 MODULO SUMINISTROS ALMACEN (requisiciones de compras) Ruta: Suministros Almacén Requisiciones de Compras Descripción Del Modulo. Este modulo permite emitir requisiciones de compras por almacén de

Más detalles

Introducción al lenguaje Java Práctica Editor de Línea

Introducción al lenguaje Java Práctica Editor de Línea Introducción al lenguaje Java Práctica Editor de Línea (Diciembre 2006) 1 Introducción al lenguaje Java Práctica Editor de Línea Dpto. LSIIS. Unidad de Programación Normas y Objetivos Objetivo: el objetivo

Más detalles

dit UPM Tema 3: Concurrencia /ejercicios Análisis y diseño de software José A. Mañas 3.4.2014 http://jungla.dit.upm.es/~pepe/doc/adsw/index.

dit UPM Tema 3: Concurrencia /ejercicios Análisis y diseño de software José A. Mañas 3.4.2014 http://jungla.dit.upm.es/~pepe/doc/adsw/index. Análisis y diseño de software dit UPM Tema 3: Concurrencia /ejercicios José A. Mañas http://jungla.dit.upm.es/~pepe/doc/adsw/index.html 3.4.2014 ejercicio 1.1 programar una cuenta bancaria compartida 1.

Más detalles

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante) 1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

SOLUCION EXAMEN junio 2006

SOLUCION EXAMEN junio 2006 SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los

Más detalles

Sistema de Gestión Académica. Mantenimiento de Usuarios. Revisión 1.0. Servicio de Informática Área de Gestión

Sistema de Gestión Académica. Mantenimiento de Usuarios. Revisión 1.0. Servicio de Informática Área de Gestión Sistema de Gestión Académica Mantenimiento de Usuarios Revisión 1.0 Servicio de Informática Área de Gestión Septiembre de 2003 1 Introducción. Debido al incremento de usuarios de la aplicación SIGA y al

Más detalles

Servicios web con SOAP y Eclipse

Servicios web con SOAP y Eclipse PRÁCTICA 8 Servicios web con SOAP y Eclipse E l objetivo de esta práctica es invocar e implementar servicios web en Java desde el entorno Eclipse. La práctica está estructurada en tres partes según se

Más detalles