Antoni M. Zaj czkowski: Algorytmy i podstawy programowania – algorytm dzielenia
5 kwietnia 2009
1
A
LGORYTM DZIELENIA
Mamy dane liczby całkowite
i
, które nazwiemy
dzieln i dzielnikiem.
Wiadomo (
Courant, Robbins, 1967
), e istniej liczby całkowite nieujemne i , nazywane
odpowiednio
ilorazem i reszt takie, e
,
(*)
.
(**)
Zadanie nasze polega na znalezieniu algorytmu, który wyznaczy i korzystaj c
wył cznie z operacji dodawania i odejmowania liczb całkowitych (
Ross, Wright, 2000
).
Zadanie obliczeniowe.
Napisa , uruchomi i przetestowa program wyznaczaj cy iloraz i
reszt z dzielenia dwóch danych liczb całkowitych
i
, przy czym program
powinien w ka dym kroku sprawdza , czy spełnione jest równanie (*). Poza tym, program
powinien by odporny na czytanie niedozwolonych warto ci danych wej ciowych i
prezentowa histori oblicze od ich pocz tku do ko ca. Obliczenia s ko czone, gdy
otrzymamy iloraz i reszt takie, e spełnione s równanie (*) i relacja (**). Uogólni program
na przypadek
i
.
Wskazówka
. Do odpornego czytania danych mo na u y podprogramu
procedure
Get (Item :
out
Integer; Min_Val :
in
Integer;
Max_Val :
in
Integer);
-- Wczytuje z klawiatury liczbe calkowita Item z zakresu Min_Val..Max_Val
Nagłówek tej procedury znajduje si pakiecie definicyjnym Odporne_Wejscie.ads, a jej
tre jest w pakiecie implementacyjnym Odporne_Wejscie.adb, natomiast przykład jej
u ycia jest w programie Test_Odporne_Wejscie.adb.
L
ITERATURA
Courant, R. i H. Robbins. (1967). Co to jest matematyka. PWN, Warszawa (tłum. z ang.).
Ross, K.A i C.R.B. Wright. (2000). Matematyka dyskretna. PWN, Warszawa (tłum. z ang.).