Yasac - računarski program namjenjen matematičoj algebri

Osnovni pojmovi Osnovni element u programu je lista. Član liste je objekat koji može biti broj, karakter, string, pa čak i funkcija. Svi elementi se čuvaju kao sintaksiči izraz, a ne prema svojoj vrijednosti. Program čeka na komandu korisnika izrazom In>, rezultat slijedi poslije Out>. Rezultat predhodnog izraza se predstavlja u tekućm izrazu sa %. Npr.: In>N(Sqrt(2)/2) In>ArcCos(%) kao rezultat predhodnog se dobija Out>0.7854 a to je jednako Pi/4. Dodjela vrijednosti je operatorom := . Program razlikuje velika i mala slova, tj. A je različto od a. Izlaz iz programa je naredbom quit ili Exit(). Restartovanje programa komandom restart. Program pamti predhodne sesije u fajlu history.log. Svaka komanda treba da se završava sa ; , obavezno u skriptu, dok u konzoli ne mora. Konstanta π je predefinisana kao Pi. Funkcija se definiše kao ime(parametar1, param2, ...):=izraz sa parametrima. Moguće je preklapanje funkcija, pri čmu se moraju razlikovati parametri funkcije. Programski blok počnje sa [, a završava sa ], ( [programski blok] ). Nastavak izraza u sljedećm reduse označva sa \ , npr.: In> While(i<=20) [ L:= L*i; \ i := i+2; ]; Out> True; Čest oblik sintakse je fja(x) y. Ovim se podrazumjeva primjena funkcije fja na y, tj. fja(y). Pomoć se može potražiti naredbom ??, ili ?naredba. Brojevi Brojevi se reprezentuju: • U eksponencijalnom obliku, npr. 12.5e-6 • Izrazom sa decimalnom tačom -9.879 • Uobliku razlomka Program se trudi da zadrži vrijednost u obliku u kom su predstavljeni parametri izraza. Naredbom N(x), x se prikaže u obliku sa pokretnim zarezom, npr. In>N(4/3) Out>1.3333333333 .

Znakovni podaci Vrijednost objekta moze biti znakovnog tipa, gdje je manipulisanje slično kao u programskom jeziku C: • Definiše se između dvostrukih navodnika, • Ukoliko zelimo navesti navodnike u tekstu, unosimo \". Primjer: In> a:="ovo je \"string\"" Out>"ovo je "string"" In>Echo(a) Out>ovo je "string" Vektori i matrice Vektor je lista, a matrica je lista lista. Liste se definišu među vitičstim zagradama, sa elementima odvojenim zarezom, npr. In>a:={{1,2},{3,4}} In>PrettyForm(%) Out> / \ | (1) (2) | | (3) (4) | \ / Definisanje vektora je olakšano operatorom .. , npr. In>c:=(1 .. 5) Out>{1,2,3,4,5} Obavezno operator razdvojiti od ostatka izraza! Indeksiranje člana se obavlja pomoć uglastih zagrada, npr.: In>a[2][2] Out>4 Logičke vrijednosti Logičke vrijednosti su rezultati logičih izraza tipa == ili >= i mogu biti • True - tačno • False - netačno Operatori Operatori su indentični programskom jeziku C, sa tim što ne postoji tenarni operator ?. +,-,/,*,!=,... Većina analitičih operatora je "nitljiva". Ovo podrazumjeva primjenu operatora ili funkcije na listu, za svaki element posebno. Tako je Sin({1,2,3}) jednako {Sin(1), Sin(2), Sin(3)}. Kontrolne strukture Strukture kružne petlje se realizuju naredbama While i ForEach. While(uslov) [blok komandi;]; ForEach(x, lista) [blok komandi;]; Ova naredba dodjeljuje x svaku od vrijednosti liste lista i sa tim vrijednostima x izvršava blok komandi.

Strukture uslovnog grananja se realizuju naredbom If. If(uslov, naredba); Izvršava naredbu ako je uslov ispunjen i vrać rezultat u suprotnom je povratna vrijednost False. If(uslov, naredbaAkoTačno, naredbaAkoNetačno); Kao i predhodno, samo što se za netačn uslov izvršava druga naredba i njen rezultat je povratna vrijednost If naredbe. Izabrane funkcije Yacas posjeduje već broj ugrađnih funkcija i ovdje je navedeno samo njih nekoliko. • D(x) funkcija(x) - izvod funkcije funkcija(x) po promjenljivoj x. • D(x, n) f(x) - n - ti izvod funkcije • N(izraz) - daje numeriču vrijednost izraza, razlomka na primjer • Precision(n) - postavlja preciznost rezultata na n cifara • Simplify(F(x)) - predstavlja izraz u obliku polinoma • Solve(F(x)) - određje nule polinoma F(x) • SolveMatrix(A, b) - rješava sistem jednačna. Rezultat je vektor X, pri čmu je AX=b.

Grafici Yacas može da crta grafike uz pomoćprograma GNUPLOT. Potrebno je izvršni fajl ovog programa kopirati u folder sa exe fajlom yacas-a. Naziv fajla mora biti wgnupl32.exe. Naredbom Plot2D(izraz) se poziva GNUPLOT, i grafiči se prikazuje proslijeđni izraz. Linkovi: • http://yacas.sourceforge.net/ • http://www.gnuplot.info/