PowerCalculatorF2

24
Znanstveni kalkulator za mobilne uređaje Igor Bedek Sandra Bartoloti Luka Horvat Vedran Šikić

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

Transcript of PowerCalculatorF2

Page 1: PowerCalculatorF2

Znanstveni kalkulator za mobilne uređaje

Igor BedekSandra BartolotiLuka HorvatVedran Šikić

Page 2: PowerCalculatorF2

Ideja Napraviti kalkulator za mobitele koji će

moći konkurirati komercijalnim kalkulatorima

Implementirati parsiranje složenih matematičkih izraza

Implementirati naprednije matematičke operacije

Page 3: PowerCalculatorF2

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

Page 4: PowerCalculatorF2

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)

Page 5: PowerCalculatorF2

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

Page 6: PowerCalculatorF2

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

Page 7: PowerCalculatorF2

Use-case dijagram sustava

Page 8: PowerCalculatorF2

Korištene tehnologije C++ - jezgra programa Qt – korisničko sučelje Symbian simulator – testiranje Mobilni telefon – testiranje u prirodnom

okruženju

Page 9: PowerCalculatorF2

implementacija

Page 10: PowerCalculatorF2

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

Page 11: PowerCalculatorF2

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

Page 12: PowerCalculatorF2

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

Page 13: PowerCalculatorF2

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

Page 14: PowerCalculatorF2

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

Page 15: PowerCalculatorF2

Grafičko sučelje U potpunosti izrađeno u Qt frameworku

Page 16: PowerCalculatorF2

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

Page 17: PowerCalculatorF2
Page 18: PowerCalculatorF2

Matrice

Page 19: PowerCalculatorF2
Page 20: PowerCalculatorF2

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

Page 21: PowerCalculatorF2

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

Page 22: PowerCalculatorF2

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

Page 23: PowerCalculatorF2

Dokumentacija Unutar aplikacije, sustav pomoći

napisan je u HTML opisnom jeziku Video uputa snimljena je CamStudiom

na simulatoru Dokumentacija na Hrvatskom jeziku

Page 24: PowerCalculatorF2

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/