Разработка классов на языке Object Pascal. Соколов Е.В. - 70 стр.

UptoLike

Составители: 

70
ПРИЛОЖЕНИЕ 1. Б ИБЛИОТЕКА ДЛЯ РАБОТЫ
С РАЦИОНАЛЬНЫМИ ЧИСЛ АМИ
Приводимая здесь библиотека является несколько расширенной
версией модуля, описанного в первой части пособия [*]. Новыми явля-
ются функции: AreEqual, производящая сравнение двух рациональных
чисел на равенство, и AsString, преобразующая рациональное число к
строковой форме для последующего вывода на экран.
Пример П .1.1. Код библиотеки для работы с рациональными числами.
unit UnitRational;
interface
type
Rational = record
num: Integer;
den: Integer;
end;
function Plus (r1,r2:Rational): Rational; // вычисление суммы
function Minus(r1,r2:Rational): Rational; // вычисление разности
function Dot (r1,r2:Rational): Rational; // вычисление произведения
function Slash(r1,r2:Rational): Rational; // вычисление частного
procedure Add (var r1:Rational; r2:Rational); // прибавление
procedure Subtract (var r1:Rational; r2:Rational); // вычитание
procedure MultiplyBy(var r1:Rational; r2:Rational); // домножение
procedure DivideBy (var r1:Rational; r2:Rational); // деление
function AreEqual(r1,r2:Rational): Boolean; // сравнение на равенство
function AsString(r: Rational): String; // преобразование к строковой
// форме
implementation
uses SysUtils;
procedure Normalize(var r:Rational);
{ Процедура приводит рациональное число r, передаваемое в качестве
параметра, к нормальной форме: числитель - целое число,
знаменатель - натуральное. }
begin
if r.den<0 then
begin r.num:=-r.num; r.den:=-r.den; end;
end;
procedure Reduce(var r:Rational);
{ Процедура сокращает числитель и знаменатель числа r на их
наибольший общий делитель. }
             П РИ Л О Ж Е Н И Е 1. Б И Б Л И О Т Е К А Д Л Я РА Б О Т Ы
                     СРА Ц И О Н А Л ЬН Ы М И ЧИ СЛ А М И

        Прив од им ая з д ес ь библ иот ека яв л яет с я нес кол ь ко рас ширенной
в ерс ией м од ул я, опис анногов перв ой час т и пос обия [*]. Н ов ы м и яв л я-
ют с я функц ии: AreEqual, произ в од ящ ая с рав нение д в ух рац ионал ь ны х
чис ел на рав енс т в о, и AsString, преобраз ующ ая рац ионал ь ное чис л о к
с т роков ой форм е д л я пос л ед ующ егов ы в од а на экран.

ПримерП.1.1. Код библ иот еки д л я работ ы с рац ионал ь ны м и чис л ам и.

unit UnitRational;
interface
type
  Rational = record
     num: Integer;
     den: Integer;
  end;
function    Plus (r1,r2:Rational): Rational; // вычисление суммы
function    Minus(r1,r2:Rational): Rational; // вычисление разности
function    Dot (r1,r2:Rational): Rational; // вычисление произведения
function    Slash(r1,r2:Rational): Rational; // вычисление частного
procedure   Add       (var r1:Rational; r2:Rational); // прибавление
procedure   Subtract (var r1:Rational; r2:Rational); // вычитание
procedure   MultiplyBy(var r1:Rational; r2:Rational); // домножение
procedure   DivideBy (var r1:Rational; r2:Rational); // деление
function    AreEqual(r1,r2:Rational): Boolean; // сравнение на равенство
function    AsString(r: Rational): String; // преобразование к строковой
                                           // форме
implementation
uses SysUtils;
procedure Normalize(var r:Rational);
{ Процедура приводит рациональное число r, передаваемое в качестве
  параметра, к нормальной форме: числитель - целое число,
  знаменатель - натуральное. }
begin
  if r.den<0 then
     begin r.num:=-r.num; r.den:=-r.den; end;
end;
procedure Reduce(var r:Rational);
{ Процедура сокращает числитель и знаменатель числа r на их
  наибольший общий делитель. }




                                        70