Prestavlja 'knjižnjico' uporabnih matematičnih funkcij in različnih konstant, ki jih pogosto potrebujemo pri realizaciji reševanja zahtevanih problemov. Izmed metod smo v predhodnih poglavjih omenili in tudi uporabili funkcijo pseudo-naključnega generiranja števil - random(), v nadaljevanju pa bi si ogledali še nekaj pogosteje uporabljanih funkcionalnosti in konstant
E : 2.718281828..
PI : 3.1415926535..
cos, sin, tan
acos, asin, atan
toDegrees
toRadians
primeri rabe trigonometričnih funkcij in pretvorb:
Math.sin(90): 0.8939966636005579 Math.cos(90): -0.4480736161291701 Math.tan(90): -1.995200412208242 Math.asin(-0): 0.0 Math.acos(-0): 1.5707963267948966 Math.atan(90): 1.5596856728972892 Math.toRadians(90) 1.5707963267948966 Math.toDegrees(Math.PI/2): 90.0
round
Math.round( 1.5): 2 Math.round(-1.5): -1 Math.round(Float.NaN): 0 Math.round(Float.NEGATIVE_INFINITY): -2147483648 Math.round(Double.POSITIVE_INFINITY): 9223372036854775807 Math.round(Float.MAX_VALUE): 2147483647 (Float.MAX_VALUE je 3.4028235E38ceil
Math.ceil( 9.01): 10.0 Math.ceil(-9.01): -9.0 Math.ceil(10): 10.0 Math.ceil(-0.03): -0.0 Math.ceil(Double.NaN): NaNfloor
Math.floor( 9.01): 9.0 Math.floor(-9.01): -10.0 Math.floor(10): 10.0 Math.floor(-0.03): -1.0 Math.floor(Double.NaN): NaN
rint
Math.rint( 5.5): 6.0 Math.rint(-5.5): -6.0 Math.rint( 5.49): 5.0 Math.rint(-5.49): -5.0
min, max
Math.min(-1.5, 1.5): -1.5 Math.max(-1.5, 1.5): 1.5 Math.min(0.0, -0.0): -0.0 Math.min(Float.NaN, Float.POSITIVE_INFINITY)); NaN
sqr
Math.sqr(4): 16.0
sqrt
Math.sqrt(45): 6.708203932499369 Math.sqrt(-45): NaNpow(x,y)
Math.pow(2,5): 32.0exp
Math.exp(5): 148.4131591025766 Math.exp(Float.NaN): NaN Math.exp(Float.POSITIVE_INFINITY): Infinity Math.exp(Float.NEGATIVE_INFINITY): 0.0log
Math.log(10): 2.302585092994046 Math.log(-10): NaN Math.log(0.0): -Infinityabs
Math.abs(1234.59): 1234.59 Math.abs(-0.0): 0.0 Math.abs(Float.NEGATIVE_INFINITY): Infinity Math.abs(Float.NaN): NaN
public static void main(String[] arg) {
double stopinj = Double.valueOf(arg[0]).doubleValue(); // dobi vrednost argumenta
// za pretvorbo
double radiani = toRadians(stopinj); // pretvori
System.out.println(" "+stopinj+" stopinj = "+radiani+" radianov.");
}
public static void main(String[] arg) {
int prvi = Integer.valueOf(arg[0]).intValue();
int drugi = Integer.valueOf(arg[1]).intValue();
int vecji1;
if (prvi>drugi) //klasicen if
vecji1 = prvi;
else
vecji1 = drugi;
int vecji2; // operator ?:
vecji2 = (prvi>drugi) ? prvi : drugi; int vecji3; // funkcija max
vecji3 = java.lang.Math.max(prvi,drugi);
System.out.println(" "+vecji1+" "+vecji2+" "+vecji3);
}
public static void main(String[] arg) { int prvi = Integer.valueOf(arg[0]).intValue(); int drugi = Integer.valueOf(arg[1]).intValue(); int rezultat = (int)java.lang.Math.pow(prvi,drugi); System.out.println(" rezultat potenciranja : "+rezultat); }
Popolna dokumentacija se nahaja na spletnem naslovu http://java.sun.com/j2se/1.5.1/docs/api/java/lang/Math.html
Naloga 1
Napišite javanska programa, ki za prvih 10 naravnih števil izpiše : število, njegov kvadrat, kub, število na četrto, peto in šesto potenco. Za vsako posamezno naravno število od 1 do 10, naj se izpis izvrši v lastno vrstico. Prvi program naj zahtevano izvrši brez uporabe funkcij razreda java.lang.Math, v drugem za izračun potenc števil uporabite ta razred.
Naloga 2
Javanski program Vaja6nal2 naj na zaslon izpiše ‘poštevanko’ prvih devetih naravnih števil do števila 10. Izpis, ki se izvrši na zaslonu naj bo poravnan glede na vrednosti enic posameznih števil. Ker trenutno ne znamo oblikovati izpisov, si pomagajte z izpisovanjem presledkov pred številom, ki je krajše od treh mest. Pazite tudi na to, da je med posameznimi števili vsaj en presledek.
Izpis naj bo oblike :
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 . . . .
4 8 16 . . .
. . .
Naloga 3
Napišite demonstracijski program (lahko tudi več), ki bo pokazal razlike v funkcionalnosti funkcij za zaokroževanja iz razreda java.lang.Math. (round, ceil, floor, rint). Primerjajte funkcionalnost funkcij tudi z operatorjem za vsiljeno pretvorbo tipa (cast) ter z direktni prireditvami med podatki različnih tipov.
Naloga 4
Tabelirajte krožnico, ki je v ravnini podana z izhodiščem (središčem) v začetku koordinatnega sistema in ima radij 6. Rezultat programa naj bo izpis koordinat, ki predstavljajo (ovojnico) krožnico v obliki (x,y).