ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »