Ejercicios de Programación en Java: Cálculo de Pi, Clases Punto y Vector, Sumatorios y Arrays

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 3,58 KB

Ejercicios de Programación en Java

Cálculo de Pi mediante la serie de Leibniz

El siguiente método calcula el valor de Pi utilizando la serie de Leibniz:

public static float piLeibniz(long n){
  if (n<0) return -1.0;
  float pi = 0;
  for (int k = 0; k <= n; k++){
    int signo = (k%2 == 0)?1:-1;
    pi += (signo /((2.0*k)+1));
  }
  return pi*4;
}

Clase Punto

Implementación de la clase Punto

Esta clase modela una posición en un espacio de dos dimensiones.

class Punto {
  private double x = 0, y = 0;
  public Punto(double x, double y){
    this.x = x;
    this.y = y;
  }
  public double getX() { return x; }
  public double getY() { return y; }
  public double distancia(Punto p){
    double dx = p.x - x;
    double dy = p.y - y;
    return Math.sqrt(dx*dx + dy*dy);
  }
}

Uso de la clase Punto en el método main

public static void main(String [] args){
  System.out.print("Introduzca coordenada x del punto A:");
  double Ax = Teclado.readDouble();
  System.out.print("Introduzca coordenada y del punto A:");
  double Ay = Teclado.readDouble();
  System.out.print("Introduzca coordenada x del punto B:");
  double Bx = Teclado.readDouble();
  System.out.print("Introduzca coordenada y del punto B:");
  double By = Teclado.readDouble();
  Punto A = new Punto(Ax,Ay);
  Punto B = new Punto(Bx,By);
  System.out.print(A.distancia(B));
}

Clase Vector

Implementación de la clase Vector

Esta clase modela un vector en el espacio de dos dimensiones.

class Vector {
  private Punto origen;
  private Punto extremo;
  public Vector(Punto or, Punto extr){
    origen = or;
    extremo = extr;
  }
  public Punto getOrigen() { return origen; }
  public Punto getExtremo() {
    return extremo;
  }
  public double modulo(){
    return origen.distancia(extremo);
  }
}

Uso de la clase Vector en el método main

public static void main(String [] args){
  Punto O = new Punto(10.0,10.0);
  Punto E = new Punto(150.0, 150.0);
  Vector v = new Vector(O,E);
  System.out.println(v.modulo());
}

Cálculo de la suma de F(i)

Implementación de un método que calcula la suma de todos los F(i) mediante una fórmula.

public static int sumaF (int n){
  if (n<1) return -1;
  int sumatorio=0;
  for (int i=1; i<=n;i++){
    sumatorio+=i*(i+1)/2;
    System.out.println(i*(i+1)/2);
  }
  return sumatorio;
}

Detección de elementos repetidos en un array

Método que devuelve true si un array de enteros contiene elementos repetidos, y false en caso contrario.

public static boolean hayRepetidos(int a []){
  if (a == null || a.length == 1 || a.length == 0){
    return false;
  }
  for(int i = 0; i < a.length; i++){
    for (int j = i+1; j < a.length; j++){
      if (a[i] == a[j]){
        return true;
      }
    }
  }
  return false;
}

Obtención de los índices de un número en un array

Método que devuelve un array con los índices de un número entero dado dentro de otro array de enteros.

public static int [] indices(int [] a, int n){
  if (a==null) return null;
  int cont = 0;
  for (int i=0; i<a.length; i++)
    if (a[i]==n) cont++;
  if (cont==0) return null;
  int [] resultado = new int[cont];
  int j=0;
  for (int i=0; i<a.length; i++){
    if (a[i]==n) {
      resultado[j]=i;
      j++;
    };
  }
  return resultado;
}

Entradas relacionadas: