Documente Academic
Documente Profesional
Documente Cultură
Math; public class ArchimedianSpiral extends Applet { int width, height; int N = 30; // number of points per full rotation int W = 5; // winding number, or number of full rotations public void init() { width = getSize().width; height = getSize().height; setBackground( Color.black ); setForeground( Color.green ); } public void paint( Graphics g ) { int x1 = 0, y1 = 0, x2, y2; for ( int i = 1; i <= W*N; ++i ) { double angle = 2*Math.PI*i/(double)N; double radius = i/(double)N * width/2 / (W+1); x2 = (int)( radius*Math.cos(angle) ); y2 = -(int)( radius*Math.sin(angle) ); g.drawLine( width/2+x1, height/2+y1, width/2+x2, height/2+y2 ); x1 = x2; y1 = y2; } } }
Crear un applet que represente la funcin y=sen(x) entre 0 y 360 En la parte superior derecha, aparecer un mensaje titulado Funciones armnicas empleando la fuente Times 14, negrita, de color rojo Insertar el applet en una pgina web
public class EjemploApplet06 extends Applet { public void init() { } public void paint(Graphics g){ //dimensiones del applet int wAlto=getSize().height; int wAncho=getSize().width; //dimensiones de los caracteres int cAlto=g.getFontMetrics().getHeight(); int cAncho=g.getFontMetrics().stringWidth("0"); //texto "Funciones armnicas" en Times negrita y 14 de tamao //representacin grfica de la funcin y=sen(x) //origen //escalas //ejes horizontal y vertical for(int i=0; i<=360; i+=30){ //divisiones del eje horizontal } for(int i=-10; i<=10; i+=2){ //divisiones del eje vertical } for(int ang=0; ang<360; ang++){ //representa la funcin } } }
Creacin de Threads
El objetivo de esta prctica es introducir al uso de los threads (hilos) y trabajar con las clases que permiten su creacin.
Aadir en la declaracin de la clase que se va a implementar la interfaz Runnable: public class AClass extends MotherClass implements Runnable Declarar un objeto Thread en la clase destino. Por ejemplo, las siguientes sentencias declaran una instancia de la clase Thread, t, con valor inicial nulo: private Thread t = null; Por defecto, el valor inicial es nulo, as que la asignacin al valor ``null" no es necesaria.
Crear un thread (con el operador new) y ponerla en marcha llamando a su mtodo start(): t = new Thread(this); //crear el thread t.start(); //poner en marcha el thread El argumento ``this" en el constructor del thread es indispensable, puesto que especifica que el mtodo run() de la clase actual es el que se debe llamar cuando se ejecute el thread. El mtodo start() del thread provoca que el mtodo run() se ejecute.
Implementar en el mtodo run() de la clase, la tarea que se quiere que ejecute el thread.
4.3 Ejercicios
1. Escriba una aplicacin Java que implemente lo siguiente: o Contemple la creacin de una clase (Mostrador) que contengan un atributo entero y mtodos para establecer y recuperar los valores de dicho atributo. o Escriba una aplicacion Productor/Consumidor en la que se instancian dos objetos: uno de tipo Productor y otro de tipo Consumidor. Estos objetos son threads que se encargan uno de poner un valor y el otro de recogerlo de un objeto de tipo Mostrador. El Productor genera un entero entre 0 y 1000, lo almacena en el mostrador y lo imprime. El Consumidor al contrario, consume el entero del mostrador, que es exactamente el mismo objeto en el que el Productor coloca los enteros. As pues, el productor y el consumidor de este ejemplo comparten los datos a travs del objeto de tipo Mostrador (figura 8.3). 2. Dibuje la jerarqua de clases que ha implementado.
3. Dibuje el diagrama de ejecucin de la aplicacin (tiempo
mtodo).
4. Escriba un applet que implemente lo mismo que el ejercicio 1. 5. Dibuje la jerarqua de clases para el applet. 6. Dibuje el diagrama de ejecucin del applet (tiempo
mtodo).