Skip to content

Proyecto

En este proyecto se va a realizar cambios en el proyecto conocido como common.

Para ello, se debe modificar todas las funciones que se crean oportunas de la clase Strings y Maths haciendo uso de arrays, o de métodos que devuelvan arrays si es necesario.

Por otro lado, se añadirá los siguientes métodos a la clase Maths:

  • multiple(n, num): devolverá los n múltiplos de un número
  • dividers(num): devolverá los divisores de un números.
  • primes(n): devolverá los n primeros números primos comprendidos entre 0 y 100.
  • primes(n, from, to): devolverá los n primeros números primos comprendidos entre from, inclusivo, y end, exclusivo
  • max(nums): obtiene el máximo valor de los números pasados por parámetros
  • min(nums): obtiene el mínimo valor de los números pasados por parámetros.
  • avg(nums): devolverá la media de los números pasados como parámetros. Crear las versiones sobrecargadas para cada tipo de dato posible
  • mode(nums): devolverá la moda de los números pasados como parámetros. Crear las versiones sobrecargadas para cada tipo de dato posible
  • median(nums): devolverá la mediana de los números pasados como parámetros. Crear las versiones sobrecargadas para cada tipo de dato posible
  • typicalDeviation(nums): devolverá la desviación típica de los números pasados como parámetros. Crear las versiones sobrecargadas para cada tipo de dato posible
  • variance(nums): devolverá la varianza de los números pasados como parámetros. Crear las versiones sobrecargadas para cada tipo de dato posible

Además, en esta versión, se creará la clase Arrays que contendrán métodos de utilidad para trabajar con arrays:

  • randomArray(n): devolverá un array rellenado con números aleatorios entre el 0 y el 10 tantas veces como indique n. Comprobar que la capacidad indicada sea un número positivo
  • randomArray(n, fromIndex, toIndex): devolverá un array rellenado con números aleatorios entre los indicados por parámetros, ambos inclusivos, tantas veces como indique n. Comprobar que la capacidad indicada sea un número positivo
  • add(array, element): añadirá el elemento al final del array. Crear las versiones sobrecargadas para cada tipo de dato.
  • add(array, index, element): añadirá el elemento en el índice indicado del array, comprobando que el índice no supere el tamaño del array, y desplazando el resto de elementos, eliminando si fuese necesario el último valor. Crear las versiones sobrecargadas para cada tipo de dato
  • remove(array, index): elimina el elemento en el índice indicado, comprobando que el índice no supere el tamaño del array.
  • set(array, index, element): reemplaza el elemento en el índice especificado de la lista con el nuevo elemento proporcionado, comprobando que el índice no supere el tamaño del array. Crear las versiones sobrecargadas para cada tipo de dato
  • indexOf(array, element): devuelve el primer índice del array que contenga el elemento indicado, en caso de no encontrarlo devolverá -1. Crear las versiones sobrecargadas para cada tipo de dato
  • lastIndexOf(array, element): devuelve el último índice del array que contenga el elemento indicado, en caso de no encontrarlo devolverá -1. Crear las versiones sobrecargadas para cada tipo de dato
  • isEmpty(array): retorna si el array está vacío, es decir, si no ha sido inicializado o todos sus valores son por defecto. Crear las versiones sobrecargadas para cada tipo de dato
  • isNotEmpty(array): retorna si el array no está vacío, es decir, si ha sido inicializado y además tiene algún valor que no sea el de por defecto. Crear las versiones sobrecargadas para cada tipo de dato
  • contains(array, element): retorna true si en el array se encuentra el elemento especificado, por el contrario devuelve false. Crear las versiones sobrecargadas para cada tipo de dato
  • notContains(array, element): retorna true si en el array no se encuentra el elemento indicado, por el contrario devuelve true. Crear las versiones sobrecargadas para cada tipo de dato
  • clear(array): vacía el array, dejando todos sus valor por defecto. Crear las versiones sobrecargadas para cada tipo de dato.
  • addAll(array1, array2): Añade todos los elementos del array2 en array1, retornando un nuevo array. Crear las versiones sobrecargadas para cada tipo de dato.
  • subArray(array, fromIndex, toIndex): devuelve un nuevo array con los elementos del array desde el índice indicado (inclusivo) hasta el índice especificado (exclusivo), comprobando previamente, que los índices no superen el tamaño del array.
  • reverse(array): Invierte el array. Crear las versiones sobrecargadas para cada tipo de dato
  • plus(arrayA, arrayB): suma ambos array retornando el resultado.
  • minus(arrayA, arrayB): resta ambos array retornando el resultado.
  • scalarProduct(n, arrayA): devuelve el array A multiplicando cada uno de sus elementos por n
  • product(arrayA, arrayB): devuelve la multiplicación de ambos arrays multiplicando cada elemento de A por cada elemento de B.

