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