Aria

Apache Derby – tutorial

Apache Derby: funkcja użytkownika LG (logarytm o dowolnej podstawie)

Zadanie programistyczne

Stworzyć funkcję skalarną umożliwiającą dla podanej liczby obliczenie logarytmu o dowolnej podstawie.

Rozwiązanie

Napisać metodę lg. Metoda ta została umieszczona w klasie DerbyUtil.

public static double lg(double liczba, int podstawa) {
	return Math.log10(liczba) / (Math.log10(podstawa));
}

Zadeklarować funkcję w bazie Derby (skrypt r086.sql):

CREATE FUNCTION LG(DATA DOUBLE, BASE INTEGER)
    RETURNS DOUBLE
    PARAMETER STYLE JAVA
    NO SQL
    LANGUAGE JAVA
    EXTERNAL NAME 'aderby.DerbyUtil.lg'
;

Napisać klasę testującą R086_LG.

Wynik

Przetestować przykład:

2 37.8 5.24031432933371
1 39.7 5.3110671022555955
3 36.6 5.19377174339668
3 33.2 5.053111336459562
2 39.2 5.292781749227847
2 40.6 5.343407822297814
2 41.2 5.364572432295856
1 40.1 5.325530331567558
1 39.8 5.314696525656286
2 38.9 5.281698250098829
1 38.3 5.259272487037594
2 37.9 5.24412594328373
2 37.4 5.224966365000274
3 37.1 5.213347281733441
3 36.8 5.20163386116965
3 36.7 5.197708157955851
1 36.6 5.19377174339668

Pliki do ściągnięcia

R086_LG.zip (klasa)

r086.zip (skrypt)

Aktualny (tworzony narastająco) plik module-info.java

Aktualny (tworzony narastająco) plik DerbyUtil.java

Pliki tworzone narastająco zastępują poprzednie pliki o tej samej
nazwie i działają dla wszystkich wcześniej opublikowanych przykładów
we wszystkich wpisach w projekcie. W przypadku pliku
module-info.java
może być potrzebne skreślenie niepotrzebnych wpisów.