También se creará la clase Matrixs que contendrá los métodos de utilidad para trabajar con arrays bidimensionales:

  • isRegular(array): devolverá true si el array bidimensional es regular, false si no lo es. Crear las versiones sobrecargadas para cada tipo de dato
  • isIrregular(array): devolverá true si el array bidimensional es irregular, false si no lo es.Crear las versiones sobrecargadas para cada tipo de dato
  • randomMatrix(n, m): devolverá una matriz rellenada con números aleatorios entre el 0 y el 10 tantas veces como indique n y m.
  • randomMatrix(n, m, fromIndex, toIndex): devolverá un array rellenado con números aleatorios entre los indicados por parámetros, ambos inclusivos, tantas veces como indique n y m.
  • sum(matrix): devolverá la suma de todos los elementos de la matriz.
  • sumFiles(matrix): devolverá la suma de todas las filas de la matriz.
  • sumColumns(matrix): devolverá la suma de todas las columnas de la matriz.
  • sumDiagonal(matrix): devolverá la suma de la diagonal de la matriz
  • sumDiagonalReverse(matrix): devolverá la suma de la diagonal inversa de la matriz.
  • transpose(matrix): devolverá la matriz transpuesta de la matriz indicada.
  • isSymmetric(matrix): devolverá true si la matriz indicada es simétrica, o false si no lo es.
  • determinant(matrix): calcula el determinante de la matriz.
  • add(matrixA, matrixB): suma ambas matrices retornando el resultado.
  • minus(matrixA, matrixB): resta ambas matrices retornando el resultado.
  • scalarProduct(n, matrixA): devuelve la matriz A multiplicando cada uno de sus elementos por n
  • product(matrixA, matrixB): devuelve la multiplicación de ambas matrices multiplicando cada elemento de A por cada elemento de B.

Para realizar este proyecto se tendrá en cuenta:

  • NO se realizará una versión sobre el proyecto 5, sino que se realizará un copia de dicho proyecto en esta versión
  • Se mantendrá el paquete principal llamado com.NOMBRE.common donde nombre será el nombre del alumno y common el nombre del proyecto.
  • Se creará una clase Main, donde se ponga en práctica los usos de la librería y se valorará la complejidad de dicho Main.
  • Se deberán respetar el nombre de las funciones.
  • El nombre del resto de funciones será en inglés y deberán ser lo suficiente claras para poder identificarlas con facilidad.
  • El código se comentará haciendo uso de los comentarios JavaDoc además, de comentarios normales para dar una explicación a la parte del código más importante.
  • El repositorio de GitHub tendrá el siguiente nombre pr06java-NOMBRE-arrays siendo NOMBRE el nombre del alumno.
  • Se declarará aquellas variables que sean necesarias inicializándolas si es necesario, indicando el tipo correspondiente.
  • Se hará uso de funciones y procedimientos donde sea oportuno.
  • La entrega de este proyecto se realizará a través de un enlace a un repositorio de GitHub, realizando siempre más de un commit.
  • Se valorará la limpieza, la claridad, y la estructura del proyecto.