ВУЗ:
Составители:
Рубрика:
8
function AreEqual(v1, v2: IVector): Boolean;
var i: Integer;
begin
result:=true;
for i:=1 to Dim do
if v1[i]<>v2[i] then result:=false;
end;
procedure Assign(var v1, v2: IVector);
var i: Integer;
begin for i:=1 to Dim do v1[i]:=v2[i]; end;
function AsString(v: IVector): String;
var i: Integer;
begin
result:='(';
for i:=1 to Dim do begin
result:=result+IntToStr(v[i]);
if i<Dim then result:=result+', ';
end;
result:=result+')';
end;
Подпрограммы Plus, Minus, Add и Subtract в цикле выполняют по-
компонентные операции сложения или вычитания. Разница лишь в том ,
что функции Plus и Minus сохраняют результат в переменной result, воз-
вращаемой в качестве их значения, а процедуры Add и Subtract — в пер-
вом аргументе v1. Так как тип IVector — это массив, то к компонентам
переменных данного типа мы можем обращаться обычным образом — с
помощью индексиров а ния.
Поскольку |v|
=
vv
×
, неудивительно, что реализации функций Sca-
larProduct и GetLength очень похожи. В обоих переменная result инициа-
лизируется нулем и затем в цикле накапливает сумму покомпонентных
произведений. В функции GetLength из полученного значения требуется
дополнительно извлечь квадратный корень .
Критерий равенства двух векторов можно сформулировать сле-
дующим образом : векторы не равны , если хотя бы для одной пары соот -
ветственных компонент этих векторов имеет место неравенство, и рав -
ны в противном случае. Данное определение и реализует функция Are-
Equal: если хотя бы для одного i выражение v1[i]<>v2[i] оказывается ис-
тинным, в переменную result записывается значение false, если же для
всех i указанное выражение ложно, переменная result сохраняет значе-
ние, полученное ею до начала выполнения цикла, т. е. true.
Функция AsString применяет к каждой компоненте вектора би б-
function AreEqual(v1, v2: IVector): Boolean; var i: Integer; begin result:=true; for i:=1 to Dim do if v1[i]<>v2[i] then result:=false; end; procedure Assign(var v1, v2: IVector); var i: Integer; begin for i:=1 to Dim do v1[i]:=v2[i]; end; function AsString(v: IVector): String; var i: Integer; begin result:='('; for i:=1 to Dim do begin result:=result+IntToStr(v[i]); if iv2[i] оказ ы в ает с я ис - т инны м , в перем енную result з апис ы в ает с я з начение false, ес л и же д л я в с ех i указ анное в ы ражение л ожно, перем енная result с охраняет з наче- ние, пол ученное ею д оначал а в ы пол нения ц икл а, т. е. true. Ф ункц ия AsString прим еняет к кажд ой ком понент е в ектора биб- 8
Страницы
- « первая
- ‹ предыдущая
- …
- 6
- 7
- 8
- 9
- 10
- …
- следующая ›
- последняя »