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

}

lunes, 17 de marzo de 2014

Agregación Composición ejer 1

Hola después de mucho tiempo estoy volviendo a publicar algo decente, esta ves publicare las soluciones en diferentes lenguajes estos serán: Java, c#, c++,QT puede que php también :D
Espesemos :
Código :
Para Java
Biblioteca.java

import java.util.Scanner;

public class Biblioteca {
 public String Nombre;
 public String Direccion;
 public int nroLibros;
 public Libro[] libro;

 public Biblioteca(String nombre, String direccion, int nrolib) {
  Nombre = nombre;
  Direccion = direccion;
  nroLibros = nrolib;
  libro = new Libro[30];
  for (int i = 0; i < nroLibros; i++) {
   libro[i] = new Libro("Aventuras de Gregor Samsa ", "Samsa", 100);
  }
 }

 public void solA(String autor) {
  System.out.println("Busqueda de libro de autor = " + autor);
  for (int i = 0; i < nroLibros; i++) {
   if (libro[i].autor.equals(autor)) {
    System.out.println("Libro " + libro[i].nombre);
   }
  }
 }

 public void solB(Biblioteca a, Biblioteca b) {
  for (int i = 0; i < a.nroLibros; i++) {
   for (int j = 0; j < b.nroLibros; j++) {
    if (a.libro[i].nombre.equals(b.libro[j].nombre)) {
     System.out.println("EL libro " + a.libro[i].nombre
       + " esta en las 2 bibliotecas");
     break; // como ya sabemos q esta saltamos la busqueda
    }
   }
  }
 }

 public void solC(int x) {
  System.out.println("Eliminando libros de nro pag = " + x);
  System.out.println("Antes de eliminar " + nroLibros);
  int nn = 0;
  for (int i = 0; i < nroLibros; i++) {
   if (libro[i].npag == x) {
    // inicio eliminacion
    // recorrer todos los elementos
    for (int j = i; j < nroLibros - 1; j++) {
     libro[j] = libro[j + 1];
    }
    nn++;
    // nroLibros--;
   }
  }
  nroLibros -= nn;
  System.out.println("Al terminar la eliminacion quedan = " + nroLibros);

 }

 public void solD(int k) {
  for (int i = 0; i < k; i++) {
   createbook();
  }
 }

 public void createbook() {
  Scanner sc = new Scanner(System.in);
  System.out.println("Datos libro");
  System.out.print("Titulo : ");
  String nlib = sc.nextLine();
  System.out.print("Autor :");
  String alib = sc.nextLine();
  System.out.print("Nro pag :");
  int plib = sc.nextInt();
  libro[nroLibros] = new Libro(nlib, alib, plib);
  nroLibros++;
 }
}

Libbro.java
public class Libro {
 public String nombre;
 public String autor;
 public int npag;

 public Libro(String n, String a, int np) {
  nombre = n;
  autor = a;
  npag = np;
 }
}

Main.java el famoso principal
public class Main {
 public static void main(String[] args) {
  Biblioteca a = new Biblioteca("Biblioteca CF", "Rusia", 5);
  System.out.println("Mostrando libros de la biblioteca :" + a.Nombre);
  for (int i = 0; i < a.nroLibros; i++) {
   System.out.println("  Nombre libro = " + a.libro[i].nombre);
   System.out.println("  Autor        = " + a.libro[i].autor);
   System.out.println("  Num paginas  = " + a.libro[i].npag);
   System.out.println("----------------------------");
  }
  // sol A
  a.solA("Samsa");
  System.out.println("----------------------------");
  // sol B
  Biblioteca b = new Biblioteca("Biblioteca TC", "EEUU", 5);
  b.solB(a, b);
  System.out.println("----------------------------");
  // sol C
  a.solC(100);
  for (int i = 0; i < a.nroLibros; i++) {
   System.out.println("  Nombre libro = " + a.libro[i].nombre);
   System.out.println("  Autor        = " + a.libro[i].autor);
   System.out.println("  Num paginas  = " + a.libro[i].npag);
   System.out.println("----------------------------");
  }
  System.out.println("----------------------------");
  a.solD(5);
  for (int i = 0; i < a.nroLibros; i++) {
   System.out.println("  Nombre libro = " + a.libro[i].nombre);
   System.out.println("  Autor        = " + a.libro[i].autor);
   System.out.println("  Num paginas  = " + a.libro[i].npag);
   System.out.println("----------------------------");
  }
 }

}

Descargar