JavaScript - Matematički operatori


Korištenje matematičkog objekta (Math Object)

JavaScript Math objekt nudi niz korisnih svojstava i metoda za izvođenje matematičkih zadataka poput generisanja slučajnih brojeva, zaokruživanja brojeva, dobijanja vrijednosti poput PI itd. Takođe uključuje metode za izvođenje matematičkih zadataka koje je obično teško riješiti ili su suviše složeno za izvođenje pomoću standardnih matematičkih operatora (+, -, *, i /) kao što je izračunavanje sinusnih ili kosinusnih vrijednosti.



Svojstvo Math.PI

Svojstvo Math.PI predstavlja omjer opsega kruga i njegovog prečnika. PI (π) je matematička konstanta, što je približno 3,14159: Math.PI = π ≈ 3,14159. Evo primjera koji izračunava površinu kruga pomoću svojstva Math.PI.

// Ispisivanje vrijednosti PI
document.write(Math.PI);  // Ispisuje: 3.141592653589793
 
// Funkcija za izračunavanje površine kruga
function calculateCircleArea(radius){
    var area = (Math.PI) * radius * radius;
    return area;
}
 
document.write(calculateCircleArea(5));  // Ispisuje: 78.53981633974483
document.write(calculateCircleArea(10));  // Ispisuje: 314.1592653589793
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JavaScript PI svojstvo matematičkog objekta</title>
</head>
<body>
<script>
    // Ispisivanje vrijednosti PI
    document.write(Math.PI + "<br>");  // Ispisuje: 3.141592653589793
     
    // Funkcija za izračunavanje površine kruga
    function calculateCircleArea(radius){
        var area = (Math.PI) * radius * radius;
        return area;
    }
     
    document.write(calculateCircleArea(5) + "<br>");  // Ispisuje: 78.53981633974483
    document.write(calculateCircleArea(10) + "<br>");  // Ispisuje: 314.1592653589793
</script>
</body>
</html>


Dobijanje apsolutne vrijednosti

Metoda Math.abs() koristi se za izračunavanje apsolutne (pozitivne) vrijednosti broja. Zbog toga se -1 vraća kao 1, -5 kao 5 itd. Pogledajmo primjer:

document.write(Math.abs(-1));  // Ispisuje: 1
document.write(Math.abs(1));  // Ispisuje: 1
document.write(Math.abs(-5));  // Ispisuje: 5
document.write(Math.abs(-10.5));  // Ispisuje: 10.5
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JavaScript Dobijanje apsolutne vrijednosti broja</title>
</head>
<body>
<script>
    document.write(Math.abs(-1) + "<br>");  // Ispisuje: 1
    document.write(Math.abs(1) + "<br>");  // Ispisuje: 1
    document.write(Math.abs(-5) + "<br>");  // Ispisuje: 5
    document.write(Math.abs(-10.5));  // Ispisuje: 10.5
</script>
</body>
</html>


Generisanje slučajnog broja

Metoda Math.random() koristi se za generisanje slučajnog broja s pomičnim zarezom u rasponu od 0, ali ne uključujući 1. Međutim, ako želite slučajni cijeli broj između nule i cijelog broja većeg od jedan, možete koristiti sljedeće rješenje:

document.write(Math.random());  // Očekivani izlaz: broj između 0 i 1
 
// Funkcija za stvaranje slučajnog cijelog broja
function getRandomInt(max) {
    return Math.floor(Math.random() * max);
}
 
document.write(getRandomInt(3));  // Očekivani izlaz: 0, 1 or 2
document.write(getRandomInt(1));  // Očekivani izlaz: 0
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JavaScript Generiraj slučajni cijeli broj</title>
</head>
<body>
<script>
    document.write(Math.random() + "<br>");  // Očekivani izlaz: broj između 0 i 1
 
    // Funkcija za stvaranje slučajnog cijelog broja
    function getRandomInt(max) {
        return Math.floor(Math.random() * max);
    }
     
    document.write(getRandomInt(3) + "<br>");  // Očekivani izlaz: 0, 1 ili 2
    document.write(getRandomInt(1));  // Očekivani izlaz: 0
</script>
</body>
</html>


Izračunavanje kvadratnog korijena broja

Metoda Math.sqrt() koristi se za izračunavanje kvadratnog korijena broja: Math.sqrt(x) = x. Ako je broj negativan, vraća se NaN. Pogledajmo primjer:

document.write(Math.sqrt(4));  // Ispisuje: 2
document.write(Math.sqrt(16));  // Ispisuje: 4
document.write(Math.sqrt(0.25));  // Ispisuje: 0.5
document.write(Math.sqrt(-9));  // Ispisuje: NaN
 
/* Funkcija za izračunavanje hipotenuze.
Hipotenuza je najduža stranica pravouglog trokuta. */
function calculateHypotenuse(a, b) {
    return Math.sqrt((a * a) + (b * b));
}
 
