/*
Magallon Juan-Qui Inti Sandino
Algoritmos y Estructuras de Datos
*/

//________________________________________________

class Punto
{
private double abscisa, ordenada;

public Punto() // Constructor por defecto
{
abscisa = 0.0;
ordenada = 0.0;
}

public Punto(double x, double y)
{
abscisa = x;
ordenada = y;
}

public Punto(Punto unPunto) // Constructor de copia
{ // Llama a Punto(x,y)
this (unPunto.abscisa,unPunto.ordenada);
}

public String toString() // Conversi¢n a String
{
return "Punto(" + abscisa + "," + ordenada + ")";
}

public void trasladar(double x,double y)
{
abscisa += x;
ordenada += y;
}

public double distancia(Punto unPunto)
{
double dx = abscisa - unPunto.abscisa;
double dy = ordenada - unPunto.ordenada;

return Math.sqrt(dx*dx + dy*dy);
}
}

 

//______________________________________________

import java.io.*;

class PuntoMain
{
public static void main(String argv[])
{
Punto p, q;
p = new Punto(12, 37);
q = new Punto();
q.trasladar(1.0, 3.0);
System.out.println("La distancia entre"+ p +" y" + q +"es"+ p.distancia(q));
}
}

 

//_______________________________________________

import java.io.*;

class PuntoMain
{
public static void main(String argv[])
{
Punto p, q;
p = new Punto(12, 37);
q = new Punto();
q.trasladar(1.0, 3.0);
System.out.println("La distancia entre"+ p +" y" + q +"es"+ p.distancia(q));
}
}

 


//_______________________________________________

class Particula extends Punto
{
private double masa;

public Particula ()
{
super(); // Llamada al constructor Punto() (por defecto)
masa = 0.0;
}

public Particula(double x,double y,double m)
{
super(x,y); // Llamada a Punto(x,y)
masa = m;
}

public String toString() // Llama a toStringO en Punto
{
return "Particula["+ super.toString() + ","+ masa + "]";
}

public double atraccion(Particula unaParticula)
{
double dist = distancia(unaParticula);

return (masa - unaParticula.masa) * 6.67 - 11/(dist*dist);
}

}

 

//_______________________________________________

import java.io. *;

class ParticulaMain
{
public static void main(String argv[])
{
Particula p, q;
p = new Particula(12.0, 37.0, 10.0);
q = new Particula(0.0, 0.0, 20.0);
q.trasladar(1.0, 3.0);
System.out.println("La atraccion entre"+ p +" y "+ q +" es "+p.atraccion(q));

Punto r = p; // Polimorfismo: restringido por herencia
System.out.println( "Punto r' es ahora "+ r);
// Vinculacion dinamica, Llamada a toString() de Particuia
}
}

 

//_______________________________________________

import java.io.*;

class Figura
{
protected Punto puntos[];
protected int vertices;

public Figura()
{
vertices = 0;
}

public void trasladar(double x, double y)
{
for (int i = 0; i<vertices; i++)
puntos[i] .trasladar(x,y);
}
}

 


//_______________________________________________


interface Superficie
{
public double perimetro();
public double area();
}

 

//_______________________________________________

class Prisma
{
private Superficie base; //referencia de tipo interfaz
private double altura;

public Prisma(Superficie b, double h)
{
base = b;
altura = h;
}


public String toString()
{
return "Prisma{" + base + ", " + altura + " }";
}
public double volumen()
{
return base.area() * altura;
}
}

 

//_______________________________________________

abstract class Poligono extends Figura implements Superficie
{
public double perimetro()
{
double prmtr = 0.0;

for (int i=1; i<vertices; i++)
prmtr += puntos[i-1] .distancia(puntos[i]);

prmtr+= puntos [vertices-1] .distancia (puntos [0]);

return prmtr;
}

public abstract double area();


}

 

//_______________________________________________

class Rectangulo extends Poligono
{
public Rectangulo(Punto origen, double a, double b)
{
vertices = 4;
puntos = new Punto[vertices];
puntos[0] = new Punto(origen);
puntos[1] = new Punto(origen);
puntos[2] = new Punto(origen);
puntos[3] = new Punto(origen);
puntos[1].trasladar(a, 0.0);
puntos[2].trasladar(a,b);
puntos[3].trasladar(0.0, b);
}

public String toString()
{
return "Rectangulo[" + puntos[0] + "," + puntos[1] + ","+ puntos[2] + "," + puntos[3] + "]";
}
public double a()
{ return puntos[0] .distancia(puntos[1]); }

public double b()
{ return puntos[0] .distancia(puntos[3]); }

public double area()
{ return a() * b(); }
}

 

//_______________________________________________

import java.io.*;

class AbstractasMain
{
public static void main(String argv[])
{
Poligono p;
p = new Rectangulo(new Punto(2.0, 2.0), 3.0, 5.0);
System.out.println(p);
System.out.println("Area: " + p.area());
System.out.println("Perimetro: " + p.perimetro());
Prisma pr = new Prisma(p, 3.0);
System.out.println(pr);
System.out.println( "Volumen: " + pr.volumen());
}
}

//_____________________F I N _____________________

 

 

1
Hosted by www.Geocities.ws