background image

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.).