document.write(calculateHypotenuse(3, 4));  // Ispisuje: 5
document.write(calculateHypotenuse(5, 12));  // Ispisuje: 13
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JavaScript Izračunavanje kvadratnog korijena broja</title>
</head>
<body>
<script>
    document.write(Math.sqrt(4) + "<br>");  // Ispisuje: 2
    document.write(Math.sqrt(16) + "<br>");  // Ispisuje: 4
    document.write(Math.sqrt(0.25) + "<br>");  // Ispisuje: 0.5
    document.write(Math.sqrt(-9) + "<br>");  // Ispisuje: NaN
     
    /* Funkcija za izračunavanje hipotenuze.
     Hipotenuza je najduža stranica pravouglog trokuta. */
    function calculateHypotenuse(a, b) {
        return Math.sqrt((a * a) + (b * b));
    }
     
    document.write(calculateHypotenuse(3, 4) + "<br>");  // Ispisuje: 5
    document.write(calculateHypotenuse(5, 12));  // Ispisuje: 13
</script>
</body>
</html>


Zaokruživanje brojeva

JavaScript Math objekt nudi nekoliko metoda za zaokruživanje brojeva, a svaka ima svoju svrhu. Sljedeći dio opisaće ove metode u detalje.



Metoda ceil()

Metoda Math.ceil() zaokružuje broj do sljedećeg najvišeg cijelog broja. Dakle, 3,5 postaje 4, -5,7 postaje -5 (jer je -5 veće od -6). Pogledajmo primjer:

document.write(Math.ceil(3.5));  // Ispisuje: 4
document.write(Math.ceil(-5.7));  // Ispisuje: -5
document.write(Math.ceil(9.99));  // Ispisuje: 10
document.write(Math.ceil(-9.99));  // Ispisuje: -9
document.write(Math.ceil(0));  // Ispisuje: 0
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Zaokruživanje brojeva u JavaScript</title>
</head>
<body>
<script>
    document.write(Math.ceil(3.5) + "<br>");  // Ispisuje: 4
    document.write(Math.ceil(-5.7) + "<br>");  // Ispisuje: -5
    document.write(Math.ceil(9.99) + "<br>");  // Ispisuje: 10
    document.write(Math.ceil(-9.99) + "<br>");  // Ispisuje: -9
    document.write(Math.ceil(0));  // Ispisuje: 0
</script>
</body>
</html>


Metod floor()

Metoda Math.floor() zaokružuje broj na sljedeći najniži cijeli broj. Dakle, 3,5 postaje 3, -5,7 postaje -6 (jer je -6 manje od -5). Pogledajmo primjer:

document.write(Math.floor(3.5));  // Ispisuje: 3
document.write(Math.floor(-5.7));  // Ispisuje: -6
document.write(Math.floor(9.99));  // Ispisuje: 9
document.write(Math.floor(-9.99));  // Ispisuje: -10
document.write(Math.floor(0));  // Ispisuje: 0
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Zaokruživanje brojeva u JavaScript</title>
</head>
<body>
<script>
    document.write(Math.floor(3.5) + "<br>");  // Ispisuje: 3
    document.write(Math.floor(-5.7) + "<br>");  // Ispisuje: -6
    document.write(Math.floor(9.99) + "<br>");  // Ispisuje: 9
    document.write(Math.floor(-9.99) + "<br>");  // Ispisuje: -10
    document.write(Math.floor(0));  // Ispisuje: 0
</script>
</body>
</html>


Metoda round()


Metoda Math.round() zaokružuje broj na najbliži cijeli broj na takav način da ako je decimalni dio 0,5 ili veći, broj se zaokružuje prema gore, inače zaokružuje prema dole. Dakle, 3,5 postaje 4, -5,7 postaje -6, 4,49 postaje 4 i tako dalje. Pogledajmo primjer:

document.write(Math.round(3.5));  // Ispisuje: 4
document.write(Math.round(-5.7));  // Ispisuje: -6
document.write(Math.round(7.25));  // Ispisuje: 7
document.write(Math.round(4.49));  // Ispisuje: 4
document.write(Math.round(0));  // Ispisuje: 0
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JavaScript Zaokruživanje broja do najbližeg cijelog broja</title>
</head>
<body>
<script>
    document.write(Math.round(3.5) + "<br>");  // Ispisuje: 4
    document.write(Math.round(-5.7) + "<br>");  // Ispisuje: -6
    document.write(Math.round(7.25) + "<br>");  // Ispisuje: 7
    document.write(Math.round(4.49) + "<br>");  // Ispisuje: 4
    document.write(Math.round(0));  // Ispisuje: 0
</script>
</body>
</html>


Pronalaženje najvećeg i najmanjeg broja

Metode Math.max() i Math.min() koriste se za pronalaženje broja koji je najveći ili najmanji u grupi brojeva. Pogledajmo primjer:

document.write(Math.max(1, 3, 2));  // Ispisuje: 3
document.write(Math.max(-1, -3, -2));  // Ispisuje: -1
 
