četvrtak, 20. ožujka 2008.

Upotreba funkcija:Kalkulator

Sad ,ovaj post ćemo posvetiti (cijeli ) izradi kalkulatora upotrebom funkcija.Kad bude djelomično gotov biti će postan.Molim razumijevanje ,pišem kad imam vremena.Naravno ,ići ćemo korak po korak od samog početka.Prvo napravimo prazan projekt i na source desni klik i dodamo cpp file i ispišemo sva zaglavlja koja će nam trebati i možemo početi dodavati funkciju po funkciju i na kraju glavni program koji će objediniti naše sve funkcije u program kalkulator.Objašnjavam tako jer je lakše za shvatiti kako možete provjeriti funkciju a da uopće ne morate sastaviti glavni progarm jer sjetite se"funkcije su samoizvršavajući blokovi" ,znači same se za sebe mogu provjeriti.zaglavlja ću u toku posta objašnjavati,a na kraju sve možemo podijeliti i u posebne datoteke i tako sam program podijeliti u više datoteka.Krenimo s početkom :
Povećajte si ovu sliku jer tako mi je bilo lakše napisati u dotičnom trenutku:

Sad možemo pokazati kako izgleda sama funkcija kad je ispišemo u editor koda ,samo nju i možemo je pokrenuti i dobiti ćemo prazan cmd i to znači da je sve ok,da je bilo greške to bi nam se napisalo i vi na taj način bez ispisa cijelog programa korak po korak možete provjeravati točnost onoga što ste napisali i to se zove invarijanta programa!

Ovdje je sama funkcija i primjetite da je prvo gore navedena samo deklaracija a dolje se linka na definiciju,možda nisam naveo isto ime ali vi to ispravite a ja ću kasnije:

Možda nije istog imena kao i u programu ali objašnjenje je isto.Sva akcija se zbiva u while petlji koja nam doslovno govori:
..... istaržuj znakove dok ne dođeš do kraja pomoću pokazatelja slovo „j“ i rezultat svega toga spremi u „i“ ! Naravno pomoću j se krećemo ali u if uvjetu za svaki pokret slova j kad naiđe na prazninu to ne spremamo u i zbog if uvjeta, za svaki while(uvijet) pokret(korak j) to se mora sprovesti.Znači sprema se u naše polje samo cijeli znakovni niz ali bez praznih mjesta zbog if uvjeta,u biti opet se radi o petlji u petlji i za svaki korak vanjske petlje se vrti unutarnja do kraja tj dok se ne ispuni if uvijet!!!!Sad smo znači riješili se praznina i sad prelazimo na slijedeću funkciju koja tj. pomoću koje biramo što ćemo u kalkulatoru raditi a povezana je s funkcijom koja definira svaki taj odabir.Biti će vam puno jasnije kad napišemo funkcije i objasnimo ih, što naravno slijedi.
U biti ja ću vam skoro gotovi program s svim funkcijama i glavnim programom odmah staviti tako da možete i sami vježbati a ja ću kad imam vremena objasniti funkciju po funkciju ,dio po dio!!!Naravno i ovaj program još nije gotov jer da bi još radio u potpunosti još mu fali par kodova ali to tek kad ovo prije objasnimo jer ima toga dosta što želim približiti na jednostavan način .Vjerujem da se dosad niste susreli s oblikom for(;;) što ću također objasniti,sad malo proučavajte i prepisujte program!!! Naravno spojite ovo sve u jedan program:







Naravno sad slijedi objašnjenje korak po korak,kalkulator u ovom obliku ne računa izraze s zagradama i ima neke nedostatke ,ali to je zato što još nismo gotovi s funkcijama u koje treba dodati još pokoji red koda.Ali prvo da riješimo for(;;) blok koji je u biti beskonačan zbog izostavljana uvijeta ali su obvezne ;; jer mora biti nešto a one su znak samom progarmu da nema uvjeta i izvodi se beskonačno ili dok ne naiđe na neki uvjet koji smo mi postavili(if) ili do neke točke prekida koji mi posatvimo ili reset.Evo malog programa koji nam to prikazuje prije nego krenemo na objašnjavanje kalkulatora:

Vidite da smo postavili uvjet i kad se on ispuni dolazi do break;
i prekida se program i izvršava se ono što smo i napisali u for petlji ,a mi možemo beskonačno(ovisi o memoriji) unositi brojeve .....
....varijabla x nam služi kao brojač ....
U funkciji za kalkulatro program koristimo tu petlju jer dozvoljavamo unos koliko hoćemo ali dok mi to želimo a ne sama for naredba,ona je tu samo da se vrti jer kroz nju realiziramo našu zamisao.Funkcije su međusobno povezane jer poziva jedna drugu da bi se realizirale i zato je bitan i redoslijed deklariranja i definiranja,probajte mijenjati redoslijede in diolazi do greške iako ste sve dobro napisali,znači to vam pokazuje i rad samog prevodioca i kako on radi i kojim redom prevodi i izvršava program.Dalje slijedi.
Sad ćemo pokazati kompletan program kalkulator,nadopunjena funkcija num() i nova funkcija extract() ,sad možete unositi u izračun i zagrade .Objašnjenje će naravno doći ali unaprijed se ispričavam na tome što malo sporije napredujem ,alin to je zbog mnoštva obveza ali ovaj post o Visual c++ će ići sigurno ka svim temama koje sam obećao i naveo!!!
Naravno ove slike spojite u jedan program i naravno radio sam kao empzy project i klik na source u prozorčiču solution explorer i desni klik i add item,naravno cpp file i pišite kod:






Kad ga pokrenete evo slike i možete unositi i izračunavati vaše izračune na ovom jednostavnom kalkulatoru:

Objašnjenje dio po dio će uslijediti.

Nema komentara: