Свой тип данных: матрица - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Нужно реализовать свой тип данных на языке паскль,в моём случае это матрица,должны быть предусмотрены операции ввода/вывода,сложения/вычитания и хотя бы одна спецефическая для данного типа данных операция.Я вообще не представляю как это можно сделать,и вообще реально ли это написать?бился 5 дней получал в итоге ересь,которую не засчитали((оч нужна ваша помощь,может быть есть у кого то наработки или клеше.

Решение задачи: «Свой тип данных: матрица»

textual
Листинг программы
const
  n = 4;
  m = 3;
type
  TMatrix = array[1..n, 1..m] of integer; {свой тип}
var
  a, b, c : TMatrix;  
 
{ввод}
procedure input(var z : TMatrix);
var i, j : integer;
begin
  for i := 1 to n do
    for j := 1 to m do
      z[i,j] := random(100)
end;  
 
{вывод}
procedure output(z : TMatrix);
var i, j : integer;
begin
  for i := 1 to n do
  begin
    for j := 1 to m do write(z[i,j]:4);
    writeln
  end
end;
 
{сложение}
function add(z, x : TMatrix) : TMatrix;
var i, j : integer;
    temp : TMatrix;
begin
  for i := 1 to n do
    for j := 1 to m do
      temp[i,j] := z[i,j] + x[i,j];
  add := temp
end;
 
{вычитание}
function sub(z, x : TMatrix) : TMatrix;
var i, j : integer;
    temp : TMatrix;
begin
  for i := 1 to n do
    for j := 1 to m do
      temp[i,j] := z[i,j] - x[i,j];
  sub := temp
end;
 
{специфич. операция поиск максимума в матрице}
function max(z : TMatrix) : integer;
var i, j, temp : integer;
begin
  temp := -1000;
  for i := 1 to n do
    for j := 1 to m do
      if z[i,j] >= temp then temp := z[i,j];
  max := temp
end;
 
{ОСНОВНАЯ ПРОГРАММА}
BEGIN
  randomize;
  writeln('первая матрица:');
  input(a);
  output(a);
  writeln('вторая матрица:');
  input(b);
  output(b);
  writeln('сумма матриц:');
  c := add(a, b);
  output(c);
  writeln('разность матриц:');
  c := sub(a, b);
  output(c);
  writeln('максимальный элемент первой матрицы: ', max(a));
  writeln('максимальный элемент второй матрицы: ', max(b))
END.

Объяснение кода листинга программы

  1. Константы: n = 4; m = 3;
  2. Тип данных: TMatrix = array[1..n, 1..m] of integer;
  3. Переменные: a, b, c : TMatrix;
  4. Ввод: procedure input(var z : TMatrix); var i, j : integer; begin for i := 1 to n do for j := 1 to m do z[i,j] := random(100); end;
  5. Вывод: procedure output(z : TMatrix); var i, j : integer; begin for i := 1 to n do begin for j := 1 to m do write(z[i,j]:4); writeln end end;
  6. Сложение: function add(z, x : TMatrix) : TMatrix; var i, j : integer; temp : TMatrix; begin for i := 1 to n do for j := 1 to m do temp[i,j] := z[i,j] + x[i,j]; add := temp end;
  7. Вычитание: function sub(z, x : TMatrix) : TMatrix; var i, j : integer; temp : TMatrix; begin for i := 1 to n do for j := 1 to m do temp[i,j] := z[i,j] — x[i,j]; sub := temp end;
  8. Максимальные элементы: function max(z : TMatrix) : integer; var i, j, temp : integer; begin temp := -1000; for i := 1 to n do for j := 1 to m do if z[i,j] >= temp then temp := z[i,j]; max := temp end;
  9. Основная программа: BEGIN randomize; writeln('первая матрица:'); input(a); output(a); writeln('вторая матрица:'); input(b); output(b); writeln('сумма матриц:'); c := add(a, b); output(c); writeln('разность матриц:'); c := sub(a, b); output(c); writeln('максимальный элемент первой матрицы: ', max(a)); writeln('максимальный элемент второй матрицы: ', max(b)); END.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы