import java.awt.Color;
import java.awt.Font;
import element.ConsoleWindow;
import element.DrawingWindow;
import element.Oval;
import element.Pt;
import element.Rect;
import element.Text;
public class clase {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ConsoleWindow c = new ConsoleWindow(50,60,"",new Font
("Comic",Font.PLAIN,10),null);
DrawingWindow d = new DrawingWindow();
c.out.println("1= Un método que elija un número entero al azar entre low y high.");
c.out.println("2= Un método que elija un número double al azar entre low y high.");
c.out.println("3= Un método que dibuje un triángulo en la ventana de dibujo.");
c.out.println("4= Un método que calcule la distancia entre dos puntos.");
c.out.println("5= Un método que calcule el punto medio entre dos puntos.");
c.out.println("6= Un método que calcule el centroide (centro de gravedad) de un triángulo. ");
c.out.println("7= Un predicado que determine si dos círculos se cortan.");
c.out.println("8= Un método que compruebe si dos rectángulos se cortan.");
c.out.println("9= Un método que dibuje una String centrada en el punto p, y devuelva un RoundRect que" +
"rodee a la String para formar un botón.");
c.out.println("10=Dado un rectángulo, un método que espero que se clickee el mouse y después se suelte dentro"+
"del rectángulo.");
c.out.println("11=Un método que detenga el programa por double segundos.");
int x;
x=c.input.readInt();
switch (x)
{
case 1 :
predicado1(c);
break;
case 2 :
predicado2(c);
break;
case 3 :
predicado3(d,c);
break;
case 4 :
@SuppressWarnings("unused")
int a,y,a1,a2;
c.out.println("INGRESE LA COORDENADA X DEL PUNTO 1");
x=c.input.readInt();
c.out.println("INGRESE LA COORDENADA y DEL PUNTO 1");
y=c.input.readInt();
c.out.println("INGRESE LA COORDENADA X DEL PUNTO 2");
a1=c.input.readInt();
c.out.println("INGRESE LA COORDENADA y DEL PUNTO 2");
a2=c.input.readInt ();
Pt linea1=new Pt(x,y);
Pt linea2=new Pt(a1,a2);
d.moveTo(linea1);
d.lineTo(linea2);
c.out.println("La distancia es: "+predicado4(linea1,linea2));
break;
case 5 :
predicado5(d,c);
break;
case 6 :
double centrodex,centrodey;
int x1,y1,xx2,yy2,xxx3,yyy3;
c.out.println("coordenada x1 ");
x1 = c.input.readInt();
c.out.println("coordenada y1 ");
y1 = c.input.readInt();
c.out.println(" coordenada x 2: ");
xx2 = c.input.readInt();
c.out.println("coordenada y 2: ");
yy2 = c.input.readInt();
c.out.println("coordenada x 3: ");
xxx3 = c.input.readInt();
c.out.println("coordenada 3: ");
yyy3 = c.input.readInt();
Pt vI = new Pt(x1,y1);
Pt vII = new Pt(xx2,yy2);
Pt vIII = new Pt(xxx3,yyy3);
Pt pm1 = medio(vI,vII);
Pt pm2 = medio(vII,vIII);
Pt pm3 = medio(vIII,vI);
triangulo (d,vI,vII,vIII);
d.moveTo(pm1);
d.lineTo(vIII);
d.moveTo(pm2);
d.lineTo(vI);
d.moveTo(pm3);
d.lineTo(vII);
centrodex = centroide (x1,xx2,xxx3);
centrodey = centroide (y1,yy2,yyy3);
c.out.println("EL LAS COORDENADAS DEL CENTROYDE SON X: "+centrodex+" Y: "+centrodey);
break;
case 7 :
predicado7(d);
break;
case 8 :
predicado8(d);
break;
case 9 :
predicado9(d);
break;
case 10 :
predicado10(d);
break;
case 11 :
predicado11(d);
break;
}}
public static int predicado1(ConsoleWindow c)
{
//pre : usted introduce dos numeros eneteros
// pos:este metodo realiza la funcion de ordenarlos
int minimo,maximo;
double q;
int p;
c.out.println ("Ingrese un número");
minimo=c.input.readInt();
c.out.println("Ingrese un número");
maximo=c.input.readInt();
q=Math.random()*(minimo-maximo)+maximo;
p=(int)q;
c.out.println(p);
return p;
}
public static double predicado2(ConsoleWindow c)
{
// pre : usted introduce dos numeros reales
// pos:este metodo realiza la funcion de ordenarlos
double minimo,maximo;
double p;
c.out.println("Ingrese un número");
minimo=c.input.readDouble();
c.out.println("Ingrese un número");
maximo=c.input.readDouble();
p=Math.random()*(minimo-maximo)+maximo;
c.out.println(p);
return p;
}
public static void predicado3(DrawingWindow d,ConsoleWindow c)
{
// pre: ingrese las coordenadas de los 3 puntos (con x,y cada uno)
// pos:los puntos se uniran y formaran un triangulo
c.out.println("Ingrese la coordenada P1 del punto P ");
int punto1=c.input.readInt();
c.out.println("Ingrese la coordenada P2 del punto P ");
int punto2=c.input.readInt();
c.out.println("Ingrese la coordenada Q1 del punto Q ");
int ppunto1=c.input.readInt();
c.out.println("Ingrese la coordenada Q2 del punto Q ");
int ppunto2=c.input.readInt();
c.out.println ("Ingrese la coordenada R1 del punto R ");
int pppunto1=c.input.readInt();
c.out.println("Ingrese la coordenada R2 del punto R ");
int pppunto2=c.input.readInt();
Pt a=new Pt(punto1,punto2);
Pt p=new Pt(ppunto1,ppunto2);
Pt r=new Pt(pppunto1,pppunto2);
d.moveTo(a);
d.lineTo(p);
d.lineTo(r);
d.lineTo(a);
}
public static double predicado4(Pt punto1,Pt punto2)
{
//pre:ingre dos puntos ("x" e "y")
// pos: esta aplicacion le dira cual es el punto medio
int n,w,e,f,s,l;
@SuppressWarnings("unused")
double ñ;
w= punto1.y();
e= punto2.y();
n=e-w;
f= punto2.x();
s= punto1.x();
l=s-f;
ñ=Math.sqrt(Math.pow(n, 2)+(Math.pow(l, 2)));
return ñ;
}
public static void predicado5(DrawingWindow d,ConsoleWindow c)
{
//pre: introduce dos puntos con coordenadas "x" e "y"
// pos:le dira cual es su punto medio
@SuppressWarnings("unused")
int o_2,y_2,z_2,z2_2,x,y,x1,y2;
@SuppressWarnings("unused")
double a,b,f,g,suma1,suma2,sumatx,sumaty;
c.out.println("INGRESE LA COORDENADA X DEL PUNTO 1");
x=c.input.readInt();
c.out.println("INGRESE LA COORDENADA y DEL PUNTO 1");
y=c.input.readInt();
c.out.println("INGRESE LA COORDENADA X DEL PUNTO 2");
x1=c.input.readInt();
c.out.println ("INGRESE LA COORDENADA y DEL PUNTO 2");
y2=c.input.readInt();
Pt asd=new Pt(x,y);
Pt asd1=new Pt(x1,y2);
d.moveTo(asd);
d.lineTo(asd1);
a=asd.x();
b=asd.y();
suma1=a+b;
f=asd1.x();
g=asd1.y();
suma2=f+g;
sumatx= (a+f)/2;
sumaty= (b+g)/2;
c.out.println("La coordenada x del punto medio es: "+sumatx);
c.out.println("La coordenada y del punto medio es: "+sumaty);
}
public static void triangulo (DrawingWindow dr,Pt p1,Pt p2,Pt p3)
{
dr.moveTo(p1);
dr.lineTo(p2);
dr.moveTo(p2);
dr.lineTo(p3);
dr.moveTo(p3);
dr.lineTo(p1);
}
public static Pt medio (Pt a,Pt b)
{
double medix,mediy;
int x1,y1,x2,y2,mediox,medioy;
Pt medio;
x1 = a.x();
y1 = a.y();
x2 = b.x();
y2 = b.y();
medix = (x1 + x2)/2;
mediy = (y1 + y2)/2;
mediox = (int)medix;
medioy = (int)mediy;
medio = new Pt (mediox,medioy);
return medio;
}
public static double centroide (int a, int b, int c)
{
double centimetros;
centimetros = (a + b + c)/3;
return centimetros;
}
public static void predicado7(DrawingWindow d)
{
//pre: en la consola drawing window se dibujaran dos circulos
// pos: Si los dos circulos estan superpuestos , dira que que estan superpuestos o no
@SuppressWarnings("unused")
ConsoleWindow c = new ConsoleWindow();
int p,j,q,f,y,i;
double k;
final int tamaño=50;
Oval circulo=new Oval();
Pt press1;
circulo.width(tamaño); circulo.height(tamaño);
press1=d.awaitMouseClick();
circulo.bottom(press1.y());
circulo.right(press1.x());
d.fill(circulo);
c.out.println(press1.y());
c.out.println(press1.x());
Oval circuloo=new Oval();
Pt ins = null;
circuloo.width(tamaño); circuloo.height(tamaño);
ins=d.awaitMouseClick();
circuloo.right(ins.x());
circuloo.bottom(ins.y());
d.fill(circuloo);
c.out.println(ins.x());
c.out.println(ins.y());
p=press1.x();
j=ins.x();
y=j-p;
q=ins.y();
f=press1.y();
i=f-q;
k=Math.sqrt(Math.pow(y, 2)+(Math.pow(i, 2)));
if (k>50)
c.out.println("no se tocan");
else c.out.println("se tocan");
}
public static void predicado8(DrawingWindow d)
{
//pre:en la consola drawing window se dibujaran dos rectangulos
// pos:Si los dos rectangulos estan superpuestos , dira que que estan superpuestos o no
@SuppressWarnings("unused")
ConsoleWindow c = new ConsoleWindow();
int p,j,q,f,y,i;
@SuppressWarnings("unused")
double k;
final int SIZE=50;
Rect rectangulo=new Rect();
Pt press1;
rectangulo.width(SIZE); rectangulo.height(SIZE);
press1=d.awaitMouseClick();
rectangulo.bottom(press1.y());
rectangulo.right(press1.x());
d.fill(rectangulo);
c.out.println(press1.y());
c.out.println(press1.x());
Rect rectanguloo=new Rect();
Pt press2 = null;
rectanguloo.width(SIZE); rectanguloo.height(SIZE);
press2=d.awaitMouseClick();
rectanguloo.right(press2.x());
rectanguloo.bottom(press2.y());
d.fill(rectanguloo);
c.out.println(press2.x());
c.out.println(press2.y());
p=press1.x();
j=press2.x();
y=j-p;
q=press2.y();
f=press1.y();
i=f-q;
k=Math.sqrt(Math.pow(y, 2)+(Math.pow(i, 2)));
if (k>50)
c.out.println("no se tocan");
else c.out.println("se tocan");
}
public static void predicado9(DrawingWindow d)
{
//pre: dado un rectangulo
// post: el texto borrar se centrara en este recngulo
Rect boton= new Rect(120,140,60,30);
d.setForeground(Color.cyan);
d.fill(boton);
Text txt=new Text("borrar");
d.setForeground(Color.BLACK);
Pt P= new Pt(153,147);
txt.center(P);
d.draw(txt);
@SuppressWarnings("unused")
Pt mouse=d.awaitMousePress();
}
public static long predicado10( DrawingWindow d)
{
// pre: dado un rectangulo usted tendra que hacer click en el, pasado unos segundos soltarlo
////pos: esta aplicacion le dira cuantos segundos pasaron desde que usted clikeo y solto el mouse
ConsoleWindow c = new ConsoleWindow();
Rect cornerRect= new Rect(50,50,100,100);
d.draw(cornerRect);
@SuppressWarnings("unused")
Pt press=d.awaitMousePress();
@SuppressWarnings("unused")
long f =System.currentTimeMillis();
while (!( cornerRect.contains(press)))
press=d.awaitMousePress();
press=d.awaitMouseRelease();
long w=System.currentTimeMillis();
long q;
q=w-f;
c.out.println("el tiempo transcurrido es ="+w);
return q;
}
public static void predicado11(DrawingWindow d)
{
//pre: introduce el numero de milisegundo que desea que la aplicacion se detenga
// pos: la aplicacion se detendra
long g;
ConsoleWindow c=new ConsoleWindow();
c.out.println("tiempo para deterner la aplicacion (milisegundos)");
g=c.input.readLong();
long tiempoactual = System.currentTimeMillis();
long tiempofinal = tiempoactual + g;
while (System.currentTimeMillis()<tiempofinal);
c.out.println("tiempo pasado");
}
}
------------------------------------------------------------------------------------------------------------------------------------------------
Espero que les guste y si tienen alguna duda postiar..
Todos los ejercicios que hagan los pueden añadir aka ( sección java) Si algun mod es tan amable de diferenciarlo y abajo podemos poner la teoria y 100% full ejercicios