document.write(Math.min(1, 3, 2));  // Ispisuje: 1
document.write(Math.min(-1, -3, -2));  // Ispisuje: -3
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JavaScript Pronalaženje najvećeg i najmanjeg broja u skupu</title>
</head>
<body>
<script>
    document.write(Math.max(1, 3, 2) + "<br>");  // Ispisuje: 3
    document.write(Math.max(-1, -3, -2) + "<br>");  // Ispisuje: -1
     
    document.write(Math.min(1, 3, 2) + "<br>");  // Ispisuje: 1
    document.write(Math.min(-1, -3, -2));  // Ispisuje: -3
</script>
</body>
</html>

Takođe možete pronaći maksimalnu ili minimalnu vrijednost unutar niza ili objekta sličnog nizu pomoću metode apply(), kao što je prikazano u sljedećem primjeru:

var numbers = [1, 3, 2];
 
document.write(Math.max.apply(null, numbers));  // Ispisuje: 3
document.write(Math.min.apply(null, numbers));  // Ispisuje: 1

Postoji još jednostavniji način za to. U ECMAScriptu 6 možete postići istu stvar koristeći novi operator širenja (...), kao što je prikazano u sljedećem primjeru:

var numbers = [1, 3, 2];
 
document.write(Math.max(...numbers));  // Ispisuje: 3
document.write(Math.min(...numbers));  // Ispisuje: 1
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JavaScript prosljeđivanje niza metodama Max i Min pomoću operatora Spread</title>
</head>
<body>
<script>
    var numbers = [1, 3, 2];
 
    document.write(Math.max(...numbers) + "<br>");  // Ispisuje: 3
    document.write(Math.min(...numbers));  // Ispisuje: 1
</script>
    <p><strong>Napomena:</strong> Operator širenja nije podržan u Internet Exploreru.</p>
</body>
</html>


Povećavanje brojeva - metoda Math.pow()

Metoda Math.pow() koristi se za povećavanje broja do određene snage. Izraz Math.pow(x, y) - ekvivalentan je matematičkom xy. Pokazuje koliko se puta baza x pomnoži s eksponentom y. Pogledajmo primjer:

document.write(Math.pow(3, 2));  // Ispisuje: 9
document.write(Math.pow(0, 1));  // Ispisuje: 0
document.write(Math.pow(5, -2));  // Ispisuje: 0.04
document.write(Math.pow(16, 0.5));  // Ispisuje: 4 (kvadratni korijen od 4)
document.write(Math.pow(8, 1/3));  // Ispisuje: 2 (korijen kocke od 8)
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JavaScript Povećavanje brojeva - metoda Math.pow()</title>
</head>
<body>
<script>
    document.write(Math.pow(3, 2) + "<br>");  // Ispisuje: 9
    document.write(Math.pow(0, 1) + "<br>");  // Ispisuje: 0
    document.write(Math.pow(5, -2) + "<br>");  // Ispisuje: 0.04
    document.write(Math.pow(16, 0.5) + "<br>");  // Ispisuje: 4 (kvadratni korjen od 4)
    document.write(Math.pow(8, 1/3));  // Ispisuje: 2 (korijen kocke od 8)
</script>
</body>
</html>

Pozitivni eksponent označava množenje (52 = 5 x 5 = 25), negativni eksponent označava dijeljenje (5-2 = 1/52 = 0,04), dok razlomak eksponenta označava korijen baze.



Izvođenje trigonometrijskih operacija

JavaScript objekt Math takođe nudi nekoliko trigonometrijskih metoda kao što su sin(), cos(), tan() za izvođenje trigonometrijskih operacija. Ove metode rade u radijanima, tako da morate pomnožiti bilo koja mjerenja stepena sa π/180 prije nego što ih upotrijebite. PI radijani su jednaki 180 stepeni: π rad = 180°. Prema tome, π/2 radijana je jednako 90 stepeni, π/3 radijana je jednako 60 stepeni, i tako dalje. Pogledajmo primjer:

document.write(Math.sin(0 * Math.PI / 180));  // Ispisuje: 0
document.write(Math.sin(90 * Math.PI / 180));  // Ispisuje: 1
document.write(Math.cos(0 * Math.PI / 180));  // Ispisuje: 1
document.write(Math.cos(180 * Math.PI / 180));  // Ispisuje: -1
document.write(Math.tan(0 * Math.PI / 180));  // Ispisuje: 0
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JavaScript Trigonometrijske operacije</title>
</head>
<body>
<script>
    document.write(Math.sin(0 * Math.PI / 180) + "<br>");  // Ispisuje: 0
    document.write(Math.sin(90 * Math.PI / 180) + "<br>");  // Ispisuje: 1
    document.write(Math.cos(0 * Math.PI / 180) + "<br>");  // Ispisuje: 1
    document.write(Math.cos(180 * Math.PI / 180) + "<br>");  // Ispisuje: -1
    document.write(Math.tan(0 * Math.PI / 180));  // Ispisuje: 0
</script>
</body>
</html>