ВУЗ:
Составители:
Рубрика:
24
предыдущей. Изменяются лишь вызовы методов , принимающих в каче-
стве параметров или возвращающих в качестве значения рациональные
числа (SetComp и ScalarProduct), а также имена класса (IVector ® RVec-
tor), программы (TestIVector ® TestRVector) и м одуля (UnitIVector ®
UnitRVector). Для демонстрации работы конструктора Create сразу по-
сле создания векторов v 1 и v 2 добавлена инструкция вывода на экран
вект ора v1.
Пример 2.2.3. Демонстрационная программа для задачи 2.2.
program TestRVector;
{$APPTYPE CONSOLE}
uses UnitRVector in 'UnitRVector.pas',
UnitRational in 'UnitRational.pas';
// Второй модуль необходим для объявления переменной r
// и для вызова функции UnitRational.AsString в строке
// WriteLn('v2.ScalarProduct(v4): ', AsString(v2.ScalarProduct(v4)));
var v1, v2, v3, v4: RVector; r: Rational; i: Integer;
begin
v1:=RVector.Create; v2:=RVector.Create;
WriteLn('v1: '+v1.AsString); // демонстрация работы Create
for i:=1 to Dim do begin
r.num:=i; r.den:=i+1; v1.SetComp(i, r);
r.num:=i+1; r.den:=i+2; v2.SetComp(i, r);
end;
WriteLn('v1: '+v1.AsString);
WriteLn('v2: '+v2.AsString);
WriteLn('v1.GetLength: ', v1.GetLength:5:5);
v3:=v1.Plus(v2); WriteLn('v3 after v3:=v1.Plus(v2): '+v3.AsString);
v1.Add(v2); WriteLn('v1 after v1.Add(v2): '+v1.AsString);
if v1.IsEqual(v3)
then WriteLn('v1 is equal to v3')
else WriteLn('v1 is not equal to v3');
v4:=RVector.Create;
v4.Assign(v2); WriteLn('v4 after v4.Assign(v2): '+v4.AsString);
v4.Subtract(v1);
WriteLn('v2 after v4.Subtract(v1): '+v2.AsString);
WriteLn('v4 after v4.Subtract(v1): '+v4.AsString);
WriteLn('v2.ScalarProduct(v4): ', AsString(v2.ScalarProduct(v4)));
v1.Destroy; v2.Destroy; v3.Destroy; v4.Destroy;
ReadLn;
end.
пред ы д ущ ей. И з м еняют с я л ишь в ы з ов ы м етод ов , приним ающ их в каче- с т в е парам ет ров ил и в оз в ращ ающ их в качес т в е з начения рац ионал ь ны е чис л а (SetComp и ScalarProduct), а т акже им ена кл ас с а (IVector ® RVec- tor), програм м ы (TestIVector ® TestRVector) и м од ул я (UnitIVector ® UnitRVector). Дл я д ем онс т рац ии работ ы конс т рукт ора Create с раз у по- с л е с оз д ания в ект оров v1 и v2 д обав л ена инс т рукц ия в ы в од а на экран в ект ора v1. Пример2.2.3. Дем онс т рац ионная програм м а д л я з ад ачи 2.2. program TestRVector; {$APPTYPE CONSOLE} uses UnitRVector in 'UnitRVector.pas', UnitRational in 'UnitRational.pas'; // Второй модуль необходим для объявления переменной r // и для вызова функции UnitRational.AsString в строке // WriteLn('v2.ScalarProduct(v4): ', AsString(v2.ScalarProduct(v4))); var v1, v2, v3, v4: RVector; r: Rational; i: Integer; begin v1:=RVector.Create; v2:=RVector.Create; WriteLn('v1: '+v1.AsString); // демонстрация работы Create for i:=1 to Dim do begin r.num:=i; r.den:=i+1; v1.SetComp(i, r); r.num:=i+1; r.den:=i+2; v2.SetComp(i, r); end; WriteLn('v1: '+v1.AsString); WriteLn('v2: '+v2.AsString); WriteLn('v1.GetLength: ', v1.GetLength:5:5); v3:=v1.Plus(v2); WriteLn('v3 after v3:=v1.Plus(v2): '+v3.AsString); v1.Add(v2); WriteLn('v1 after v1.Add(v2): '+v1.AsString); if v1.IsEqual(v3) then WriteLn('v1 is equal to v3') else WriteLn('v1 is not equal to v3'); v4:=RVector.Create; v4.Assign(v2); WriteLn('v4 after v4.Assign(v2): '+v4.AsString); v4.Subtract(v1); WriteLn('v2 after v4.Subtract(v1): '+v2.AsString); WriteLn('v4 after v4.Subtract(v1): '+v4.AsString); WriteLn('v2.ScalarProduct(v4): ', AsString(v2.ScalarProduct(v4))); v1.Destroy; v2.Destroy; v3.Destroy; v4.Destroy; ReadLn; end. 24
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »