Naredna: Pseudokod programa
Gore: Celobrojno deljenje
Prethodna: Celobrojno deljenje
Sadržaj
Ako pretpostavimo da postoji operator celobrojnog deljenja i operator koji računa celobrojni ostatak pri deljenju, tada je rešenje ovog problema prosta upotreba ovih operatora:
q = x / y; r = x mod y;
Međutim, postavlja se pitanje kako rešiti problem ako prethodno pomenuti operatori nisu podržani, tj. ako na raspolaganju imamo samo operator za sabiranje i operator za oduzimanje celobrojnih vrednosti.
U tom slučaju potrebno je implementirati algoritam koji će izračunati ceo deo i ostatak pri celobrojnom deljenju i dokazati njegovu ispravnost. Ono što je na samom početku neophodno uraditi je da se jasno definiše kakve se vrednosti ulaznih promenljivih mogu očekivati i šta je to što se očekuje na izlazu, tj. šta je to što želimo da program izračuna. Dakle, neophodno je da jasno definišemo preduslov i pauslov programa, tj. da formulišemo specifikaciju.
Pretpostavimo da program računa celobrojno deljenje samo nenegativnih celih brojeva pri čemu, kako nije definisano deljenje nulom, delilac mora biti strogo pozitivan. Moguće je kasnije izvršiti jednostavne korekcije programa tako da on radi i za negativne vrednosti ulaza. Dakle, preduslov programa je {x ≥ 0, y > 0}. Na izlazu očekujemo vrednost celog dela q i ostatka r pri celobrojnom deljenju brojeva x i y, pa je pauslov {x = y * q + r, 0 ≤ r < y}. Dakle, specifikaciju programa možemo zapisati na sledeći način:
{x ≥ 0, y > 0} --> {x = y * q + r, 0 ≤ r < y}
Sledeći korak je projektovanje i realizacija rešenja, tj. konstruisanje algoritma koji rešava ovaj problem.
Naredna: Pseudokod programa Gore: Celobrojno deljenje Prethodna: Celobrojno deljenje Sadržaj