Upload
dario-dosen
View
214
Download
0
Embed Size (px)
DESCRIPTION
Znanstveni kalkulator za mobilne uređaje Igor Bedek Sandra Bartoloti Luka Horvat Vedran Šikić Ideja Napraviti kalkulator za mobitele koji će moći konkurirati komercijalnim kalkulatorima Implementirati parsiranje složenih matematičkih izraza Implementirati naprednije matematičke operacije
Citation preview
Znanstveni kalkulator za mobilne uređaje
Igor BedekSandra BartolotiLuka HorvatVedran Šikić
Ideja Napraviti kalkulator za mobitele koji će
moći konkurirati komercijalnim kalkulatorima
Implementirati parsiranje složenih matematičkih izraza
Implementirati naprednije matematičke operacije
Zahtjevi mobilnost kalkulatora standardno korisničko sučelje algebarske funkcije logaritamske i eksponencijalne funkcije trigonometrijske i area (arcus) funkcije rad u radijanima i stupnjevima mogućnost parcijalne korekcije unesenog
izraza
rad s matricama kompleksnih brojeva unos matrica po uzoru na MATLAB rad sa jednom ili dvije matrice množenje, dijeljenje (direktno množenje sa inverzom),
zbrajanje, oduzimanje matrica, te traženje determinante, inverza i transponirane matrice
zoran prikaz rezultata korisniku (u granicama koje veličina ekrana mobitela dopušta)
Mogućnost parcijalne korekcije unesene matrice rad s bazama brojevnih sustava rad s 4 najčešće korištene brojevne baze (binarna,
oktalna, dekadska, heksadekadska) lak i brz odabir početne brojevne baze sustava što veći raspon(zbog binarnog zapisa)
Analiza problema Aplikacija ima 3 glavna dijela – „standardne”
matematičke operacije, rad sa matricama i rad sa brojevnim sustavima
Svaki dio ima svoje grafičko sučelje Zbog složenosti – program je podijeljen na
nekoliko logičkih cjelina UI dizajn Parser (za matematičke izraze) Matrice Kompleksni brojevi Brojevni sustavi Funkcije za reagiranje na događaje (povezivanje
svih dijelova aplikacije
Podjela posla Grafičko sučelje – Igor Bedek Klase za rad sa matricama,
kompleksnim brojevima i brojevnim sustavima – Vedran Šikić
Računanje matematičkih izraza, izlazne funkcije za prikaz podataka, povezivanje svih ostalih funkcija sa grafičkim sučeljem – Luka Horvat
Dokumentacija i prezentacija na temelju dobivenih podataka – Sandra Bartoloti
Use-case dijagram sustava
Korištene tehnologije C++ - jezgra programa Qt – korisničko sučelje Symbian simulator – testiranje Mobilni telefon – testiranje u prirodnom
okruženju
implementacija
ako je kliknuta brojka ili operator standardnog (computation) načina rada dodaj ga u izraz
ako je kliknuto dugme "=" pozovi funkciju za evaluacija unesenog izraza te prikaži rezultat ukoliko je izraz ispravan, ukoliko nije ispiši grešku evaluiraj
ukoliko se klikne dugme drugog moda rada, promjeni mod rada u zadani
ako je kliknut operator u matrix ili base nacinu rada, evaluira se izraz te se izvršava zadana operacija ukoliko je izraz ispravan
help i about dugmeta prikazuju relevantne informacije o digitronu
Kompleksni brojevi klasa koja definira kompleksni broj imati 4 varijable
koje predstavljaju podatke kompleksnog broja – realni, imaginarni, amplituda i faza
algoritam PretvoriStringUKompleksni (text)x=unesi_i_pretvori_u_broj_znamenke_u_nizu(text)Ako jetexti = "+" ILI ako je texti="-" onda | realni=x |imaginarni=unesi_i_pretvori_u_broj_znamenke_u_nizu(text)inače ako postoji "j" u nizu (text) | imaginarni=x | realni=0inače | realni=x | imaginarni=0vrati kompleksni_broj
Matrice Svaka matrica ima svoje dimenzije Definirane su funkcije za rad sa 2 matrice
Zbrajanje i oduzimanje Množenje
Funkcije nad jednom matricom Množenje skalarom Računanje determinante Transponiranje inverz
Računanje determinante matrice
algoritam RacunajDeterminantu(A)Ako jedimx(A)=1 onda | rjesenje=A1,1
u suprotnom| Za svaki j=1 do dimx(A)| | Ako je i=neparan onda | | | rjesenje=rjesenje+A1,j∙RacunajDeterminantu| | | (RacunajPodmatricu(A,1,j))| | u suprotnom| | | rjesenje=rjesenje-A1,j∙RacunajDeterminantu| | | (RacunajPodmatricu(A,1,j))vratirjesenje algoritamRacunajPodmatricu(A,x,y)k=1dimx(B)=dimx(A)-1dimy(B)=dimy(A)-1Za svaki i=1 dodimx(A)| Za svaki j=1 dodimy(A)| | Ako je i ≠ x Iako je j≠onda| | | m=k / dimx| | | n=k moddimy| | | Bm,n=Ai,j
| | | povećaj k za 1vrati B
Brojevne baze Veza između raznih brojevnih sustava je
spremljena kao dekadska vrijednost broja u cjelobrojnom obliku long zbog veće preciznosti
Svaki podatak koji korisnik unese ima još podatak o bazi u kojoj se nalazi (binarnoj, oktalnoj, dekadskoj ili heksadekadskoj) i vrijednost u obliku u toj bazi spremljenu u obliku stringa
Potrebno je definirati algoritme za računanje dekadske vrijednosti nekog broja iz primljenog stringa i za računanje stringa iz dekadske vrijednosti
Grafičko sučelje U potpunosti izrađeno u Qt frameworku
Parsiranje mat. izraza Parsiranje u RP notaciji pomoću dva stoga Rješavanje složenih matematičkih izraza
kao što su Zbrajanje, oduzimanje, množenje, dijeljenje Rad sa zagradama Trigonometrijske funkcije Logaritam, eksponencijalna funkcija,
potencija, korjen Kontrola grešaka
Matrice
Baza Podržane su pretvorbe
između brojevnih sustava Za pretvorbe, dovoljno je
kliknuti na početnu bazu, unijeti zadani broj, te kliknuti na bilo koju drugu bazu
Testiranje U laboratoriju pomoću MATLAB-a
provjereni su rezultati dobiveni testiranjem Izvan fakulteta, pomoću web-aplikacije
„WolframAplha” također su provjereni rezultati
Nakon simulatora, kreirana je instalacijska datoteka, te je kalkulator instaliran na dva Nokia telefona sa različitim operacijskim sustavima – 5800XM i C7
Sustav pomoći U aplikaciju je ugrađen i kratki sustav
pomoći, a dostupan je i ovdje Video sa prikazom korištenja kalkulatora
na hrvatskom jeziku se može naći ovdje:PowerCalculator
Dokumentacija Unutar aplikacije, sustav pomoći
napisan je u HTML opisnom jeziku Video uputa snimljena je CamStudiom
na simulatoru Dokumentacija na Hrvatskom jeziku
Reference [1] Božidar Patača, Parsiranje Matematičkih Izraza, Osijek, 2010. [2] Dragan Jukić, Rudolf Scitovski: Matematika 1, Osijek, 2004. [3] Introduction to Algorithms T. Cormen, C. Leiserson, R. Rivest,
C Stein, MIT, 2009. [4] Nokia’s Qt online dokumentacija: http://doc.qt.nokia.com/ [5] Aalat za snimanje ekrana CamStudio pronađen na:
http://camstudio.org/ [6] Besplatni UML alat:http://www.umlet.com/ [7] Stringtutorial:
http://www.cplusplus.com/reference/string/string/ [8] MATLAB: http://www.mathworks.com/products/matlab/ [9] Dev-C++: http://www.bloodshed.net/devcpp.html [10] Microsoft Office: http://office.microsoft.com/en-us/