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

UptoLike

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

10
implementation
uses SysUtils;
// Здесь размещается реализация подпрограмм,
// приведенная в примере 1.1.1.
end.
5. Последнее, что нам необходимо сделать, это разработать де-
монстрационную программу. Ее код может выглядеть примерно так.
Пример 1.1.3. Демонстрационная программа для задачи 1.1.
program TestIVector;
{$APPTYPE CONSOLE}
uses UnitIVector in 'UnitIVector.pas';
var v1, v2, v3, v4: IVector; i: Integer;
begin
for i:=1 to Dim do begin
v1[i]:=i+1; v2[i]:=i+2;
end;
WriteLn('v1: '+AsString(v1));
WriteLn('v2: '+AsString(v2));
WriteLn('GetLength(v1): ', GetLength(v1):5:5);
v3:=Plus(v1, v2); WriteLn('v3 after v3:=Plus(v1, v2): '+AsString(v3));
Add(v1, v2); WriteLn('v1 after Add(v1, v2): '+AsString(v1));
if AreEqual(v1, v3)
then WriteLn('v1 is equal to v3')
else WriteLn('v1 is not equal to v3');
Assign(v4, v2); WriteLn('v4 after Assign(v4, v2): '+AsString(v4));
Subtract(v4, v1);
WriteLn('v2 after v4.Subtract(v1): '+AsString(v2));
WriteLn('v4 after v4.Subtract(v1): '+AsString(v4));
WriteLn('ScalarProduct(v2, v4): ', ScalarProduct(v2, v4));
ReadLn;
end.
После подключения модуля UnitIVector константа Dim, тип IVector
и под программы библиотеки становятся доступны так же, как если бы
они были объявлены в самой программе. В основном блоке после ини-
циал изации компонент векторов v 1 и v 2 над этими векторами выполня-
ется ряд операций, каждая из которых завершается выводом результата
на экран. Строка
WriteLn('v2 after v4.Subtract(v1): '+AsString(v2));
показывает, что после присваивания Assign(v4, v2) вектор ы v 2 и v 4 ос -
implementation
uses SysUtils;
// Здесь размещается реализация подпрограмм,
// приведенная в примере 1.1.1.
end.


         5. Пос л ед нее, что нам необход им о с д ел ат ь , это раз работ ат ь д е-
м онс т рац ионную програм м у. Е е код м ожет в ы гл яд ет ь прим ернот ак.

Пример1.1.3. Дем онс т рац ионная програм м а д л я з ад ачи 1.1.

program TestIVector;
{$APPTYPE CONSOLE}
uses UnitIVector in 'UnitIVector.pas';
var v1, v2, v3, v4: IVector; i: Integer;
begin
  for i:=1 to Dim do begin
     v1[i]:=i+1; v2[i]:=i+2;
  end;
  WriteLn('v1: '+AsString(v1));
  WriteLn('v2: '+AsString(v2));
  WriteLn('GetLength(v1): ', GetLength(v1):5:5);
  v3:=Plus(v1, v2); WriteLn('v3 after v3:=Plus(v1, v2): '+AsString(v3));
  Add(v1, v2); WriteLn('v1 after Add(v1, v2): '+AsString(v1));
  if AreEqual(v1, v3)
     then WriteLn('v1 is equal to v3')
     else WriteLn('v1 is not equal to v3');
  Assign(v4, v2); WriteLn('v4 after Assign(v4, v2): '+AsString(v4));
  Subtract(v4, v1);
  WriteLn('v2 after v4.Subtract(v1): '+AsString(v2));
  WriteLn('v4 after v4.Subtract(v1): '+AsString(v4));
  WriteLn('ScalarProduct(v2, v4): ', ScalarProduct(v2, v4));
  ReadLn;
end.


         Пос л е под кл ючения м од ул я UnitIVector конс т ант а Dim, т ип IVector
и под програм м ы библ иот еки с т анов ят с я д ос т упны т ак же, как ес л и бы
они бы л и объяв л ены в с ам ой програм м е. В ос нов ном бл оке пос л е ини-
ц иал из ац ии ком понент в ект оров v1 и v2 над эт им и в ект орам и в ы пол ня-
ет с я ряд операц ий, кажд ая из которы х з ав ершает с я в ы в од ом рез ул ь т ат а
на экран. С т рока
WriteLn('v2 after v4.Subtract(v1): '+AsString(v2));
показ ы в ает, что пос л е прис в аив ания Assign(v4, v2) в екторы v2 и v4 ос -


                                         10