PowerCalculatorF2

Page 1

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


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(tex t) 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=0 inače | realni=x | imaginarni=0 vrati 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 | | |

| | |

| u suprotnom |

(RacunajPodmatricu(A,1,j)) rjesenje=rjesenje-A1,j∙RacunajDeterminantu

| | | vratirjesenje algoritamRacunajPodmatricu(A,x,y) k=1 dimx(B)=dimx(A)-1 dimy(B)=dimy(A)-1 Za 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 | | vrati B

|

povećaj k za 1

(RacunajPodmatricu(A,1,j))


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/


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.