$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \newcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$
Uvod - Priručnik za JavaScript / Matematički izrazi

Matematički izrazi

  • Dozvoljeno polaganje
  • -
  • Nema
  • Jovan Popović
  • 5/12/2017

U programima možete da uradite sve što možete da izračunate u drugim predmetima kao što je matematika, fizika, hemija. Razlika je u tome što ne morate samo da računate izraze i formule, nego će programi to uraditi za vas. Sada ćemo videti nekoliko zadataka iz matematike koje možemo da rešimo programiranjem.

Primer 1

Izračunaj proizvod zbira brojeva 1874 i 2437 i razlike brojeva 2315 i 974, tj. (1874 + 2437) * (2315 - 974).

zbir = 1874 + 2437
razlika = 2315 - 974

proizvod = zbir * razlika

Primer 2

Dužina stranice kvadrata je 4. Izračunajte njegovu površinu i obim.

a = 4

povrsina = a*a
obim = 4*a

Primer 3

Pera je zasadio 380 stabala jabuke. Đura je zasadio 142 stabla jabuka više od Pere, a Mika je zasadio dva puta više od Pere. Koliko su stabala zasadili zajedno?

pera = 380
djura = pera + 142
mika = pera * 2

zajedno = pera + djura + mika

Primer 4

Dužina fudbalskog terena je 95 metara, a širina 47 metara. Ana trči po pravougaonoj stazi koja je sa svake strane terena spolja udaljena po 5 metara. Koliko ona pretrči, ako se zna da je optrčala teren 3 puta.

duzina_terena = 95
sirina_terena = 47
rastojanje = 5
duzina_staze = duzina_terena + 2 * rastojanje
sirina_staze = sirina_terena + 2 * rastojanje
obim_staze = 2 * (duzina_staze + sirina_staze)

pretrcala = 3 * obim_staze

Primer 5

Skakač u dalj je u kvalifikacijama u prvoj seriji skočio 8,12, u drugoj 8,23, a u trećoj 8,17 metara. Koliko je iznosio njegov prosečni skok?

prva = 8.12
druga = 8.23
treca = 8.17

prosek = (prva + druga + treca) / 3

Kao što vidite bilo kakav matematički izraz koji možete da napišete na tabli ili u svesci, možete da napišete i u programu. Samo što će program da izrašuna uzraze za vas kada ih jednom napišete.

Izraz je kombinacija vrednosti ili promenljivih (koje ćemo operandi) i operatora (na primer plus, minus, puta) pomoću kojih se izračunava neki rezultat. Operatori koriste operande i određuju rezultat izraza. Primeri nekih izraza koji koriste matematičke operatore i brojeve su:

  • 2*5 - operator množenja množi dva operanda (brojeve 2 i 5) i izračunava vrednost rezultata 10.
  • 19+4 - operator sabiranja sabira dva operanda (brojeve 19 i 4) i izračunava vrednost rezultata 23.
  • X-2 - operator oduzimanja oduzima jedan operand (broj 2) od drugog (promenljive X)

Kada izračunate vrednost izraza, rezultat se može upisati u neku promenljivu naredbom dodele.

U sledećoj tabeli su predstavljeni aritmetički operatori koje možete da koristite u izrazima:

OperatorNazivPrimerOpis
+Plusx=y+2Čita vrednost promenljive y, uvećava je za 2 i upisuje rezultat u promenljivu x.
-Minusx=y-2Čita vrednost promenljive y, umanjuje je za 2 i upisuje rezultat u promenljivu x.
-Promena znakax= -yČita vrednost promenljive y, i kao rezultat vraća vrednost suprotnog znaka koju upisuje u promenljivu x.
*Putax=y*2Čita vrednost promenljive y, množi je sa 2 i upisuje rezultat u promenljivu x.
/Deljenjex=y/2Čita vrednost promenljive y, deli je sa 2 i upisuje rezultat u promenljivu x.
%Ostatakx=y%2Čita vrednost promenljive y, pronalazi ostatak pri deljenju sa brojem dva i vrednost ostatka upisuje u promenljivu x.

