|
Poslao: 02 Okt 2014 17:14
|
offline
- Ričard
- Lavlje srce
- Supermoderator
- Zver!
- Electro maintenance engineer
- Pridružio: 28 Nov 2006
- Poruke: 13745
- Gde živiš: Vršac
|
Na računaru s kojeg sam pisao nema Windows-ovog kalkulatora, skontao sam da izvršava odmah funkciju, samo sam mislio da je ipak u pitanju malo koleksniji program u pitanju.
|
|
|
|
|
|
Poslao: 04 Okt 2014 01:25
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Napisano: 04 Okt 2014 1:17
Ričard ::Kako je dobio 35?Ajde da probam da objasnim. Valjda je i to nekome zanimljivo.
Elem, računar ovakve izraze rešava korišćenjem steka/magacina, ili više njih. Najjednostavnija implementacija je...baš ova koja daje ovaj rezultat.
Kako to ustvari radi? Ovako:
Naime, računar pročita izraz od pozadi i smešta sve na stek. Operande (brojeve) na jedan, a operatore na drugi stek. Stek/magacin je struktura...kao kada naređate tanjire jedan na drugi - dostupan vam je samo onaj na vrhu. Šta računar ustvari radi? Uzme dva operanda sa vrha steka, uzme jedan opetaror sa vrha steka i izračuna to. Ono što dobije smesti opet na stek, i tako radi sve dok ne isprazni stek sa operatorima (tj. oba steka, ali da ne ulazimo u detalje). Dakle, ne šiša prioritet operatora/operacija ni malo. E baš tu i greši. No, sve se to da urediti. Ako vas zanima kako...pa, ostanite sa nama.
Dopuna: 04 Okt 2014 1:25
E da, ne koristi se nužno stek. Stabla takođe mogu da se koriste (i koriste se), i to vrlo efikasno...
|
|
|
|
|
Poslao: 04 Okt 2014 02:47
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Napisano: 04 Okt 2014 2:39
Objašnjenje se odnosi na kalkulator koji ne pravi razlike između operatora, pa zbog toga greši. Naravno, svaki normalan pravi razliku, pa ne greši. Inače, i ovaj ispravan može da radi sa stekom isto, i da uvek prikazuje vrh steka. Prilikom upisa operatora na stek proverava se prioritet operatora sa vrhu, porede se operatori po prioritetu, itd...
Ja sam to malo grubo prikazao, i pomalo pojednostavio, ali je to jedan od načina. Postoje i druge notacije za zapis matematičkih izraza. Prefiksna (tzv. Poljska notacija), infiksna (ovo normalno) i postfiksna (obrnuta Poljska). Prva i treća ne koriste zagrade i zbog toga su pogodne za računar i realizuju se jednostavno pomoću steka. Neki kalkulatori dozvoljavaju njihovo korišćenje:
Stack je stek, a broj pored pokazuje koliko je operanada u steku. Naravno, ovaj prati prioritet, pa radi kako treba, ali to je druga priča koju bih ostavio za kasnije...
Dopuna: 04 Okt 2014 2:47
Tek sad vidim da je ovo slika onog "neispravog". Pa on baš može da se uklopi u ovaj način sa stekom, samo što je real time. Ima.jedan zapamćeni operand, i jedan aktuelni, i nad ta dva (kao i kod steka što su dva na vrhu) primenjuje operacije koje mu nalete (isto kao i kod steka). Mada, ovo bi više bilo akumulatorsko izračunavanje...
Ok, prestajem...
|
|
|
|
|
|
Poslao: 04 Okt 2014 18:22
|
offline
- Panonsky
- Verni jaran gazda Pece
- ... i pozdravite Vašu mamu...
- Mi smo sve podigli u ovom gradu.
- Pridružio: 20 Mar 2006
- Poruke: 3927
|
Acid_Burn ::Evo vam i moj kalkulator sa telefonaKoji telefon imaš?
|
|
|
|