CC10A06 COMPUTACION I class Pieza{ int fila,col; Pieza(int x, int y){ fila = x; col = y; } boolean amenaza(int x, int y){ return false; } int getFila(){ return fila; } int getCol(){ return col; } } class Torre extends Pieza{ int valor; // definimos esta variable adicional Torre(int x, int y){ // constructor particular de la subclase Torre super(x,y); valor = 5; } boolean amenaza(int x, int y){ // metodo amenaza re-escrito para Torres if((x==fila || y==col) & !(x!=fila && y!=col)) return true; return false; } } class Caballo extends Pieza{ int valor; // definimos esta variable adicional Caballo(int x, int y){ // constructor particular de la subclase Caballo super(x,y); valor = 3; } boolean amenaza(int x, int y){ // metodo amenaza re-escrito para Caballos if(Math.abs(x-fila)==1 && Math.abs(y-col)==2 || Math.abs(x-fila)==2 && Math.abs(y-col)==1) return true; return false; } } class EjemploUso{ static public void main(String[] args){ Pieza p1 = new Torre(2,2); c.println("p1:" + p1.amenaza(4,4)); c.println("p1:" + p1.amenaza(2,4)); Pieza p2 = new Caballo(4,3); c.println("p2:" + p2.amenaza(6,5)); c.println("p2:" + p2.amenaza(6,4)); } } // ejemplo mula :) // entrega false // entrega true // entrega false // entrega true 10 del 2003 CC10A06 COMPUTACION I class Figura{ public Figura(){ } public double perimetro(){ return 0; } } class Circulo extends Figura { double cx, cy; double r; public Circulo(double x, double y, double z) { super(); cx = x; cy = y; r = z; } public double perimetro() { return 2 * Math.PI * r; } } class Cuadrado extends Figura { double cx, cy; double l; public Cuadrado(double x, double y, double z) { super(); cx = x; cy = y; l = z; } public double perimetro() { return 4 * l; } } class ProgramaEjemplo { public static double sumaPerimetros(Figura[] fig){ double suma = 0; for (int i=0; i<fig.length; i++) suma += fig[i].perimetro(); return suma; } public static void main(String[] args) { Console c = new Console(); c.println("FIGURAS"); c.print("# de Figuras?"); int n = c.readInt(); Figura[] fig = new Figura[n]; // Creamos el arreglo de Figuras (generico) for (int i=0; i<n; i++) { c.print("(c)irculo o c(u)adrado?"); String a = I.readLine(); c.println("Ingrese CENTRO"); c.print("x?"); double cx = c.readDouble(); c.print("Y?"); double cy = c.readDouble(); c.print("Radio/Lado?"); double x = c.readDouble(); if (a.equals("c")) fig[i] = new Circulo(cx, cy, x); // fig[i] referenciara a un Circulo else if (a.equals("u")) fig[i] = new Cuadrado(cx, cy, x); // fig[i] referenciara a un Cuadrado } c.println("La suma de los perimetros es: " + sumaPerimetros(fig)); } } 10 del 2003