12.07.2015 Views

Skripta dr Željka Jurića

Skripta dr Željka Jurića

Skripta dr Željka Jurića

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Dr. Željko Jurić : Interaktivna računanja u programskom paketu Mathematica /skraćena verzija/Priručnik za laboratorijske vježbe na predmetu “Računarski sistemi”In[33] := 5 = xOut[33] = xSet::setraw : Cannot assign to raw object 5.Iz istog razloga, nemoguće je izvršiti i dodjelu poput 5 = x+3, a pogotovo ne možemo očekivati dabi takva dodjela mogla rezultirati da vrijednost promjenljive x postane 2. Dakle, znak “=” ne smijemoshvatiti kao znak matematičke jednakosti, niti izraz “5 = x + 3” kao matematičku jednačinu (posebno,vidjeli smo da operator “=”, za razliku od matematičke jednakosti, nije komutativan). Ukoliko nam je ciljbio da riješimo jednačinu “5 = x + 3”, to trebamo uraditi na <strong>dr</strong>ugačiji način, o čemu ćemo govoritikasnije. Dodjela poput x + 3 = 5 također nije dobra, jer pomoću nje Mathematica pokušava da dodijelivrijednost 5 izrazu “x + 3”, a ne vrijednost 2 (tj. 5-3) promjenljivoj x:In[34] := x + 3 = 5Out[34] = 5Set::write : Tag Plus in 3+x is Protected.Poruka upozorenja je u ovom slučaju <strong>dr</strong>ugačija, ali također ukazuje da dodjela nije legalna. Uglavnom,poruke Set::setraw ili Set::write najčešći su pokazatelji da smo pokušali izvršiti nekorektnu dodjelu.Nema nikakvog razloga da ne možemo nekoj promjenljivoj dodijeliti listu vrijednosti. Liste mogusa<strong>dr</strong>žavati i simboličke izraze. Na primjer:In[35] := lista = {3, –5,{1, 2}, x+1, {2, {x 2 , 0}}, x+y}Out[35] = {3, –5, {1, 2}, 1+x, {2, {x 2 , 0}}, x+y}In[36] := lista 2Out[36] = {9, 25, {1, 4}, (1+x) 2 , {4, {x 4 , 0}}, (x+y) 2 }In[37] := {lista, lista 2 }Out[37] = {{3, –5, {1, 2}, 1+x, {2, {x 2 , 0}}, x+y}, {9, 25, {1, 4}, (1+x) 2 , {4, {x 4 , 0}}, (x+y) 2 }}Kasnije ćemo vidjeti kako iz listi možemo izdvajati pojedine dijelove.Dodjela koja se vrši pomoću operatora “=” i “:=” je trajna, u smislu da vrijedi sve do nove dodjele,ili eksplicitnog brisanja naredbom Clear. Ponekad je, međutim, mnogo poželjnije nekom simboludodijeliti vrijednost privremeno, preciznije samo dok traje izračunavanje nekog izraza. Na primjer,pretpostavimo da želimo da izračunamo vrijednosti izraza “(3+2 x) (2+x) 2 ” za nekoliko različitihvrijednosti promjenljive x. Jedan od načina da to postignemo je sljedeći:In[38] := izraz := (3+2 x) (2+x) 2In[39] := x = 4; izrazOut[39] = 396In[40] := x = y+1; izrazOut[40] = (3+2 (y+1)) (3+y) 2In[41] := x = –3; izrazOut[41] = –3Osnovni nedostatak ovog rješenja je što nakon svake dodjele promjenljiva “x” zardžava svojuvrijednost do nove izmjene. Stoga su u paketu Mathematica uvedena tzv. pravila. Pravila se definirajupomoću operatora “–>” (koji se sastoji od dva znaka, “–” i “>”) koji editor automatski pretvori u znak“” (koji možemo direktno unijeti sa tastature kao kombinaciju |Esc|–>|Esc|), pa ćemo ga kao takvog ipisati. Pomoću pravila tipa ime izraz (npr. x 3) moguće je izvršiti privremenu dodjelu koja vrijedisamo za vrijeme izračunavanja nekog <strong>dr</strong>ugog izraza, preciznije izraza na koji je pravilo primijenjeno. Da– 19 –

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!