Operator deljenja će vratiti celobrojni deo količnika ako se dele celi brojevi. Na primer, 10/3 daje rezultat 3. Ako vam je potreban količnik kao realni broj pomnožite denjenik ili delilac sa 1.0, npr. 1.0*10/3 što će dati rezultat 3.3333333...

Pored ovih operatora, postoje i inkrement (++) i dekrement (--) koji se primenjuju na jednoj promenljivoj. Ovi operatori su skraćeni oblici za uvećavanje ili umanjivanje za 1. Na primer, x++ je isto što i x=x+1, dok je x-- isto što i x=x-1. Iako ih nećemo lesto koristiti u ovom kursu često ćete ih naći u drugim primerima.

U slučaju da se više operatora koristi u istom izrazu (npr. 3 + 5 * - 9 – 2 * 4) prioriteti izračunavanja su slični prioritetima u matematici (tj. prvo se radi množenje, deljenje, pa onda sabiranje i oduzimanje). Naravno uvek možete da promenite prioritet operatora tako što koristite zagrade kao u matematici.

Operator + se može koristiti i sa string promenljivama, u tom slučaju se „spaja“ sadržaj dva stringa koji se sabiraju (tzv. konkatenacija). U slučaju da se sabira string i broj (ili neki drugi objekat koji nije string), broj će se pretvoriti u string (npr. 17 u "17"):

x = 'Zdravo'
y = "Svete"
string1 = x + y         // ZdravoSvete
string2 = x + 2         // Zdravo2

Aritmetičke operatore možete da koristite da bi izračunali različite izraze kao u sledećem primeru:

 x = 17
 alert( "Ostatak pri deljenju broja " + x + " sa 5 je " +  ( x % 5) ) // Rezultat je 2
 alert( "Količnik pri deljenju broja " + x + " sa 5 je " +  (x / 5.0 ) ) // Rezultat je 3.2
 alert( "Ostatak pri deljenju broja " + x + " sa 4 je " +  ( x % 4) ) // Rezultat je 1
 alert( "Ceo deo količnika pri deljenju broja " + x + " sa 4 je " +  (x / 4 ) ) // Rezultat je 4

Primer

Sa aritmetičkim izrazima možemo da pretvorimo dužine izražene u metrima, decimetrima i centimetrma (npr. 2m 4dm 7cm ili 1m 5dm 1cm) u centimetre:

prvaDuzina = 100*2 + 10*4 + 7 //2m 4dm 7cm
drugaDuzina = 100*1 + 10*5 + 1 //1m 5dm 1cm

Primer

Potrebno je napisati program koji sabira vremenske intervale izražene u satima, minutima i sekundama, npr. 2h 12min 45sec i 7h 40min 40sec.

sati1 = 2, min1 = 12, sek1 = 45
sati2 = 7, min2 = 40, sek2 = 40
  
sek = (sek1 + sek2) % 60
prenos = (sek1 + sek2) / 60

min = (min1 + min2 + prenos) % 60
prenos = (min1 + min2 + prenos) / 60

sati = sati1 + sati2 + prenos

Prvo ćemo da nađemo zbir sekundi. Pošto broj sekundi ne može da bude veći od 60, ali može da se desi da zbir sekundi bude veći od 60 (npr. ako sabiramo 2h 12min 45sec i 7h 40min 40sec dobićemo 85 sekundi), u promenljivu ćemo upisati ostatak zbira pri deljenju sa 60 (tj. %60) što je u ovom slučaju 25′′. Zašto ostatak? Zato što sve što bude preko ostatka predstavlja vrednost koja će biti preneta u minute. Pošto možda treba da prenesemo broj sekundi iz zbira koji je prešao preko 60, moramo da izračunamo i količnik pri deljenju ovog zbira sa 60. To je vrednost u promenljivoj prenos koji ćemo dodati minutima. Na isti način ćemo izračunati i vrednost minuta kao zbir minuta sabranim sa prenosom od sekundi, gde opet nalazimo ostatak pri deljenju sa 60 da ne bismo upisali broj veći od 60. Opet moramo da izračunamo vrednost koja će biti preneta u sate kao količnik ovog zbira i broja 60. Na kraju, da bismo odredili sate, potrebno je da saberemo sate i dodamo vrednost koju smo preneli.