Izraz
Državno natjecanje 2013. / Osnovna Škola 7. razred - 3. zadatak
Prioritet neke matematičke operacije označava njenu prednost pri izračunavanju izraza u odnosu na druge operacije.
Znamo da meñu četiri osnovna matematička operatora najviši prioritet imaju operatori množenja (*) i dijeljenja (/), a najniži operatori zbrajanja (+) i oduzimanja1 (-).
Kako bi naš svijet izgledao kada bi prioritet osnovnih operatora drugačije definirali? Otkrijmo to!
Zadan je niz znakova koji predstavlja matematički izraz sastavljen od prirodnih brojeva i 4 vrste matematičkih operatora: '+', '-', '*' i '/' (cjelobrojno dijeljenje).
U ovom zadatku za svaki operator definirat ćemo novi prioritet. Pojedini operatori, kao i u stvarnosti, moći će imati isti prioritet.
U izrazu uvijek vrijedi da se prvo izvršava operator s najvećim prioritetom. Ako postoji više operatora istog prioriteta, prvo se izvršava onaj najlijeviji.
Tijekom izračunavanja izraza nikada neće doći do dijeljenja s nulom i kao meñurezultat nikada se neće pojaviti broj koji ne stane u 32-bitni cjelobrojni tip podataka (“int” u C/C++-u, “longint” u Pascalu).
ULAZNI PODATCI
U prvom retku nalazi se niz znakova S maksimalne duljine 30 znakova (znamenka, +, -, *, /).
U svakom od sljedećih redaka nalazi se niz znakova koji će sadržavati operatore odreñenog prioriteta.
Ti retci bit će zadani redom od onog koji sadrži operatore najvišeg prioriteta do onog s operatorima najnižeg prioriteta.
IZLAZNI PODATCI
pU prvi redak izlaza treba ispisati vrijednost zadanog izraza.
PRIMJERI TEST PODATAKA
Ulaz
2+3*5
*/
+-
Izlaz
17
Ulaz
5+3*7-4/3-2
*-+/
Izlaz
15
Ulaz
12/5-3*1+1
+-
*
/
Izlaz
3
Objašnjenje
Pojašnjenje trećeg test primjera:
Budući da su operatori zbrajanja i oduzimanja prvi po prioritetu, a najlijeviji meñu njima je operator oduzimanja, on će biti taj koji će se prvi izvršiti.
Nakon njegovog izvršavanja dobivamo izraz “12/2*1+1”. Sada od operatora najvišeg prioriteta preostaje operator zbrajanja.
Kada njega izvršimo dobivamo “12/2*2”. Idući se izvršava operator množenja koji daje izraz “12/4” čija je vrijednost očigledno 3.
Comments