Práctica 1. Monitores en Java.

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

Download "Práctica 1. Monitores en Java."

Transcripción

1 Práctica 1 - Programación Concurrente 3º I.S. Pág: 1/15 Práctica 1. Monitores en Java. Programación Concurrente. 3º I.S. Dpto. Lenguajes y Sistemas Informáticos Escuela Técnica Superior de Ingeniería Informática y Telecomunicación Universidad de Granada Curso 2008/09 1 Código y métodos sincronizados. Cada objeto tiene un cerrojo interno asociado. El cerrojo de un objeto solamente puede ser adquirido por una sola hebra en cada momento. El cualificador synchronized sirve para hacer que un bloque de código o un método sea protegido por el cerrojo del objeto. Para ejecutar un bloque o un método sincronizado, las hebras deben adquirir el cerrojo del objeto, debiendo esperar si el cerrojo ha sido ya adquirido por otra hebra. Si obj es una referencia a un objeto, la siguiente construcción hace que las hebras tengan que adquirir el cerrojo del objeto para ejecutar el bloque de código sincronizado. synchronized (obj) { // bloque de codigo sincronizado Si todas las secciones críticas están en el código de un único objeto, podremos utilizar this para referenciar al objeto cuyo cerrojo vamos a utilizar: synchronized (this) { //bloque de codigo sincronizado Podemos hacer que el cuerpo entero de un método sea código sincronizado: tipo metodo (... ) { synchronized (this) { //codigo del metodo sincronizado La siguiente construcción es equivalente a la anterior: synchronized tipo metodo (... ) { //codigo del metodo sincronizado

2 Práctica 1 - Programación Concurrente 3º I.S. Pág: 2/15 Para construir un monitor en Java, creamos una clase con sus métodos sincronizados. De esta forma solamente una hebra podrá ejecutar en cada momento el método del objeto. El siguiente ejemplo muestra un monitor que implementa un contador: class Contador { // monitor contador private int actual; public Contador(int inicial) { actual = inicial; public synchronized void inc() { actual++; public synchronized void dec() { actual--; public synchronized int valor() { return actual; class Usuario extends Thread { // clase hebra usuaria private Contador cnt; public Usuario(String nombre, Contador cnt) { super(nombre); this.cnt = cnt; public void run() { for (int i = 0; i < 1000; i++) { cnt.inc(); System.out.println("Hola, soy " + this.getname() + ", mi contador vale " + cnt.valor());

3 Práctica 1 - Programación Concurrente 3º I.S. Pág: 3/15 class EjemploContador { // principal final static int nhebras = 20; public static void main(string[] args) { // metodo principal Contador cont1 = new Contador(10); Usuario hebra[] = new Usuario[nHebras]; for (int i = 0; i < nhebras; i++) { hebra[i] = new Usuario("la hebra-" + i, cont1); //crea hebras hebra[i].start(); // lanza hebras 2 Métodos de espera y notificación. En Java no existe el concepto de variable condición. Podríamos decir que cada monitor en Java tiene una única variable condición anónima. Los monitores de Java implementan la disciplina signal and continue. Los métodos wait(), notify() y notifyall() implementan los mecanismos de espera y notificación de los monitores Java. Estos métodos solamente pueden ser llamados por una hebra cuando ésta posee el cerrojo del objeto, es decir, desde un bloque o un método sincronizado. La invocación al método wait() provoca que la hebra actual se bloquee y sea colocada en una cola de espera asociada al objeto monitor. El cerrojo del objeto es liberado, para que otras hebras puedan ejecutar métodos del objeto. Sin embargo, otros cerrojos poseídos por la hebra suspendida son retenidos por ésta. La invocación al método notify() provoca que, si hay alguna hebra bloqueada en wait(), se escoja una cualquiera de forma arbitraria, y se saque de la cola de wait() pasando ésta al estado preparado. La hebra que invocó notify() seguirá ejecutándose dentro del monitor. La hebra señalada deberá adquirir el cerrojo del objeto para poder ejecutarse. Esto significará esperar al menos hasta que la hebra que invocó notify() libere el cerrojo, bien por la ejecución de una llamada a wait(),o bien por la salida del monitor. La hebra señalada no tiene prioridad alguna para ejecutarse en el monitor. Puede ocurrir que, antes de que la hebra señalada pueda volver a ejecutarse, otra hebra adquiera el cerrojo del monitor. La invocación al método notifyall() produce el mismo resultado que una llamada a notify() por cada hebra bloqueada en la cola de wait(): todas las hebras bloqueadas pasan al estado preparado.

4 Práctica 1 - Programación Concurrente 3º I.S. Pág: 4/15 3 Simulación de Tráfico con Monitores Java. Versión 1.0 El ejercicio a realizar consiste en desarrollar un Applet Java que gestione una simulación básica de tráfico de vehículos, aplicando la teoría subyacente de mónitores Java tal y como se ha explicado en los puntos anteriores. La simulación (ver Figura 1) consta de los siguientes componentes: Tres carreteras verticales, etiquetadas correspondientemente por 1, 2, 3. Una carretera horizontal, etiquetada con 0, y que corta a perpendicularmente a las tres anteriores. Un conjunto de 2 a 70 (según se seleccione en un parámetro de entrada al Applet) vehículos todos de igual tamaño que circulan por dichas carreteras siempre en el mismo sentido y por carril único: o De derecha a izquierda en la carretera horizontal. o De arriba abajo en las carreteras verticales. Siempre existe el mismo número de vehículos en la simulación, de tal manera que cuando llegan al fin de la correspondiente carretera, vuelven al principio de la misma. No existe la posibilidad de adelantamientos, de tal manera que los vehículos deben de conservar siempre una distancia de seguridad para no chocar, aunque su velocidad va a ser elegida al azar. Así mismo, cada vehículo debe de tener en cuenta a la hora de pasar por un cruce, si el mismo ya está ocupado por otro vehículo, en cuyo caso debe de hacer la señal de stop correspondiente y pararse hasta que el cruce quede libre. La asignación de cada vehículo a una carretera se hace al azar, no obstante el usuario va a poder pinchar, arrastrar y soltar vehículos de una carretera a otra. El usuario va a poder parar y reanudar la simulación con los correspondientes botones dentro del panel gráfico del Applet.

5 Práctica 1 - Programación Concurrente 3º I.S. Pág: 5/15 Figura 1. Applet Simulación de Vehiculos Para solucionar este ejercicio se propone las plantillas básicas en Java siguientes: SimulationServices: Dentro del package services, es la clase que proporciona los servicios básicos para tratar la simulación de vehículos. Contiene a su vez: o La clase Vehicle para gestionar los correspondientes vehículos. o La matriz con los vehículos que intervienen en la simulación. o Variables para la gestión de las carreteras, que están representadas en la Figura 1. o Variable instancia única de la clase, de tal manera que la misma cumpla el patrón de singleton y solo haya una instancia de la misma. Para conseguir esto, se hace el constructor de la clase privado. o Etc Simulation: Dentro del package applet, es la clase extension de Applet que realiza la simulacion de los vehiculos. Contiene el punto de entrada a la aplicacion Applet (metodo init). Toda la simulacion la gestiona haciendo uso de los servicios de la clase SimulationServices,

6 Práctica 1 - Programación Concurrente 3º I.S. Pág: 6/15 anteriormente explicada, mediante una unica instancia de dicha clase getinstacesimulation(). Esta clase gestiona todas las acciones posibles sobre el panel de la simulacion: o Finalizar: provoca un cese de la simulación. o Iniciar: reinicia la simulacion, si previamente se ha seleccionado Finalizar. Contiene y gestiona a su vez la siguiente clase: o ThreadVehicle: Thread para cada uno de los vehiculos que intervienen en la simulación. Como comentarios generales, decir que se han proporcionado en las plantillas todas las variables básicas de las clases, las cabeceras de los principales métodos (aunque sin especificar el cualificador synchronized ) y las variables y métodos (código inclusive) para tratar los principales componentes del Applet y de los gráficos (mediante awt).

7 Práctica 1 - Programación Concurrente 3º I.S. Pág: 7/15 package services; import java.applet.applet; import java.awt.color; import java.awt.dimension; import java.awt.event; import java.awt.graphics; import java.awt.image; SimulationServices es la clase extension de Applet que proporciona los servicios basicos para la aplicacion de simulacion de vehiculos. Contiene a su vez la siguiente clase: - Vehicle: DNI - Apellidos, Nombre - V1.0 - N.sesion y fecha de la sesion public class SimulationServices extends Applet { Numero de serie de la version private static final long serialversionuid = 1L; Vehicle es al clase que gestiona la funcionalidades de los vehiculos en la simulacion class Vehicle { Coordenada x del vehiculo private double x; Coordenada y del vehiculo private double y; Carretera por las que circula el vehiculo: 0: carretera horizontal (X) 1,2,3: carreteras verticales (Y) private int road; Desplazamiento de la coordenada x del vehiculo en el ultimo movimiento private double dx; Desplazamiento de la coordenada y del vehiculo en el ultimo movimiento private double dy; Etiqueta que identifica el vehiculo private String label; Ancho del vehiculo private int widev;

8 Práctica 1 - Programación Concurrente 3º I.S. Pág: 8/15 Largo del vehiculo private int longv; Constructor de la clase Vehicle inicializa los componentes de Vehicle public Vehicle() { Guarda la referencia a la instancia unica de la clase de simulacion SimulationServices para cumplir el patron de singleton private static SimulationServices instancesimulation = null; numero de vehiculos que intervienen en la simulacion private int nvehicules; matriz con los vehiculos existentes en la simulacion private Vehicle vehicles[]; cte. base para calculo de la velocidad de los vehiculos (que es al azar) private final double SPEED = 10; cte. que indica el ancho y longitud maximos de los vehiculos (aunque en principio todos van a ser iguales) private final int VEHICLE_WIDTH = 6, VEHICLE_LENGTH = 9; valor del eje x de la posicion de las carretas verticales (Y) road 1 -> centrada en eje x = xposroady[0] road 2 -> centrada en eje x = xposroady[1] road 3 -> centrada en eje x = xposroady[2] por las que circulan los vehiculos private int xposroady[] = new int[3]; valor del eje y de la posicion de la carreta horizontal (X) road 0 -> centrada en eje y = yposroadx por las que circulan los vehiculos private int yposroadx = 200; posiciones de la parte izquierda y derecha de las carreteras verticales (Y) road 1 -> delimitada en eje x incluido [xposleftroady[0],xposrightroady[0]] road 2 -> delimitada en eje x incluido [xposleftroady[0],xposrightroady[1]] road 3 -> delimitada en eje x incluido [xposleftroady[0],xposrightroady[2]] private int xposleftroady[] = new int[3]; private int xposrightroady[] = new int[3]; posiciones de la parte superior e inferior de las carretera horizontal (X)

9 Práctica 1 - Programación Concurrente 3º I.S. Pág: 9/15 road 0 -> delimitada en eje y incluido [yposbottomroadx,ypostoproadx] private int ypostoproadx = yposroadx + VEHICLE_WIDTH, yposbottomroadx = yposroadx - VEHICLE_WIDTH; posiciones de la parte izquierda y derecha de los cruces de la carretera horizontal (X) con las correspondientes carreteras verticales (Y) road 0 -> cruce con: road 1 - > delimitado en eje x incluido [xposleftcrossroadx[0],xposrightcrossroadx[0]] road 2 - > delimitado en eje x incluido [xposleftcrossroadx[1],xposrightcrossroadx[1]] road 3 - > delimitado en eje x incluido [xposleftcrossroadx[2],xposrightcrossroadx[2]] private int xposrightcrossroadx[] = new int[3]; private int xposleftcrossroadx[] = new int[3]; posiciones de la parte inferior y superior de los cruces de las carreteras verticales (Y) con la correspondiente carreteras horizontal (X) road 1,2,3 -> cruce con: road 0 - > delimitado en eje y incluido [ypostopcrossroady,yposbottomcrossroady] private int ypostopcrossroady = yposroadx + VEHICLE_LENGTH; private int yposbottomcrossroady = yposroadx - VEHICLE_LENGTH; Variable condicion que indica si los cruces estan libres (=0) u ocupados (=1) Cruces de la carretera horizontal con las correspondientes verticales y viceversa road 0 -> cruce con: road 1 -> blockedcross[0] indica si esta libre (=0) u ocupado (=1) road 2 -> blockedcross[1] indica si esta libre (=0) u ocupado (=1) road 3 -> blockedcross[2] indica si esta libre (=0) u ocupado (=1) private int blockedcross[] = new int[3]; Vehiculo dentro de la simulacion que ha sido picado con el raton private Vehicle vehiclepicked; Posiciones x e y del vehiculo antes de ser picado con el raton private double vehiclepickedoldx, vehiclepickedoldy; Constructor de la clase SimulationServices inicializa los componentes de SimulationServices. Se hace privado para seguir el patron de singleton private SimulationServices() { // se crea la matriz de vehiculos de la simulacion for (int i = 0; i < 3; i++) { // se calcula las posiciones eje x carreteras verticales xposroady[i] = 150 (i + 1); // se calcula la porciones correspondientes a los cruces de las // carreteras verticales xposrightcrossroadx[i] = xposroady[i] - VEHICLE_LENGTH; xposleftcrossroadx[i] = xposroady[i] + VEHICLE_LENGTH; // en principio los cruces se marcan como libres blockedcross[i] = 0;

10 Práctica 1 - Programación Concurrente 3º I.S. Pág: 10/15 // se calculan las posiciones de las carretas verticales for (int i = 0; i < 3; i++) { xposleftroady[i] = xposroady[i] - VEHICLE_WIDTH; xposrightroady[i] = xposroady[i] + VEHICLE_WIDTH; Devuelve la instancia de la simulacion, esto es, la instancia de la clase SimulationServices unica existente. Si dicha instancia no existe la construye, si ya existe la devuelve. Este metodo asegura por tanto que solo va a haber una instancia de la simulacion, que por tanto, va aseguir el patron de instancesimulation unica existente en la simulacion, si no existe la crea public static SimulationServices getinstacesimulation() { Busca el vehiculo identificado por la etiqueta de entrada y si no existe lo anade a la simulacion mediante el metodo label identifica el vehiculo a posicion que ocupa el vehiculo a buscar en la matriz de vehiculos de la simulacion public int findvehicle(string label) { Anade el vehiculo identificado por la etiqueta de entrada a la simulacion (matriz de vehiculos label identifica el vehiculo a nvehicules numero de vehiculos existentes en la simulacion tras incorporar el vehiculo de entrada private int addvehicle(string label) { // Tener en cuenta como se deben // establecer los valores iniciales del objeto Vehicle: // road = azar entre 0 (horizontal)y 1,2,3 (verticales) // widev,longv = ctes. correspondientes // label = parametro label // Si es la carretera horizontal: // x = azar // y = yposroadx // Otro caso // x = xposroady[correspondiente a su carretera]; // y = azar; Se gestiona el movimiento del vehiculo, teniendo en cuenta que debe de guardar una distancia de seguridad con respecto a los demas y que no puede haber choques en los i identifica el vehiculo que se va a mover en la matriz de vehiculos public void movevehicle(int i) { // Tener en cuenta: // - Obtencion del desplazamiento del vehiculo considerando la cte. velocidad

11 Práctica 1 - Programación Concurrente 3º I.S. Pág: 11/15 // como maximo el vehiculo se desplaza 10 en el movimiento actual // Si carretera horizontal // dx = max(-10, -SPEED azar); // Si carretera vertical // dy = min(10, SPEED azar); // - La posicion final de los vehiculos tiene que // contemplar situaciones de fuera de la carretera: // Dimension d = size(); // // Si es una carretera horizontal // Si x < 0 O x > d.width Entonces x = d.width - 10 azar // Si es una carretera vertical // Si y > d.height O y < 0 Entonces y = 10 azar // - Antes de finalizar hay que repintar el panel con repaint(); Responde ante un click con el raton dentro del panel de simulacion seleccionando como vehiculo picado aquel que estas mas cercano al lugar del click. A dicho vehiculo vehiclepicked le pone las correspondietes coordenadas x,y donde esta posicionado el raton (par.entrada). Previamente se guarda las coordenadas x,y del vehiculo seleccionado como picado, por si finalmente tiene que se restaurado a dicha evt objeto evento x posicion x del click del raton y posicion y del click del java.awt.component#mousedown(java.awt.event, int, int) public boolean mousedown(event evt, int x, int y) { repaint(); return true; Responde ante un arrastre con el raton dentro del panel de simulacion sobre el vehiculo picado, estableciendo como posicion del vehiculo la posicion del raton x,y evt objeto evento x posicion x del raton y posicion y del java.awt.component#mousedrag(java.awt.event, int, int) public boolean mousedrag(event evt, int x, int y) { repaint(); return true; Responde cuando se suelta el click del raton despues del arrastre sobre el vehiculo picado, incorporando el vehiculo picado a la simulacion con el resto de evt objeto evento x posicion x del raton

12 Práctica 1 - Programación Concurrente 3º I.S. Pág: 12/15 y posicion y del java.awt.component#mouseup(java.awt.event, int, int) public boolean mouseup(event evt, int x, int y) { // A tener en cuenta: // - en principio la posicion del vehiculo es la del raton x,y de entrada // - se comprueba si el vehiculo queda dentro de alguna carretera // si es asi se le cumplimenta al vehiculo sus atributos // correspondientes: carretera, alto, ancho y posicion // centrada correspondientemente en la carretera // - si no queda dentro de ninguna carretera se deja en la posicion // que tenia antes del picado // finalmente establece que ya no hay ningun vehiculo picado repaint(); return true; Variables y Metodos para la gestion de graficos private Image offscreen; private Dimension offscreensize; private Graphics offgraphics; final Color selectcolor = Color.pink; final Color edgecolor = Color.black; final Color vehiclecolor = new Color(250, 220, 100); Pinta un vehiculo en la g objeto grafico n vehiculo a pintar public void paintvehicle(graphics g, Vehicle n) { int x = (int) n.x; int y = (int) n.y; g.setcolor((n == vehiclepicked)? selectcolor : vehiclecolor); int w = n.widev; int h = n.longv; g.fillrect(x - w / 2, y - h / 2, w, h); g.setcolor(color.black); g.drawrect(x - w / 2, y - h / 2, w - 1, h - 1); g.drawstring(".", x - w / 2 + 2, y + h / 2-2); Pinta las carreteras en la g objeto grafico public void paintroad(graphics g) { Dimension d = size(); int kt; g.setcolor(color.gray); for (int k = 1; k < 4; k++) { g.drawline(xposleftroady[k-1], 0, xposleftroady[k-1], yposbottomroadx); g.drawline(xposleftroady[k-1], ypostoproadx, xposleftroady[k-1], d.height);

13 Práctica 1 - Programación Concurrente 3º I.S. Pág: 13/15 g.drawline(xposrightroady[k-1], 0, xposrightroady[k-1], yposbottomroadx); g.drawline(xposrightroady[k-1], ypostoproadx, xposrightroady[k-1], d.height); if (k == 1) kt = 0; else kt = xposrightroady[k - 2]; g.drawline(kt, ypostoproadx, xposleftroady[k-1], ypostoproadx); g.drawline(kt, yposbottomroadx, xposleftroady[k-1], yposbottomroadx); g.drawline(xposrightroady[2], yposbottomroadx, d.width, yposbottomroadx); g.drawline(xposrightroady[2], ypostoproadx, d.width, ypostoproadx); Actualiza el grafico de la simulacion, pintando cada uno de sus g objeto grafico public void update(graphics g) { Dimension d = size(); if ((offscreen == null) (d.width!= offscreensize.width) (d.height!= offscreensize.height)) { offscreen = createimage(d.width, d.height); offscreensize = d; offgraphics = offscreen.getgraphics(); offgraphics.setcolor(getbackground()); offgraphics.fillrect(0, 0, d.width, d.height); // pinta carreteras paintroad(offgraphics); // pinta los coches for (int i = 0; i < nvehicules; i++) { paintvehicle(offgraphics, vehicles[i]); g.drawimage(offscreen, 0, 0, null);

14 Práctica 1 - Programación Concurrente 3º I.S. Pág: 14/15 package applet; import java.awt.; import java.applet.applet; Simulation es la clase extension de Applet que realiza la simulacion de los vehiculos. Contiene el punto de entrada a la aplicacion Applet (metodo init). Toda la simulacion la gestiona haciendo uso de los sevicios de la clase SimulationServices mediante una unica instancia de dicha clase services.simulationservices.getinstacesimulation() Gestiona todas las acciones posibles sobre el panel de la simulacion: - Finalizar: provoca un cese de la simulacion - Iniciar: reinicia la simulacion, si previamente se ha seleccionado Finalizar Contiene y gestiona a su vez la siguiente clase: - ThreadVehicle: Thread para cada uno de los vehiculos que intervienen en la DNI - Apellidos, Nombre - V1.0 - N.sesion y fecha de la sesion public class Simulation extends Applet { numero de serie de la version private static final long serialversionuid = 1L; ThreadVehicle es al clase que gestiona las Threads de vehiculos en la simulacion. La gestion basica consiste en proceder al movimiento del vehiculo, en tanto no se haya seleccionado Finalizar en el panel del Applet. public class ThreadVehicle extends Thread { numero de coches que entran en juego en la simulacion private int vehiclesnum; Variables que se consideren oportunas punto de entrada al Applet de la simulacion public void init() { // BorderLayout divide el contenedor en cinco partes: norte, sur, este, // oeste y centro setlayout(new BorderLayout()); // se crea objeto de la clase GraphPanel y se incluye la parte centro // del contenedor add("center", services.simulationservices.getinstacesimulation()); // se obtiene del parametro de entrada el numero de coches y como maximo // se toma 70 vehiclesnum = Integer.parseInt(getParameter("vehiclesNum")); vehiclesnum = Math.min(vehiclesNum, 70); // se anaden los coches al panel

15 Práctica 1 - Programación Concurrente 3º I.S. Pág: 15/15 // se inicia el movimiento de los vehiculos // se anade una panel en el sur con los botones de opciones Panel btpnl = new Panel(); add("south", btpnl); btpnl.add(new Button("Iniciar")); btpnl.add(new Button("Finalizar")); Gestiona las acciones de los eventos que pueden ocurrir en el panel: - Finalizar: provoca un cese de la simulacion - Iniciar: reinicia la simulacion, si previamente se ha seleccionado evt objeto evento arg objeto true public boolean action(event evt, Object arg) { if (((Button) evt.target).getlabel().equals("finalizar")) { // acciones para detener la simulacion else if (((Button) evt.target).getlabel().equals("iniciar")) { // acciones para reiniciar la simulacion return true;

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

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

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

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

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

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

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

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

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

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

CDI Exclusión mutua a nivel alto. conceptos

CDI Exclusión mutua a nivel alto. conceptos conceptos El concepto de usar estructuras de datos a nivel alto libera al programador de los detalles de su implementación. El programador puede asumir que las operaciones están implementadas correctamente

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

Práctica 1 - Pista de Carreras 12407 - Programación II

Práctica 1 - Pista de Carreras 12407 - Programación II 1. Introducción Práctica 1 - Pista de Carreras 12407 - Programación II En esta práctica el objetivo es implementar una matriz de adyacencia para el juego Pista de Carreras. Con tal fin, primero hay que

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 Objetos en Java

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

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

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

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

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

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

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

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

CAPÍTULO V. APLICACIÓN WEB PARA EL CONOCIMIENTO Y CONVERSIÓN DE LAS UNIDADES DE MEDIDA

CAPÍTULO V. APLICACIÓN WEB PARA EL CONOCIMIENTO Y CONVERSIÓN DE LAS UNIDADES DE MEDIDA CAPÍTULO V. APLICACIÓN WEB PARA EL CONOCIMIENTO Y CONVERSIÓN DE LAS UNIDADES DE MEDIDA 5.1. Introducción Este capítulo está destinado a la presentación de la herramienta software construida en lenguaje

Más detalles

2.3 El Mundo de Tarski. http://cursos.clavijero.edu.mx/cursos/007_cp/modulo2/contenidos/documentos/tarski.zip

2.3 El Mundo de Tarski. http://cursos.clavijero.edu.mx/cursos/007_cp/modulo2/contenidos/documentos/tarski.zip 2.3 El Mundo de Tarski El mundo de Tarski es una herramienta de software desarrollada expresamente para enseñar y mejorar la capacidad del estudiante para describir situaciones en un mundo simple utilizando

Más detalles

Ingeniería en Informática

Ingeniería en Informática Departamento de Informática Universidad Carlos III de Madrid Ingeniería en Informática Aprendizaje Automático Junio 2007 Normas generales del examen El tiempo para realizar el examen es de 3 horas No se

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

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

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

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

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

Manual de Introducción a SIMULINK

Manual de Introducción a SIMULINK Manual de Introducción a SIMULINK Autor: José Ángel Acosta Rodríguez 2004 Capítulo Ejemplo.. Modelado de un sistema dinámico En este ejemplo se realizará el modelado de un sistema dinámico muy sencillo.

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

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

Guía Práctica para el Uso del Servicio de Software Zoho CRM

Guía Práctica para el Uso del Servicio de Software Zoho CRM Guía Práctica para el Uso del Servicio de Software Zoho CRM Parte 4 Modificación de las Listas Estándar del Sistema Modificación del Menú Principal del Sistema Importación de información al Sistema Adición

Más detalles

Manual Oficina Web de Clubes (FBM)

Manual Oficina Web de Clubes (FBM) Manual Oficina Web de Clubes (FBM) INTRODUCCIÓN: La Oficina Web de Clubes de Intrafeb es la oficina virtual desde la que un club podrá realizar las siguientes operaciones durante la temporada: 1. Ver información

Más detalles

1.00 Clase 8. Datos y métodos estáticos. Datos y métodos estáticos de las clases. Campos de datos estáticos:

1.00 Clase 8. Datos y métodos estáticos. Datos y métodos estáticos de las clases. Campos de datos estáticos: 1.00 Clase 8 Datos y métodos estáticos Datos y métodos estáticos de las clases Campos de datos estáticos: Sólo una instancia de elemento de datos para toda una clase. Ninguna por objeto. Estático es un

Más detalles

Ejercicio 1 (3 puntos).-

Ejercicio 1 (3 puntos).- URJC Ingeniería Técnica de Gestión Abril 2011 Asignatura: SOFTWARE AVANZADO Normas: La prueba consta de 2 ejercicios. La máxima nota del examen es un 8. Siendo la práctica la que añade los 2 puntos que

Más detalles

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid MANUAL DE EMPRESA Modo de entrar en ÍCARO Para comenzar a subir una oferta de empleo, el acceso es a través del siguiente enlace: http://icaro.uam.es A continuación, aparecerá la página de inicio de la

Más detalles

ELO329: Diseño y Programación Orientados a Objetos 20 de Junio de 2005. Certamen Final

ELO329: Diseño y Programación Orientados a Objetos 20 de Junio de 2005. Certamen Final Certamen Final 1. Se tiene una aplicación Java que muestra dos botones. Cuando presionamos el botón de la izquierda, incrementa el número mostrado en el botón de la derecha. Cuando presionamos el botón

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

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

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos Conceptos ELO329: Diseño y Programación Orientados a Objetos 1 Paradigmas de Programación Historia: Los computadores parten cableados por hardware, Luego se introduce la programación en binario, Se desarrolla

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución

Más detalles

Tema 7. Construcción de Applets en Java

Tema 7. Construcción de Applets en Java Programación en Java Tema 7. Construcción de Applets en Java Luis Rodríguez Baena Facultad de Informática Applets Aplicación Java que se ejecuta dentro de un cliente web para ampliar las capacidades de

Más detalles

Operación Microsoft Access 97

Operación Microsoft Access 97 Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe

Más detalles

ICARO MANUAL DE LA EMPRESA

ICARO MANUAL DE LA EMPRESA ICARO MANUAL DE LA EMPRESA 1. ENTRANDO EN ICARO Para acceder al Programa ICARO tendremos que entrar en http://icaro.ual.es Figura 1 A continuación os aparecerá la página de Inicio del aplicativo ICARO.

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

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

Estimado usuario. Tabla de Contenidos

Estimado usuario. Tabla de Contenidos Estimado usuario. El motivo del presente correo electrónico es mantenerle informado de las mejoras y cambios realizados en el software Orathor (Athor/Olimpo) en su versión 5.7.041 la cual ha sido recientemente

Más detalles

Programación Java Curso 2006-1 C Draw

Programación Java Curso 2006-1 C Draw Programación Java Curso 2006-1 C Draw FIUBA Introducción: Prof.. María Feldgen Ing. Osvaldo Clúa En Java, para dibujar se usa el contexto gráfico de un componente. Según las plataformas, este contexto

Más detalles

Práctica sobre compartición de instancias remotas.

Práctica sobre compartición de instancias remotas. Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta

Más detalles

Vamos a crear nuestro primer juego en el que tendremos que coger la comida que esta protegida por los gatos

Vamos a crear nuestro primer juego en el que tendremos que coger la comida que esta protegida por los gatos Atrapa la tarta Vamos a crear nuestro primer juego en el que tendremos que coger la comida que esta protegida por los gatos Instrucciones (Controla el movimiento del ratón con las teclas flecha derecha,

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

Patrones para persistencia (I) Ingeniería del Software II

Patrones para persistencia (I) Ingeniería del Software II Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura

Más detalles

MS ACCESS BÁSICO 6 LOS INFORMES

MS ACCESS BÁSICO 6 LOS INFORMES 2010 MS ACCESS BÁSICO 6 LOS INFORMES 93 LOS INFORMES Los informes son una herramienta de Access para elaborar información, sobre los datos que deseemos, preparada para ser impresa. A partir de una base

Más detalles

Manual de Usuario de Survey Móvil. Actualización Aplicación

Manual de Usuario de Survey Móvil. Actualización Aplicación Manual de Usuario de Survey Móvil Actualización Aplicación El presente manual lo ayudará a aprender a usar la aplicación SURVEY MOVIL, entre otras cosas podra crear, actualizar y descargar encuestas desde

Más detalles

Uso del programa CALC

Uso del programa CALC Uso del programa CALC 1. Introducción. Podemos considerar una hoja de cálculo como una tabla en la que tenemos texto, números y fórmulas relacionadas entre si. La ventaja de usar dicho programa radica

Más detalles

Receta general para resolver problemas de sincronización con semáforos

Receta general para resolver problemas de sincronización con semáforos Receta general para resolver problemas de sincronización con semáforos La primera vez que te enfrentas a la tarea de implementar una solución a un problema de sincronización entre procesos, es normal que

Más detalles

Trabajar con diapositivas

Trabajar con diapositivas Trabajar con diapositivas INFORMÁTICA 4º ESO POWERPOINT Una vez creada una presentación podemos modificarla insertando, eliminando, copiando diapositivas, Insertar una nueva diapositiva.- Para insertar

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

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

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

GUÍA DE USUARIO: GOOGLE DRIVE

GUÍA DE USUARIO: GOOGLE DRIVE GUÍA DE USUARIO: GOOGLE DRIVE Google Drive es una herramienta telemática de la web 2.0 que permite el trabajo virtual de forma colaborativa. En Google Drive podemos encontrar una barra de navegación en

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

1.- INTRODUCCIÓN 2.- PARÁMETROS

1.- INTRODUCCIÓN 2.- PARÁMETROS 1.- INTRODUCCIÓN Hemos diseñado una aplicación que facilite el envío a las entidades bancarias de las de cobro por domiciliación. La entrada de esta aplicación pueden ser, tanto ficheros cuyos formatos

Más detalles

Capítulo 6. Introducción a la POO

Capítulo 6. Introducción a la POO Capítulo 6. Introducción a la POO 6. 1. Clases, Objetos y Métodos Definición La Programación Orientada a Objetos (POO) es una forma especial de programar, más cercana a cómo expresaríamos las cosas en

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS ARCHIVOS ANEXOS Son los documentos, hojas de cálculo o cualquier archivo que se anexa a las carpetas, subcarpetas, hallazgos u otros formularios de papeles de trabajo. Estos archivos constituyen la evidencia

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

MANUAL PARA EMPRESAS PRÁCTICAS CURRICULARES

MANUAL PARA EMPRESAS PRÁCTICAS CURRICULARES MANUAL PARA EMPRESAS PRÁCTICAS CURRICULARES ÍNDICE 1. Introducción... 3. Registro y Acceso... 3.1. Registro Guiado... 4.1. Registro Guiado Datos Básicos... 5.1. Registro Guiado Contactos... 6 3. Creación

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

ALGORITMICA Y PROGRAMACION POR OBJETOS I

ALGORITMICA Y PROGRAMACION POR OBJETOS I ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 2 Definiendo situaciones y manejando casos Marcela Hernández Hoyos Qué vamos a aprender en este nivel: Diferencia entre clase y objeto Modelar características

Más detalles

Uso de excepciones en Java

Uso de excepciones en Java Uso de excepciones en Java En Java, cuando se produce un error en un método, se lanza un objeto Throwable. Cualquier método que haya llamado al método puede capturar la excepción y tomar las medidas que

Más detalles

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10 CONCEPTOS BASICOS Febrero 2003 Página - 1/10 EL ESCRITORIO DE WINDOWS Se conoce como escritorio la zona habitual de trabajo con windows, cuando iniciamos windows entramos directamente dentro del escritorio,

Más detalles

Concurrencia en Java

Concurrencia en Java Concurrencia en Java Herramientas proporcionadas por Java La Máquina Virtual (JVM) Pedro Pablo Gómez Martín La clase Thread Clase principal con la que conseguir concurrencia. La llamada a su método start()

Más detalles

MANUAL DE PRACTICUM12 PARA CENTROS EDUCATIVOS ÁMBITO MÁSTER

MANUAL DE PRACTICUM12 PARA CENTROS EDUCATIVOS ÁMBITO MÁSTER MANUAL DE PRACTICUM12 PARA CENTROS EDUCATIVOS ÁMBITO MÁSTER Centros educativos de la Comunidad de Madrid que deseen ser centros de prácticas de los alumnos del Máster en Profesorado de ESO y Bachillerato,

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

port@firmas V.2.3.1 Manual de Portafirmas V.2.3.1

port@firmas V.2.3.1 Manual de Portafirmas V.2.3.1 Manual de Portafirmas V.2.3.1 1 1.- Introducción 2.- Acceso 3.- Interfaz 4.- Bandejas de peticiones 5.- Etiquetas 6.- Búsquedas 7.- Petición de firma 8.- Redactar petición 9.- Firma 10.- Devolución de

Más detalles

19 4.1.1.0 4 04/05/2009

19 4.1.1.0 4 04/05/2009 Soluciones Informáticas Descripción: Como utilizar la Agenda de Visitas Objetivos: Al finalizar este tutorial el usuario será capaz de utilizar la Agenda de Visitas con sus diferentes opciones: asignar

Más detalles

Programación Avanzada Ingeniería Civil en Computación

Programación Avanzada Ingeniería Civil en Computación Interfaces Gráficas de Usuario usando Swing Prof. Federico Meza Programación Avanzada Ingeniería Civil en Computación Junio 2007 Programación Avanzada (ICC) Swing GUI s Junio 2007 1 / 13 GUI - Graphical

Más detalles

Trey-SAT Pag. 1. Manual de usuario

Trey-SAT Pag. 1. Manual de usuario Trey-SAT Pag. 1 Manual de usuario Trey-SAT Pag. 2 Modulo SAT : Servicio de asistencia técnica TREY-SAT es un potente módulo para el servicio de asistencia técnica, completamente integrado a la Gestión

Más detalles

Contraloría General de la República

Contraloría General de la República PREGUNTAS FRECUENTES SICA 1. Cuál es el procedimiento para solicitar el acceso al SICA? Su Unidad Orgánica (UO) deberá enviar un correo al Departamento de Operaciones (L526) indicando los siguientes datos:

Más detalles

MODELO DE IMPLEMENTACIÓN

MODELO DE IMPLEMENTACIÓN Capítulo 4 MODELO DE IMPLEMENTACIÓN 4.1 Introducción El Modelo de implementación utiliza el resultado del Modelo de diseño para generar el código final en el lenguaje de programación elegido [10]. Aunque

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

Ejercicios - Persistencia en Android: ficheros y SQLite

Ejercicios - Persistencia en Android: ficheros y SQLite Ejercicios - Persistencia en Android: ficheros y SQLite Índice 1 Uso de ficheros (0.5 puntos)...2 2 Persistencia con ficheros (0.5 puntos)...3 3 Base de datos: SQLiteOpenHelper (0.5 puntos)... 3 4 Base

Más detalles

TEMA 3. CLASES. EJERCICIOS

TEMA 3. CLASES. EJERCICIOS TEMA 3. CLASES. EJERCICIOS EJERCICIO 1 Considere la siguiente clase: public class IdentifyMyParts { public static int x = 7; public int y = 3; a. Cuáles son las variables de clase? b. Cuáles son las variables

Más detalles

Manual Usuario Manual Usuario

Manual Usuario Manual Usuario Manual Usuario Con la colaboración de : TABLA DE CONTENIDOS 1 Introducción... 7 2 Consideraciones generales... 8 2.1 Perfiles de acceso... 8 2.1.1 Administrador Intress... 8 2.1.2 Administrador entidad...

Más detalles

Imprimir códigos de barras

Imprimir códigos de barras Imprimir códigos de barras Al igual que en Abies 1, podemos definir el papel de etiquetas que vamos a utilizar. Se nos dan tres tipos de etiquetas ya creadas, que podemos modificar o eliminar, para lo

Más detalles

WINDOWS 2008 5: TERMINAL SERVER

WINDOWS 2008 5: TERMINAL SERVER WINDOWS 2008 5: TERMINAL SERVER 1.- INTRODUCCION: Terminal Server proporciona una interfaz de usuario gráfica de Windows a equipos remotos a través de conexiones en una red local o a través de Internet.

Más detalles

MANUAL DE USUARIO PIFTE - ESPAÑA

MANUAL DE USUARIO PIFTE - ESPAÑA Programa Iberoamericano de Formación Técnica Especializada PIFTE-ESPAÑA MANUAL DE USUARIO PIFTE - ESPAÑA 1. Acceso a la información de las Convocatorias de PIFTE-España 2. Procedimiento para solicitar

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

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

ENTORNO DE TRABAJO DE WORD 2007

ENTORNO DE TRABAJO DE WORD 2007 ENTORNO DE TRABAJO DE WORD 2007 Esta nueva versión de Office no contiene las 4 barras que son comunes a versiones anteriores, en esta ocasión solo contiene una barra llamada barra de título, una banda

Más detalles

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP Práctica 9 GESTIÓN Y UTILIZACIÓN DE REDES LOCALES Curso 2001/2002 TCP/IP: protocolo TCP Introducción Como se ha comentado en la práctica anterior, el protocolo UDP es muy sencillo de implementar, pero

Más detalles

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I

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