Guia de Ejercicios No 2
LAB121 Laboratorio de INF121
Tema: Programacion Orientada a Objetos
9 de septiembre de 2014
Hola después de mucho tiempo estoy volviendo a publicar algo decente, es la practica que les dieron a los q estan en LAB 121, xD espero q este bien :D ;)
public class Punto {
protected int a1;
protected int a2;
protected int a3;
//constructores
public Punto() {
a1=1;
a2=1;
a3=1;
}
public Punto(int a,int b, int z){
this.a1=a;
this.a2=b;
this.a3=z;
}
public int getA1() {
return a1;
}
public int getA2() {
return a2;
}
public int getA3() {
return a3;
}
public Punto suma(Punto b){
Punto pun = new Punto(a1+b.a1, a2+b.a2, a3+b.a3);
return pun; //retorna este punto
}
//fin constructores
public Punto resta(Punto b) {
Punto pun = new Punto(a1-b.a1, a2-b.a2, a3-b.a3);
return pun;
}
public int prod_interno(Punto b) {
return (a1*b.a1 + a2*b.a2 + a3*b.a3);
}
public double norma(){
return (double)Math.sqrt(a1*a1 + a2*a2 + a3*a3);
}
public double cruz(Punto b){
return (double)Math.abs((a2*b.getA3() - a3*b.getA2()) -
(a3*b.getA1() - a1*b.getA3()) +
(a1*b.getA2() - a2*b.getA1()));
}
public void mostrar(){
System.out.println(a1+ " "+a2+" "+a3);
}
}
AlgebraVectorial.java
public class AlgebraVectorial {
Punto p;
public AlgebraVectorial() {
this.p.a1=1;
this.p.a2=1;
this.p.a3=1;
}
public AlgebraVectorial(Punto a) {
this.p = a;
}
// a)
public void Perpendicular(Punto b) {
Punto x = p.suma(b);
Punto y = p.resta(b);
if (Math.abs(x.getA1()) == Math.abs(y.getA1())
&& Math.abs(x.getA2()) == Math.abs(y.getA2())
&& Math.abs(x.getA3()) == Math.abs(y.getA3())) {
System.out.println("El punto a es ortogonal o perpendicular a b");
} else {
System.out.println("El punto a no ortogonal o perpendicular a b");
}
}
// b)
public void Perpendicular(Punto a, Punto b, Punto c, Punto d) {
Punto x = a.resta(b);
Punto y = b.resta(a);
if (Math.abs(x.getA1()) == Math.abs(y.getA1())
&& Math.abs(x.getA2()) == Math.abs(y.getA2())
&& Math.abs(x.getA3()) == Math.abs(y.getA3())) {
System.out.println("El vector a mutuamente ortogonal a b");
} else {
System.out.println("El vector a no es mutuamente ortogonal a b");
}
}
// c)
public void Perpendicular(Punto b, int cero) {
cero=0;
if(p.prod_interno(b) == cero){
System.out.println("Vector es ortogonal a b");
}else{
System.out.println("Vector no es ortogonal a b");
}
}
// d)
public void Perpendicular(Punto a, Punto b) {
Punto x=p.suma(a);
double nx = x.norma();
if(nx == (double)(a.norma() + b.norma())){
System.out.println("Vector a es ortogonal a b");
}else{
System.out.println("Vector a no es ortogonal a b");
}
}
// e)
public void Paralela(Punto b) {
//zzz
}
// f)
public void Paralela(Punto a, Punto b) {
if(a.cruz(b) == (double)0.0 ){
System.out.println("AxB vector a es paralela a b "+a.cruz(b));
}else{
System.out.println("AxB vector a no es paralela a b "+ a.cruz(b));
}
}
// g
public void proy_de_a_en_b(Punto b) {
System.out.println("Proyeccion es ");
double numero = (double)p.prod_interno(b);
double nomr=b.norma()*b.norma();
System.out.println(" a1 = "+numero*b.getA1()+"/"+nomr);
System.out.println(" a2 = "+numero*b.getA2()+"/"+nomr);
System.out.println(" a3 = "+numero*b.getA3()+"/"+nomr);
}
// h)
public void Componente_de_a_en_b(Punto a, Punto b) {
System.out.println("Comp de a en direccion b ");
System.out.println((double)Math.abs(a.prod_interno(b))+"/"+b.norma());
}
}
Main.java
public class Main {
/**
* @author sam starsaminf@gmail.com
*/
public static void main(String[] args) {
Punto a=new Punto(1,-3,-2);
Punto b=new Punto(-3,-4,0);
AlgebraVectorial alg=new AlgebraVectorial(a);
//a
alg.Perpendicular(b);
//b
alg.Perpendicular(a,b,b,a);
//c
alg.Perpendicular(b, 0);
//d
alg.Perpendicular(a,b);
//e
alg.Paralela(b);
//f
alg.Paralela(a,b);
//g
alg.proy_de_a_en_b(b);
//h
alg.Componente_de_a_en_b(a, b);
}
}