ВУЗ:
Составители:
Рубрика:
67
procedure WriteMatrix(m: Matrix);
var i,j:Integer;
begin
for i:=1 to n do begin
for j:=1 to n do begin
Write(PRational(m[i,j]).num,'/', PRational(m[i,j]).den, ' ');
end;
WriteLn;
end;
WriteLn;
end;
var
m1,m2,m3,m4: Matrix;
i,j: Integer;
begin
for i:=1 to n do for j:=1 to n do begin
m1[i,j]:=PNumber(UnitRational.CreateAs(1,(2 shl i)));
m2[i,j]:=PNumber(UnitRational.CreateAs(1,(2 shl j)));
end;
{ Объекты типа Rational размещаются в памяти и инициализируются.
Перед присваиванием ссылки на них следует привести к типу PNumber. }
m3:=AddMatrix(m1,m2); // вызываются обобщенные функции
m4:=MultiplyMatrix(m1,m2); // сложения и умножения
WriteMatrix(m1); //
WriteMatrix(m2); // содержимое матриц
WriteMatrix(m3); // выводится на экран
WriteMatrix(m4); //
for i:=1 to n do for j:=1 to n do begin
m1[i,j].Destroy(m1[i,j]); //
m2[i,j].Destroy(m2[i,j]); // элементы всех матриц
m3[i,j].Destroy(m3[i,j]); // удаляются из памяти
m4[i,j].Destroy(m4[i,j]); //
end;
ReadLn;
end.
Начав работать, приведенная программа первым делом создает
объекты типа Rational и использует ссылки на них для инициализации
элементов матриц. Поскольку типы Rational и Number связаны друг с
другом лишь семантически, здесь опять требуется осуществить явное
привед ение типа.
Далее к построенным структурам данных применяется функция
procedure WriteMatrix(m: Matrix);
var i,j:Integer;
begin
for i:=1 to n do begin
for j:=1 to n do begin
Write(PRational(m[i,j]).num,'/', PRational(m[i,j]).den, ' ');
end;
WriteLn;
end;
WriteLn;
end;
var
m1,m2,m3,m4: Matrix;
i,j: Integer;
begin
for i:=1 to n do for j:=1 to n do begin
m1[i,j]:=PNumber(UnitRational.CreateAs(1,(2 shl i)));
m2[i,j]:=PNumber(UnitRational.CreateAs(1,(2 shl j)));
end;
{ Объекты типа Rational размещаются в памяти и инициализируются.
Перед присваиванием ссылки на них следует привести к типу PNumber. }
m3:=AddMatrix(m1,m2); // вызываются обобщенные функции
m4:=MultiplyMatrix(m1,m2); // сложения и умножения
WriteMatrix(m1); //
WriteMatrix(m2); // содержимое матриц
WriteMatrix(m3); // выводится на экран
WriteMatrix(m4); //
for i:=1 to n do for j:=1 to n do begin
m1[i,j].Destroy(m1[i,j]); //
m2[i,j].Destroy(m2[i,j]); // элементы всех матриц
m3[i,j].Destroy(m3[i,j]); // удаляются из памяти
m4[i,j].Destroy(m4[i,j]); //
end;
ReadLn;
end.
Н ачав работ ат ь , прив ед енная програм м а перв ы м д ел ом с оз д ает
объект ы т ипа Rational и ис пол ь з ует с с ы л ки на нихд л я инициал из ации
эл ем ентов м ат риц. Пос кол ь ку т ипы Rational и Number с в яз аны д руг с
д ругом л иш ь с ем ант ичес ки, з д ес ь опят ь т ребует с я ос ущес т в ит ь яв ное
прив ед ение т ипа.
Дал ее к пос т роенны м с т рукт урам д анны хприм еняет с я функция
67
Страницы
- « первая
- ‹ предыдущая
- …
- 65
- 66
- 67
- 68
- 69
- …
- следующая ›
- последняя »
