Apache Derby: funkcja ROOT (pierwiastek
dowolnego stopnia)
Zadanie programistyczne
Stworzyć funkcję skalarną umożliwiającą dla podanej liczby
obliczenie dowolnego pierwiastka tej liczby.
Rozwiązanie
Napisać metodę
root
. Metoda ta została umieszczona w klasie
DerbyUtil
:
public static double root(double liczba, double stopien) { return Math.pow(liczba, 1.0 / stopien); }
Zadeklarować funkcję w bazie Derby (skrypt r089.sql):
CREATE FUNCTION ROOT(DATA DOUBLE, DEG DOUBLE) RETURNS DOUBLE PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME 'utils.MathUtil.root' ;
Napisać klasę testującą (
R089_ROOT
):
Przetestować przykład.
2 37.8 6.148170459575759 1 39.7 6.300793600809346 3 36.6 6.04979338490167 3 33.2 5.761944116355173 2 39.2 6.260990336999411 2 40.6 6.371812928829597 2 41.2 6.418722614352485 1 40.1 6.332456079595025 1 39.8 6.308724118235001 2 38.9 6.23698645180507 1 38.3 6.18869937870632 2 37.9 6.156297588648554 2 37.4 6.115553940568262 3 37.1 6.0909769331364245 3 36.8 6.06630035524124 3 36.7 6.058052492344384 1 36.6 6.04979338490167
Pliki do ściągnięcia
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.