ВУЗ:
Составители:
Рубрика:
23
чис ло, поэтому в функции ScalarProduct соответствующие действия над
переменной result выполняются вручную.
Заметим еще, что имена большинства подпрограмм, оперирующих
рациональными числами, совпадают с именами методов нашего класса
и должны быть квалифицированы именем модуля. Пример 2.2.2 содер-
жит и код вновь добавленного конструктора, не требующий, впрочем ,
каких-либо ком м ентариев .
7. Единственное существенное отличие размещения класса RVec-
tor в модуле — использование модуля UnitRational. О пределяемый в нем
тип Rational фигурирует уже в интерфейсе класса RVector, поэтому под -
ключение необходимо выполнить в разделе интерфейс а.
Пример 2.2.3. Размещение класса RVector внутри модуля.
unit UnitRVector;
interface
uses UnitRational;
const Dim = 5;
type RVector = class
private
comp: array[1..Dim] of Rational;
public
function Plus (v: RVector): RVector;
function Minus (v: RVector): RVector;
function ScalarProduct(v: RVector): Rational;
function IsEqual (v: RVector): Boolean;
procedure Add (v: RVector);
procedure Subtract(v: RVector);
procedure Assign (v: RVector);
function GetLength: Real;
function GetComp(i: Integer): Rational;
procedure SetComp(i: Integer; value: Rational);
function AsString: String;
constructor Create;
end;
implementation
uses SysUtils; // теперь, когда функция IntToStr более не используется,
// этот модуль необходим лишь для поддержки исключений
// Здесь размещается реализация методов,
// приведенная в примере 2.2.2.
end.
8. Демонстрационная программа также почти не от личается от
чис л о, поэтом у в функц ии ScalarProduct с оот в ет с т в ующ ие д ейс т в ия над перем енной result в ы пол няют с я в ручную. Зам ет им ещ е, чтоим ена бол ь шинс т в а под програм м , оперирующ их рац ионал ь ны м и чис л ам и, с ов пад ают с им енам и м етод ов нашего кл ас с а и д ол жны бы т ь кв ал ифиц иров аны им енем м од ул я. Прим ер 2.2.2 с од ер- жит и код в нов ь д обав л енного конс т руктора, не т ребующ ий, в прочем , каких-л ибоком м ент ариев . 7. Е д инс т в енное с ущ ес т в енное отл ичие раз м ещ ения кл ас с а RVec- tor в м од ул е — ис пол ь з ов ание м од ул я UnitRational. О пред ел яем ы й в нем т ип Rational фигурирует уже в инт ерфейс е кл ас с а RVector, поэтом у под - кл ючение необход им ов ы пол нит ь в раз д ел е инт ерфейс а. Пример2.2.3. Раз м ещ ение кл ас с а RVector в нут ри м од ул я. unit UnitRVector; interface uses UnitRational; const Dim = 5; type RVector = class private comp: array[1..Dim] of Rational; public function Plus (v: RVector): RVector; function Minus (v: RVector): RVector; function ScalarProduct(v: RVector): Rational; function IsEqual (v: RVector): Boolean; procedure Add (v: RVector); procedure Subtract(v: RVector); procedure Assign (v: RVector); function GetLength: Real; function GetComp(i: Integer): Rational; procedure SetComp(i: Integer; value: Rational); function AsString: String; constructor Create; end; implementation uses SysUtils; // теперь, когда функция IntToStr более не используется, // этот модуль необходим лишь для поддержки исключений // Здесь размещается реализация методов, // приведенная в примере 2.2.2. end. 8. Дем онс т рац ионная програм м а т акже почт и не отл ичает с я от 23
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »