miércoles, 24 de septiembre de 2014

Guia de Ejercicios No 2 Sol

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);
 }

}

No hay comentarios:

Publicar un comentario