Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

Operatory arytmetyczne i przypisania

W Parku Jurajskim prawidłowe obliczenia są kluczowe dla bezpieczeństwa - od kalkulacji dawek leków dla dinozaurów po określanie zapotrzebowania na zasoby. JavaScript oferuje zestaw operatorów, które pozwalają na wykonywanie różnorodnych operacji matematycznych i przypisań.

Operatory arytmetyczne

W laboratorium genetycznym Dr. Wu, operacje matematyczne są niezbędne do obliczania sekwencji DNA i prognozowania wzrostu dinozaurów. Podobnie, w JavaScript mamy operatory arytmetyczne do wykonywania podstawowych operacji matematycznych:

1// Dodawanie (+)
2let iloscRaptorów = 5;
3let nowaNarybek = 3;
4let całkowitaIloscRaptorów = iloscRaptorów + nowaNarybek; // 8
5
6// Odejmowanie (-)
7let dinozauryOgółem = 57;
8let przeniesioneDinozaury = 12;
9let pozostałeDinozaury = dinozauryOgółem - przeniesioneDinozaury; // 45
10
11// Mnożenie (*)
12let dzienneZapotrzebowanieNaPokarm = 20; // kg na dinozaura
13let iloscTroodontów = 7;
14let całkowiteZapotrzebowanie = dzienneZapotrzebowanieNaPokarm * iloscTroodontów; // 140 kg
15
16// Dzielenie (/)
17let zapasyMięsa = 1500; // kg
18let dzienneZużycie = 300; // kg
19let wystarczyNaDni = zapasyMięsa / dzienneZużycie; // 5 dni
20
21// Reszta z dzielenia (%)
22let liczbaJaj = 17;
23let pojemnośćInkubatora = 4;
24let jajaPozostałePoZapełnieniuInkubatorów = liczbaJaj % pojemnośćInkubatora; // 1
25
26// Inkrementacja (++) - zwiększenie o 1
27let odwiedzającyPark = 120;
28odwiedzającyPark++; // teraz odwiedzającyPark = 121
29
30// Dekrementacja (--) - zmniejszenie o 1
31let poziomZagrożenia = 5;
32poziomZagrożenia--; // teraz poziomZagrożenia = 4
33
34// Potęgowanie (**)
35let początkowa_populacja = 2;
36let lata_rozrodu = 3;
37let szacowana_populacja = początkowa_populacja ** lata_rozrodu; // 2^3 = 8

Kolejność działań

Podobnie jak w matematyce, JavaScript respektuje kolejność wykonywania działań. Jeśli Dr. Wu musi obliczyć, ile kilogramów mięsa potrzeba dla wszystkich mięsożernych dinozaurów, musi przestrzegać właściwej kolejności:

1let małeMięsożerne = 5;
2let dużeMięsożerne = 3;
3let dzienneSpożycieMałych = 50; // kg
4let dzienneSpożycieDużych = 300; // kg
5
6// Nieprawidłowe obliczenie (brak nawiasów)
7let nieprawidłoweZużycie = małeMięsożerne + dużeMięsożerne * dzienneSpożycieDużych;
8console.log(nieprawidłoweZużycie); // 905 (nieprawidłowy wynik!)
9
10// Prawidłowe obliczenie (z nawiasami)
11let prawidłoweZużycie = (małeMięsożerne * dzienneSpożycieMałych) + (dużeMięsożerne * dzienneSpożycieDużych);
12console.log(prawidłoweZużycie); // 1150 kg (prawidłowy wynik)

Standardowa kolejność działań (PEMDAS):

  1. Nawiasy - (...)
  2. Potęgi - **
  3. Mnożenie i dzielenie - * /
  4. Dodawanie i odejmowanie - + -

Operatory przypisania

Gdy w Parku Jurajskim aktualizujemy stany zasobów lub populacji dinozaurów, używamy operacji przypisania. Analogicznie, JavaScript oferuje różne operatory przypisania, które łączą operację arytmetyczną z przypisaniem:

1// Podstawowe przypisanie (=)
2let liczbaT_Rexów = 2;
3
4// Przypisanie z dodawaniem (+=)
5let zwiedzający = 100;
6zwiedzający += 50; // równoważne zwiedzający = zwiedzający + 50; (teraz 150)
7
8// Przypisanie z odejmowaniem (-=)
9let zasobyPaliwa = 1000;
10zasobyPaliwa -= 250; // równoważne zasobyPaliwa = zasobyPaliwa - 250; (teraz 750)
11
12// Przypisanie z mnożeniem (*=)
13let populacjaDilofozaurów = 4;
14populacjaDilofozaurów *= 2; // równoważne populacjaDilofozaurów = populacjaDilofozaurów * 2; (teraz 8)
15
16// Przypisanie z dzieleniem (/=)
17let racjaPokarmowa = 1200;
18racjaPokarmowa /= 4; // równoważne racjaPokarmowa = racjaPokarmowa / 4; (teraz 300)
19
20// Przypisanie z resztą z dzielenia (%=)
21let miejscaWJeepach = 20;
22miejscaWJeepach %= 6; // równoważne miejscaWJeepach = miejscaWJeepach % 6; (teraz 2)
23
24// Przypisanie z potęgowaniem (**=)
25let wzrostPopulacji = 2;
26wzrostPopulacji **= 3; // równoważne wzrostPopulacji = wzrostPopulacji ** 3; (teraz 8)

Łączenie operatorów arytmetycznych i przypisania

Zarządzanie zasobami w Parku Jurajskim często wymaga złożonych obliczeń. W praktyce, często łączymy różne operacje:

1// Scenariusz: Aktualizacja zasobów parku po wykluciu się nowych dinozaurów
2
3let dostępnePokoje = 50;
4let zajętePokoje = 30;
5let noweDinozaury = 5;
6let personelOpiekuńczy = 15;
7
8// Aktualizacja dostępnych pokoi
9dostępnePokoje -= noweDinozaury; // 45
10
11// Obliczenie nowego poziomu zapełnienia (w procentach)
12let poziomZapełnienia = (zajętePokoje + noweDinozaury) / (zajętePokoje + dostępnePokoje) * 100;
13console.log(`Poziom zapełnienia parku: ${poziomZapełnienia}%`); // 43.75%
14
15// Obliczenie potrzebnego dodatkowego personelu (1 opiekun na 3 dinozaury)
16let wymaganyPersonel = Math.ceil((zajętePokoje + noweDinozaury) / 3);
17let dodatkowyPersonel = wymaganyPersonel - personelOpiekuńczy;
18
19if (dodatkowyPersonel > 0) {
20  console.log(`Potrzebujemy zatrudnić ${dodatkowyPersonel} dodatkowych opiekunów.`);
21} else {
22  console.log("Mamy wystarczającą liczbę personelu.");
23}

Nota o typach i konwersji

Podobnie jak w rzeczywistych obliczeniach w Parku Jurajskim, gdzie używamy różnych jednostek (kilogramy pokarmu, litry wody, ilość osobników), w JavaScript musimy zwracać uwagę na typy danych podczas operacji:

1// Uwaga na operacje na stringach!
2let raport = "Raport #";
3let numerRaportu = 42;
4let pełnyRaport = raport + numerRaportu; // "Raport #42" (konkatenacja stringów)
5
6// Różnica między numerycznymi operacjami a konkatenacją stringów
7let wynik1 = 5 + 10; // 15 (liczba)
8let wynik2 = "5" + "10"; // "510" (string)
9let wynik3 = "5" + 10; // "510" (string, 10 zostało skonwertowane na string)
10let wynik4 = 5 + "10"; // "510" (string, 5 zostało skonwertowane na string)

Podsumowanie

Operatory arytmetyczne i przypisania w JavaScript, podobnie jak obliczenia w Parku Jurajskim, są fundamentem dla bardziej złożonych operacji. Pozwalają na:

  • Wykonywanie podstawowych operacji matematycznych (+, -, *, /, %, **)
  • Inkrementację i dekrementację wartości (++, --)
  • Efektywne aktualizowanie wartości zmiennych (+=, -=, *=, /=, %=, **=)

Pamiętaj o kolejności działań i typach danych podczas wykonywania operacji - jedna pomyłka w obliczeniach może prowadzić do nieprzewidzianych sytuacji, zarówno w kodzie jak i w parku pełnym drapieżnych dinozaurów!

W następnej lekcji przyjrzymy się operatorom porównania i logicznym, które są kluczowe dla podejmowania decyzji - zarówno przez system zabezpieczeń Parku Jurajskiego, jak i przez nasze programy JavaScript.

Przejdź do CodeWorlds