Salta el contingut
 

Exercici: Proves de mètodes estàtics

Autor: Joan Puigcerver Ibáñez

Correu electrònic: j.puigcerveribanez@edu.gva.es

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Proves de mètodes estàtics

ud4.exercises.staticmethods

Per aquest exercici, es demana implementar i provar mètodes estàtics en Java.

Exercicis de programació

Podeu realitzar les proves de tots els mètodes estàtics que heu implementat en el Mòdul Professional: Programació.

IsEven

Implementa i prova el mètode boolean isEven(int number) que determina si un nombre és parell o no.

IsLeapYear

Implementa i prova el mètode boolean isLeapYear(int year) que determine si un any bixest o no.

NextSecond

Implementa i prova el mètode String nextSecond(int hour, int minute, int second) que donada una hora, minuts i segons, retorna l'hora en format HH:MM:SS del segon següent.

Exemple d'execució

String time = NextSecond.nextSecond(23, 59, 59);
System.out.println(time);
00:00:00

DotLine

Implementa i prova el mètode String dotLine(int length) que retorna una línia de punts de la longitud especificada.

Exemple d'execució

String dots = DotLine.dotLine(5);
System.out.println(dots);
.....

FilterVowels

Implementa i prova el mètode String filterVowels(String text) que retorna un text sense les vocals.

Exemple d'execució

String text = FilterVowels.filterVowels("Hello World!");
System.out.println(text);
Hll Wrld!

Collatz

Implementa i prova el mètode int collatz(int n) que aplique la Conjectura de Collatz a un nombre enter i retorne el nombre d'iteracions necessàries per arribar fins al número 1.

El mètode ha d'aplicar la següent operació fins arribar a l'1:

  • Si el nombre és parell, divideix el nombre per 2.
  • Si el nombre és imparell, multiplica el nombre per 3 i suma 1.
\[ F(n) = \begin{cases} \frac{n}{2} & \text{if n is even}\\ 3n + 1 & \text{if n is odd} \end{cases} \]

La conjectura diu que si apliquem aquesta operació a qualsevol nombre natural indefinidament, el resultat serà sempre 1.

Per últim, prova el mètode mitjançant tests unitaris.

Podeu utilitzar la web https://goodcalculators.com/collatz-conjecture-calculator/ per veure quins resultats ha d'obtindre el programa.

Spoiler

Podeu utilitzar els següents casos de prova:

\(N\) Resultat
1 0
5 5
8 3
11 14
27 111

Fibonacci

Implementa el mètode int fibonacci(int n) que calcule el nombre de la seqüència de Fibonacci per a un nombre enter \(n\).

La seqüència de Fibonacci és una successió de nombres enters en la qual cada terme és la suma dels dos anteriors.

\[ F(n) = \begin{cases} 0 & \text{if n = 0}\\ 1 & \text{if n = 1}\\ F(n-1) + F(n-2) & \text{if n > 1} \end{cases} \]

Per últim, prova el mètode mitjançant tests unitaris.

Podeu utilitzar la web https://www.calculatorsoup.com/calculators/discretemathematics/fibonacci-calculator.php per veure quins resultats ha d'obtindre el programa.

Spoiler

Podeu utilitzar els següents casos de prova:

\(N\) Resultat
0 0
1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34

ArrayUtils

Implementa els mètodes:

  • int min(int[] array): que retorna el valor mínim d'un array d'enters.
  • int max(int[] array): que retorna el valor màxim d'un array d'enters.
  • int sum(int[] array): que retorna la suma dels elements d'un array d'enters.
  • int[] reverse(int[] array): que invertix els elements d'un array d'enters.
  • int[] sort(int[] array): que ordena els elements d'un array d'enters de menor a major.
  • int countAppearances(int[] array, int value): que retorna el nombre de vegades que apareix un valor en un array d'enters.

Implementa els mètodes i prova'ls mitjançant tests unitaris.

Pots organitzar els tests unitaris en diferents classes o amb classes internes @Nested.

Ampliació

Transforma tots els tests unitaris escrits anteriorment a test parametritzats.