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

PowerCalculatorF2

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

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/