El documento presenta 4 programas escritos en Java que demuestran el uso de hilos concurrentes y paralelos. El primer programa crea una ventana gráfica simple que muestra la palabra "HOLA". Los programas 2 y 3 imprimen cadenas de texto usando hilos con herencia y la interfaz Runnable. El programa 4 establece prioridades y atributos como "daemon" en hilos creados con herencia e interfaz.
El documento contiene varios programas de Java que calculan áreas de triángulos, convierten temperaturas, calculan promedios y realizan operaciones matemáticas básicas. Los programas utilizan entrada de usuario, parseo de cadenas, asignación de variables y salida de resultados para demostrar conceptos básicos de programación en Java.
Los documentos presentan varios ejemplos de código Java que incluyen clases, métodos main, variables, operadores, condicionales if-else, ciclos for y while, arrays unidimensionales y bidimensionales, y manejo de excepciones e ingreso de datos por medio de JOptionPane. Los ejemplos cubren temas básicos de programación como entrada y salida de datos, procesamiento de cadenas y números, y estructuras de control de flujo.
El documento describe las especificaciones para desarrollar un programa que simule el interfaz de entrada de una tarjeta de red. La entrada se implementa mediante dos buffers: un primer buffer de 4 tramas y un segundo buffer de espacio ilimitado con 3 puertos. Cuando el primer buffer se llena, envía las 2 tramas de mayor prioridad al segundo buffer. Se creará una clase para instanciar el sistema de entrada y enviar 6 tramas.
Este documento proporciona una introducción a la biblioteca SciPy para Python. SciPy es una biblioteca de herramientas numéricas que incluye módulos para optimización, integración, ecuaciones diferenciales, álgebra lineal y más. El documento explica algunas de las funciones básicas de SciPy como crear arrays, operaciones matriciales y funciones especiales como la función gamma.
El documento describe el desarrollo de un sistema para gestionar partes de un taller mecánico, incluyendo la creación de un menú para crear, listar, mostrar y eliminar partes asociados a las matrículas de los coches. Se utilizará la clase Lector para leer la entrada por teclado y se creará un diagrama UML.
Esta es la presentación utilizada en curso de introducción a Python para alumnos de Ingeniería, se asume que el lector tiene ya algo de experiencia en programación.
El documento presenta 4 ejercicios de programación concurrente en Java que involucran la entrada de datos desde el teclado, el uso de funciones por valor y referencia, y el manejo de excepciones. Los ejercicios capturan datos de entrada, realizan operaciones matemáticas como sumas y restas, y demuestran la diferencia entre pasar parámetros por valor y referencia. El último ejercicio muestra el uso de bloques try-catch para manejar excepciones al convertir una cadena a entero.
El documento contiene varios programas de Java que calculan áreas de triángulos, convierten temperaturas, calculan promedios y realizan operaciones matemáticas básicas. Los programas utilizan entrada de usuario, parseo de cadenas, asignación de variables y salida de resultados para demostrar conceptos básicos de programación en Java.
Los documentos presentan varios ejemplos de código Java que incluyen clases, métodos main, variables, operadores, condicionales if-else, ciclos for y while, arrays unidimensionales y bidimensionales, y manejo de excepciones e ingreso de datos por medio de JOptionPane. Los ejemplos cubren temas básicos de programación como entrada y salida de datos, procesamiento de cadenas y números, y estructuras de control de flujo.
El documento describe las especificaciones para desarrollar un programa que simule el interfaz de entrada de una tarjeta de red. La entrada se implementa mediante dos buffers: un primer buffer de 4 tramas y un segundo buffer de espacio ilimitado con 3 puertos. Cuando el primer buffer se llena, envía las 2 tramas de mayor prioridad al segundo buffer. Se creará una clase para instanciar el sistema de entrada y enviar 6 tramas.
Este documento proporciona una introducción a la biblioteca SciPy para Python. SciPy es una biblioteca de herramientas numéricas que incluye módulos para optimización, integración, ecuaciones diferenciales, álgebra lineal y más. El documento explica algunas de las funciones básicas de SciPy como crear arrays, operaciones matriciales y funciones especiales como la función gamma.
El documento describe el desarrollo de un sistema para gestionar partes de un taller mecánico, incluyendo la creación de un menú para crear, listar, mostrar y eliminar partes asociados a las matrículas de los coches. Se utilizará la clase Lector para leer la entrada por teclado y se creará un diagrama UML.
Esta es la presentación utilizada en curso de introducción a Python para alumnos de Ingeniería, se asume que el lector tiene ya algo de experiencia en programación.
El documento presenta 4 ejercicios de programación concurrente en Java que involucran la entrada de datos desde el teclado, el uso de funciones por valor y referencia, y el manejo de excepciones. Los ejercicios capturan datos de entrada, realizan operaciones matemáticas como sumas y restas, y demuestran la diferencia entre pasar parámetros por valor y referencia. El último ejercicio muestra el uso de bloques try-catch para manejar excepciones al convertir una cadena a entero.
El documento proporciona una introducción a la biblioteca estándar de Python. Explica que incluye más de 300 módulos agrupados en categorías como cadenas, tipos de datos, números, archivos, persistencia, compresión, formatos, criptografía, sistema operativo, comunicación e Internet. También describe algunos módulos específicos como sys, time, re, StringIO, datetime y os, entre otros.
El documento describe el rompecabezas de las Torres de Hanói, donde discos de diferentes tamaños deben ser movidos de una torre a otra siguiendo reglas específicas. Luego presenta el código de un programa en Java que implementa este rompecabezas usando pilas para representar las torres y movimientos recursivos para resolverlo.
4. Programación con arrays, funciones, y objetos definidos por el usuarioLaura Folgado Galache
Ciclo: Desarrollo de Aplicaciones Web
Módulo: Desarrollo Web en Entorno Cliente
Unidad 4. Programación con arrays, funciones, y objetos definidos por el usuario
El documento presenta un ejemplo de sincronización de hilos en Java. Se propone crear una clase Contenedor que actúe como buffer para almacenar un número entero de forma que sólo un hilo pueda escribir o borrar el valor a la vez. Se implementan clases ThreadEscribir y ThreadBorrar para gestionar los hilos y una clase TestSincroThreads con el método main para iniciarlos.
Este documento presenta la tarea de la sesión 8 de un curso de programación. Incluye dos ejercicios: 1) interpretar un programa Java que crea objetos de la clase Usuario con diferentes constructores, y 2) interpretar y ejecutar un programa Java que crea objetos de la clase Luz utilizando diferentes constructores. También presenta la lista de integrantes del curso.
Este documento describe un programa que genera y resuelve laberintos aleatorios. Define constantes para representar paredes, pasillos, celdas vacías y visitadas en una matriz que modela el laberinto. Inicializa parámetros como el tamaño del laberinto y colores a partir de los parámetros del applet. Genera un laberinto inicial con celdas separadas y luego elimina paredes aleatoriamente si esto no causa bucles. Resuelve el laberinto comenzando en la celda (1,1).
Este documento presenta los conceptos básicos relacionados con los tipos de datos abstractos (TDA) pila y cola. Explica las operaciones, implementaciones y ejemplos de uso de pilas y colas mediante listas, vectores y referencias.
El documento describe una aplicación para gestionar información de alumnos, incluyendo altas, bajas y modificaciones. La interfaz tendrá tres pestañas y los datos se almacenarán en una tabla de una base de datos. Se definen las clases Alumno y Dirección para almacenar los datos, y la clase ConexionDDBB para conectarse a la base de datos.
El documento explica cómo crear un proyecto en NetBeans para desarrollar programas Java de forma secuencial y condicional. Se describen los pasos para crear una carpeta, abrir NetBeans, crear un nuevo proyecto y seleccionar su ubicación. Luego se presentan 5 ejemplos de programas Java sencillos que ilustran el uso de estructuras secuenciales, de entrada y salida de datos, y condicionales simples y dobles.
Este documento introduce las series de Fourier. 1) Estas surgieron históricamente al resolver problemas de ecuaciones en derivadas parciales mediante el método de separación de variables. 2) Aunque inicialmente se pensó que no era posible expresar funciones generales como suma de senos y cosenos, Fourier demostró esta posibilidad mediante la recopilación de datos. 3) El documento procede a definir las series de Fourier y establecer sus propiedades de convergencia, diferenciación e integración.
Este documento presenta un curso de introducción a Python. Explica que Python es un lenguaje de programación interpretado, tipado dinámicamente y fuertemente tipado que es multiplataforma y orientado a objetos. También cubre diferentes tipos de datos, variables, funciones, condiciones, bucles, manejo de errores y programación funcional en Python.
Este documento resume las nuevas características de Java 8, incluyendo interfaces funcionales, expresiones lambda, el Stream API y el nuevo motor de JavaScript Nashorn. Las interfaces funcionales permiten implementar métodos de una sola línea, mientras que las expresiones lambda proporcionan una forma más concisa de escribir código anónimo. El Stream API facilita el procesamiento de datos de forma declarativa mediante cadenas de operaciones, y Nashorn permite ejecutar código JavaScript directamente en la JVM.
Este documento presenta 4 programas desarrollados con monitores en Java para ilustrar conceptos de programación concurrente y paralela. El primer programa simula retiros y depósitos en un cajero automático usando monitores. El segundo programa es similar pero usa semáforos en lugar de monitores. El tercer programa ilustra el uso de un monitor para incrementar y decrementar un valor de forma sincronizada. El cuarto programa incrementa un contador de 1 a 10 de forma sincronizada usando 2 hilos y un monitor.
Este documento describe T2, una herramienta para el testeo automático de unidades en Java. T2 genera secuencias aleatorias de llamadas a métodos y asignaciones de atributos para probar una clase. Los usuarios pueden agregar especificaciones "in-code" y modelos de aplicación para guiar la generación de pruebas. Se ha demostrado que T2 encuentra errores de manera efectiva con un bajo costo.
Python es un lenguaje de programación dinámico e interpretado que ofrece tipado dinámico, fuerte tipado, flexibilidad y portabilidad. Sus principales características incluyen una sintaxis limpia y legible similar al pseudocódigo, una amplia biblioteca estándar y ser multiplataforma. Python se puede utilizar para el desarrollo web, bases de datos, software, juegos, bioinformática, física y educación.
El documento presenta tres problemas de programación en Java que involucran ordenar números de forma ascendente, resolver ecuaciones de segundo grado, y encontrar condiciones para capturar más Pokémon dependiendo de la hora del día. Cada problema contiene el código Java correspondiente para implementar la lógica requerida.
1. El documento explica cómo usar diccionarios en Python, incluyendo cómo definirlos, agregar elementos, acceder a valores mediante claves y recorrerlos. 2. Los diccionarios almacenan datos no ordenados mediante claves únicas asociadas a valores. 3. Se pueden usar diccionarios para crear bases de datos simples donde la clave identifica un elemento y el valor contiene sus datos.
Peter the Great began construction of St. Petersburg in 1703 to serve as Russia's new capital and make Russia more European. He hired European architects to design grand government buildings, houses, and the Kunstkamera museum modeled after European cities. By 1713, the Senate had moved to St. Petersburg, located on the sea as Peter admired water travel. The uniform Twelve Colleges administrative complex and other landmarks like the Menshikov Palace and Summer Palace were built during this period to establish the new capital.
The document discusses a mobile English language learning project for disadvantaged youth in the Dharavi slum in Mumbai, India. It aims to examine how a mobile learning resource can provide sustainable support for participants' English language learning in the program. Preliminary observations found daily use of mobile resources aligned with classes, sharing with others, but challenges in impact measurement and technical issues for some. The action research methodology employs a cyclical approach to find more sustainable solutions through participant actions and reflection. External validity of findings is debated given the specific research context.
El documento proporciona una introducción a la biblioteca estándar de Python. Explica que incluye más de 300 módulos agrupados en categorías como cadenas, tipos de datos, números, archivos, persistencia, compresión, formatos, criptografía, sistema operativo, comunicación e Internet. También describe algunos módulos específicos como sys, time, re, StringIO, datetime y os, entre otros.
El documento describe el rompecabezas de las Torres de Hanói, donde discos de diferentes tamaños deben ser movidos de una torre a otra siguiendo reglas específicas. Luego presenta el código de un programa en Java que implementa este rompecabezas usando pilas para representar las torres y movimientos recursivos para resolverlo.
4. Programación con arrays, funciones, y objetos definidos por el usuarioLaura Folgado Galache
Ciclo: Desarrollo de Aplicaciones Web
Módulo: Desarrollo Web en Entorno Cliente
Unidad 4. Programación con arrays, funciones, y objetos definidos por el usuario
El documento presenta un ejemplo de sincronización de hilos en Java. Se propone crear una clase Contenedor que actúe como buffer para almacenar un número entero de forma que sólo un hilo pueda escribir o borrar el valor a la vez. Se implementan clases ThreadEscribir y ThreadBorrar para gestionar los hilos y una clase TestSincroThreads con el método main para iniciarlos.
Este documento presenta la tarea de la sesión 8 de un curso de programación. Incluye dos ejercicios: 1) interpretar un programa Java que crea objetos de la clase Usuario con diferentes constructores, y 2) interpretar y ejecutar un programa Java que crea objetos de la clase Luz utilizando diferentes constructores. También presenta la lista de integrantes del curso.
Este documento describe un programa que genera y resuelve laberintos aleatorios. Define constantes para representar paredes, pasillos, celdas vacías y visitadas en una matriz que modela el laberinto. Inicializa parámetros como el tamaño del laberinto y colores a partir de los parámetros del applet. Genera un laberinto inicial con celdas separadas y luego elimina paredes aleatoriamente si esto no causa bucles. Resuelve el laberinto comenzando en la celda (1,1).
Este documento presenta los conceptos básicos relacionados con los tipos de datos abstractos (TDA) pila y cola. Explica las operaciones, implementaciones y ejemplos de uso de pilas y colas mediante listas, vectores y referencias.
El documento describe una aplicación para gestionar información de alumnos, incluyendo altas, bajas y modificaciones. La interfaz tendrá tres pestañas y los datos se almacenarán en una tabla de una base de datos. Se definen las clases Alumno y Dirección para almacenar los datos, y la clase ConexionDDBB para conectarse a la base de datos.
El documento explica cómo crear un proyecto en NetBeans para desarrollar programas Java de forma secuencial y condicional. Se describen los pasos para crear una carpeta, abrir NetBeans, crear un nuevo proyecto y seleccionar su ubicación. Luego se presentan 5 ejemplos de programas Java sencillos que ilustran el uso de estructuras secuenciales, de entrada y salida de datos, y condicionales simples y dobles.
Este documento introduce las series de Fourier. 1) Estas surgieron históricamente al resolver problemas de ecuaciones en derivadas parciales mediante el método de separación de variables. 2) Aunque inicialmente se pensó que no era posible expresar funciones generales como suma de senos y cosenos, Fourier demostró esta posibilidad mediante la recopilación de datos. 3) El documento procede a definir las series de Fourier y establecer sus propiedades de convergencia, diferenciación e integración.
Este documento presenta un curso de introducción a Python. Explica que Python es un lenguaje de programación interpretado, tipado dinámicamente y fuertemente tipado que es multiplataforma y orientado a objetos. También cubre diferentes tipos de datos, variables, funciones, condiciones, bucles, manejo de errores y programación funcional en Python.
Este documento resume las nuevas características de Java 8, incluyendo interfaces funcionales, expresiones lambda, el Stream API y el nuevo motor de JavaScript Nashorn. Las interfaces funcionales permiten implementar métodos de una sola línea, mientras que las expresiones lambda proporcionan una forma más concisa de escribir código anónimo. El Stream API facilita el procesamiento de datos de forma declarativa mediante cadenas de operaciones, y Nashorn permite ejecutar código JavaScript directamente en la JVM.
Este documento presenta 4 programas desarrollados con monitores en Java para ilustrar conceptos de programación concurrente y paralela. El primer programa simula retiros y depósitos en un cajero automático usando monitores. El segundo programa es similar pero usa semáforos en lugar de monitores. El tercer programa ilustra el uso de un monitor para incrementar y decrementar un valor de forma sincronizada. El cuarto programa incrementa un contador de 1 a 10 de forma sincronizada usando 2 hilos y un monitor.
Este documento describe T2, una herramienta para el testeo automático de unidades en Java. T2 genera secuencias aleatorias de llamadas a métodos y asignaciones de atributos para probar una clase. Los usuarios pueden agregar especificaciones "in-code" y modelos de aplicación para guiar la generación de pruebas. Se ha demostrado que T2 encuentra errores de manera efectiva con un bajo costo.
Python es un lenguaje de programación dinámico e interpretado que ofrece tipado dinámico, fuerte tipado, flexibilidad y portabilidad. Sus principales características incluyen una sintaxis limpia y legible similar al pseudocódigo, una amplia biblioteca estándar y ser multiplataforma. Python se puede utilizar para el desarrollo web, bases de datos, software, juegos, bioinformática, física y educación.
El documento presenta tres problemas de programación en Java que involucran ordenar números de forma ascendente, resolver ecuaciones de segundo grado, y encontrar condiciones para capturar más Pokémon dependiendo de la hora del día. Cada problema contiene el código Java correspondiente para implementar la lógica requerida.
1. El documento explica cómo usar diccionarios en Python, incluyendo cómo definirlos, agregar elementos, acceder a valores mediante claves y recorrerlos. 2. Los diccionarios almacenan datos no ordenados mediante claves únicas asociadas a valores. 3. Se pueden usar diccionarios para crear bases de datos simples donde la clave identifica un elemento y el valor contiene sus datos.
Peter the Great began construction of St. Petersburg in 1703 to serve as Russia's new capital and make Russia more European. He hired European architects to design grand government buildings, houses, and the Kunstkamera museum modeled after European cities. By 1713, the Senate had moved to St. Petersburg, located on the sea as Peter admired water travel. The uniform Twelve Colleges administrative complex and other landmarks like the Menshikov Palace and Summer Palace were built during this period to establish the new capital.
The document discusses a mobile English language learning project for disadvantaged youth in the Dharavi slum in Mumbai, India. It aims to examine how a mobile learning resource can provide sustainable support for participants' English language learning in the program. Preliminary observations found daily use of mobile resources aligned with classes, sharing with others, but challenges in impact measurement and technical issues for some. The action research methodology employs a cyclical approach to find more sustainable solutions through participant actions and reflection. External validity of findings is debated given the specific research context.
El documento describe las diferentes instalaciones y actividades en el C.P San Félix, incluyendo aulas para audición, informática, inglés y música, una ludoteca, gimnasio, visita de la Princesa Leticia, reunión de padres y radio escolar, así como patios para primaria e infantil.
El documento presenta un cronograma de 4 semestres. El primer semestre se enfoca en el inicio de una amistad, mientras que los siguientes semestres no proporcionan detalles sobre su contenido.
Crusaders returning from the East increased European desire for luxury goods from Asia like silk and spices. Marco Polo's travels to China in 1275 further fueled demand. As Europe's population grew and urbanized, demand increased for necessities like salt and luxuries, generating interest in expanding trade. Isabella and Ferdinand's marriage united Spain, allowing them to fund Columbus's 1492 voyage seeking a trade route to Asia that instead landed in the Americas, claiming the land for Spain.
El documento describe cómo desarrollar topologías en Storm utilizando Java. Explica cómo definir spouts y bolts, así como cómo conectarlos para crear una topología completa. Proporciona un ejemplo simple de una topología Hola Mundo con un spout que genera cadenas aleatorias y un bolt que cuenta las apariciones de la cadena "Hola Mundo". También muestra cómo ejecutar la topología localmente y en un clúster de Storm.
El documento presenta 5 ejemplos de programas Java sencillos con estructuras secuenciales y selectivas simples. El primer ejemplo muestra datos de usuario. El segundo calcula el área de un triángulo. El tercero convierte una cantidad de soles a dólares. El cuarto calcula la sumatoria de números hasta un valor n. Y el quinto calcula el precio neto de un artículo según si la venta es al contado o a plazos.
El documento presenta 5 ejemplos de programas Java sencillos con estructuras secuenciales y selectivas simples. El primer ejemplo muestra datos de usuario. El segundo calcula el área de un triángulo. El tercero convierte una cantidad de soles a dólares. El cuarto calcula la sumatoria de números hasta un valor n. Y el quinto calcula el precio neto de un artículo según si la venta es al contado o a plazos.
El documento presenta ejemplos de programación concurrente en Java utilizando hilos, interfaces, herencia, sobrecarga de métodos y matrices. Incluye ejemplos de creación e implementación de hilos, interfaces, clases heredadas, métodos sobrecargados y operaciones con matrices como mostrar y recorrer arrays multidimensionales. El objetivo es mostrar diferentes conceptos básicos de programación concurrente en Java a través de pequeños ejemplos prácticos.
El documento presenta ejemplos de programación concurrente en Java utilizando hilos, interfaces, herencia, sobrecarga de métodos y matrices. Explica cómo crear e iniciar hilos, implementar interfaces, heredar de clases superiores, sobrecargar métodos y trabajar con matrices multidimensionales.
El documento contiene varios programas de Java que calculan áreas de triángulos, convierten temperaturas, calculan promedios y realizan operaciones matemáticas básicas. Los programas utilizan entrada de usuario, parseo de cadenas, asignación de variables y salida de resultados para demostrar conceptos básicos de programación en Java.
La clase GuessANumber extiende Thread y adivina un número aleatorio entre 1 y 100. El programa ThreadClassDemo crea varios objetos GuessANumber y los ejecuta en hilos separados, demostrando el uso de métodos como start(), join(), setPriority(), y setDaemon().
Reporte de grafos con semagforos de 3,3,4 y 6 procesosAntares Zehcnas
El documento describe tres grafos de procesos con semáforos implementados en Java. El primer grafo tiene 3 procesos y 5 semáforos binarios. El segundo grafo tiene también 3 procesos pero con 6 semáforos binarios. El tercer grafo tiene 4 procesos y 5 semáforos binarios. Cada grafo implementa los procesos y semáforos como clases separadas y ejecuta los procesos concurrentemente usando hilos.
El documento define encapsulamiento, abstracción, polimorfismo e herencia. El encapsulamiento agrupa elementos relacionados para aumentar la cohesión. La abstracción permite modelar la realidad seleccionando características relevantes. El polimorfismo permite que objetos distintos compartan el mismo nombre de método. La herencia permite compartir y extender comportamiento sin reimplementarlo, agrupando objetos en clases.
Este documento describe las estructuras de datos de pilas y colas. Explica que las pilas siguen el principio LIFO (último en entrar, primero en salir) y las colas siguen el principio FIFO (primero en entrar, primero en salir). También presenta implementaciones de pilas y colas estáticas en Java y C usando vectores, y menciona que las estructuras dinámicas usan listas enlazadas.
El documento define conceptos de programación orientada a objetos como encapsulamiento, abstracción, polimorfismo e herencia. Explica que el encapsulamiento agrupa elementos de una entidad y aumenta la cohesión del sistema. La abstracción permite modelar la realidad seleccionando características relevantes. El polimorfismo permite que objetos compartan comportamientos con el mismo nombre. La herencia permite compartir y extender comportamiento sin reimplementarlo, agrupando objetos en clases.
El documento describe los diferentes elementos de una interfaz gráfica de usuario como etiquetas, campos de texto, botones, menús de opciones, listas y áreas de texto. Explica los diferentes constructores para crear cada elemento y muestra ejemplos de código para ilustrar su uso.
El documento presenta varios ejemplos de código Java que muestran el uso de excepciones, polimorfismo, interfaces, clases abstractas, cadenas y concurrencias. Se definen clases, métodos y se llaman métodos para probar el comportamiento del código.
Un thread es un proceso ligero o tarea que se ejecuta dentro de un programa. Pueden existir múltiples threads ejecutándose simultáneamente. Los threads comparten los recursos del programa y cada uno tiene un flujo secuencial de control. Existen dos métodos para crear threads en Java: extendiendo la clase Thread e implementando la interfaz Runnable.
Un thread es un proceso ligero o tarea que se ejecuta dentro de un programa. Pueden existir múltiples threads ejecutándose simultáneamente. Los threads comparten los recursos del programa y cada uno tiene un flujo secuencial de control. Existen dos métodos para crear threads en Java: extendiendo la clase Thread e implementando la interfaz Runnable.
El documento presenta un programa Java que lee números binarios de entrada y verifica que solo contengan los dígitos 0 y 1, lanzando una excepción en caso contrario. También incluye clases para realizar operaciones como suma, resta, complemento a 1 y complemento a 2 de números binarios.
Este código Java genera un arreglo de números aleatorios de un tamaño especificado por el usuario, lo muestra, y luego ordena el arreglo usando el método shellSort. ShellSort funciona comparando elementos distantes en el arreglo y realizando intercambios cuando se encuentran fuera de orden, reduciendo progresivamente la distancia entre los elementos comparados con cada pasada. El código muestra el arreglo después de cada intercambio para ilustrar el proceso de ordenamiento.
El documento contiene varios ejercicios sobre el uso de hilos en Java. El primer ejercicio crea tres hilos que imprimen su nombre después de un retardo aleatorio. El segundo ejercicio muestra cómo crear un hilo para actualizar un contador en un applet Java. Los ejercicios posteriores presentan ejemplos más complejos de hilos para simular cajeras atendiendo clientes y animales compitiendo en una carrera.
Este documento presenta varios ejemplos de código Java para la resolución de problemas matemáticos y lógicos comunes. Incluye programas para calcular el área de un triángulo, determinar el número menor entre dos valores ingresados, imprimir tablas de potencias y realizar cambio con monedas de diferentes valores. Explica el uso de bucles, condicionales y métodos recursivos para la resolución algorítmica de problemas.
1. BENEMERITA UNIVERSIDAD
AUTONOMA DE PUEBLA
FACULTAD DE CIENCIAS
DE LA COMPUTACION
PROGRAMACION CONCURRENTE Y PARALELA
MONITORES
2. LEZAMA SANCHEZ ANA LAURA
VALENCIA TOXQUI HUMBERTO
INTRODUCCION
El siguiente reporte describe los programas presentados el 20 de enero de
2012
DESARROLLO
1.-Programa que imprime la palabra HOLA pero en una ventana grafica usando
el paquete que importa los componentes graficos import javax.swing.*; y
declarando la clase hola que implementa una ventana principal sencilla que
contiene una etiqueta.
Código:
import javax.swing.*;
//seccion creacion de la clase ventanal
public class hola extends JFrame
{
private JLabel label1;
public hola(){
setLayout(null);
label1=new JLabel("HOLA");
label1.setBounds(100,100,300,30);
3. add(label1);
}
public static void main(String args[])
{
//area de definicion de propiedades del objeto
hola hola1=new hola();
hola1.setBounds(10,10,300,300);
hola1.setVisible(true);
}
}
Pantalla de la corrida:
***********************************************************
4. 2.-El programa a) imprime el grafo del ejercicio elaborado en clase, con las
condiciones de Bernstein, este primero es la clase Grafohilo con herencia y
usando 5 hilos, uno por cada nodo del grafo y la instrucción sleep,el programa
b) imprime lo mismo, usa el mismo número de hilos y sleep, pero usando
Runnable(interfaz)
Gráficamente el grafo quedo de la siguiente forma:
S1 S3
S2
S4
S5
a)Codigo(herencia)
//con herencia
class Grafohilo extends Thread
{
String palabra;
public int duerme;
8. t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
b)Salida
******************************************************
3.-Los siguientes programas:
a) Empezando a usar hilos con herencia :programa que lanza 2 hilos y
hace que se imprima 10 veces la palabra hiloUno(siendo este el primer hilo) y
10 veces la palabra hiloDos(siendo este el segundo hilo)
código
class ThreadConHerencia extends Thread
{
String palabra;
public ThreadConHerencia (String _palabra)
9. {
palabra =_palabra;
}
public void run()
{
for (int i=0; i<10; i++)
System.out.print (palabra);
}
public static void main(String[] args)
{
Thread a = new ThreadConHerencia ("hiloUno");
Thread b = new ThreadConHerencia ("hiloDos");
a.start();
b.start();
System.out.println ("Fin del hilo principal");
}
}
Salida
***************************************************************
b) Empezando a usar hilos con interfaz : programa con Runnable que lanza 2
hilos y hace que se imprima 10 veces la palabra hiloUno(siendo este el primer
hilo) y 10 veces la palabra hiloDos(siendo este el segundo hilo).
10. Código:
public class ThreadConRunnable implements Runnable
{
String palabra;
public ThreadConRunnable (String _palabra)
{
palabra = _palabra;
}
public void run()
{
for (int i = 0;i<10;i++)
{
System.out.println (palabra);
}
}
public static void main(String[] args)
{
ThreadConRunnable a = new ThreadConRunnable
("hiloUno");
ThreadConRunnable b = new ThreadConRunnable
("hiloDos");
Thread t1 = new Thread (a);
Thread t2 = new Thread (b);
11. t1.start();
t2.start();
System.out.println ("Fin del hilo principal");
}
}
Salida:
*********************************************************
4.-Prioridad con herencia e interfaz: programa que arroja que hilo tiene la
prioridad mas alta, media o baja, el nombre del hilo, si es hilo demonio y si
determinado hilo esta vivo
a) con herencia
código
public class A extends Thread
{
String palabra;
12. public A (String _palabra)
{
palabra = _palabra;
}
public void run ()
{
for (int i=0;i<100;i++)
System.out.println (palabra);
}
public static void main (String args[])
{
/*A a1 = new A("a1");
A a2 = new A("a2");
A a3 = new A("a3");
A a4 = new A("a4");
A a5 = new A("a5");*/
Thread t1 = new Thread ("a1");
Thread t2 = new Thread ("a2");
Thread t3 = new Thread ("a3");
Thread t4 = new Thread ("a4");
Thread t5 = new Thread ("a5");
t1.setPriority(10);
t2.setPriority(5);
13. t3.setPriority(1);
t4.setDaemon(true);
t5.setName("HILO");
System.out.println ("Prioridad de t1:
"+t1.getPriority());
System.out.println ("Prioridad de t2:
"+t2.getPriority());
System.out.println ("Prioridad de t3:
"+t3.getPriority());
System.out.println ("¿El hilo t4 es un hilo demonio?
"+t4.isDaemon());
System.out.println ("Nombre del hilo
t5:"+t5.getName());
System.out.println ("¿El hilo t4 esta
vivo?:"+t4.isAlive());
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
Salida
15. A a3 = new A("a3");
A a4 = new A("a4");
A a5 = new A("a5");
Thread t1 = new Thread (a1);
Thread t2 = new Thread (a2);
Thread t3 = new Thread (a3);
Thread t4 = new Thread (a4);
Thread t5 = new Thread (a5);
t1.setPriority(10);
t2.setPriority(5);
t3.setPriority(1);
t4.setDaemon(true);
t5.setName("HILO");
System.out.println ("Prioridad de t1:
"+t1.getPriority());
System.out.println ("Prioridad de t2:
"+t2.getPriority());
System.out.println ("Prioridad de t3:
"+t3.getPriority());
System.out.println ("¿El hilo t4 es un hilo demonio?
"+t4.isDaemon());
System.out.println ("Nombre del hilo
t5:"+t5.getName());
System.out.println ("¿El hilo t4 esta
vivo?:"+t4.isAlive());
18. Conclusión
Los anteriores programas me ayudaron a recordar la herencia en java, aprendí
a usar Runnable, aunque en el programa de prioridad me quedo duda ya que
en la parte de herencia el JCreator no me permitió dejar de crear objetos como
en interfaz.
Realizando el resumen quedo un poco más claro, el concepto de hilo y como
usarlo, me ayudo a aclarar conceptos del propio lenguaje tales como manejar
.get, .set, el uso de los vectores, como crear las ventanas con JFrame y los
applets.
Espero con los siguientes laboratorios aprender más sobre la materia y
terminar de comprender los conceptos aquí tratados.
Bibliografía
http://www.cs.buap.mx/~mceron/principal_con.html