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

  1. Нужно реализовать свой тип данных на языке паскль,в моём случае это матрица,должны быть предусмотрены операции ввода/вывода,сложения/вычитания и хотя бы одна спецефическая для данного типа данных операция.Я вообще не представляю как это можно сделать,и вообще реально ли это написать?бился 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. Дана действительная матрица размерности МхМ Если максимальный элемент матрицы на главной диагонали, то найти среднее арифметическое элементов, стоящих над побочной диагональю и добавить его к минимальным элементам каждой строки матрицы. В противном случае оставить без изменений. Пожалуйста, помогите.

  1. Написать программу, которая проверяет, является ли квадратная матрица симметричной относительно главной диагонали. Входные данные В первой строке записаны через пробел размер квадратной матрицы N (количество строк равно количеству столбцов) ( 1 ≤ N ≤ 100 ). В следующих N строках записаны строки матрицы, в каждой – по N натуральных чисел, разделённых пробелами. Выходные данные Программа должна вывести слово 'YES', если матрица симметричная, и слово 'NO', если матрица несимметричная.

  1. Доброго времени суток! С толкнулся вот с такой задачей:"В прямоугольной матрице выявить все подматрицы,в углах которых расположены элементы, сумма цифр которых одинакова.".Думаю над этой задачей уже дня 2, читал много форумов, но к сожалению моих знаний недостаточно чтобы хоть что нибудь понять, а работу скоро сдать нужно.Надеюсь на вашу помощь!Заранее спасибо!

  1. Всем доброго времени суток! Дана (по строкам) действительно матрица размером 7х4. Переставляя ее строки и столбики, добиться того, чтобы наибольший элемент (один из них) попал в верхний левый угол. Нужен код программы

  1. Задание. Составить подпрограмму подсчета суммы значений элементов в одномерном массиве.С помощью этой подпрограммы подсчитать суммы элементов строк произвольно заданной двухмерной матрицы и вывести номер строки с максимальной суммой.Составить блок-схему. Заранее огромное спасибо!

  1. Дана целочисленная матрица размера 5 на 5. Найти минимальный элемент

  1. Заданная матрица А размерности 3 х 5. Найти квадрат разницы количества положительных и отрицательных элементов матрицы.

  1. Определить, является ли заданная целая квадратная матрица шестого порядка симметричной (относительно главной диагонали).

  1. Дана прямоугольная матрица A(nxm). Заменить наименьший элемент каждой строк, начиная со второй, наибольшим элементом предыдущей строки. Нашел такой код, не получилось его подправить, постоянно выдает ошибки(нужно было добавить заполнение и оформление, по словам автора, что и не вышло)

  1. Детали. На клеточной поле размером NxM расположены две жесткие детали. Деталь 1 нарывает в каждой строке несколько (не ноль) первых клеток, деталь два - несколько (не ноль) последних; каждая клетка либо полностью накрыта одной деталью, либо нет. Деталь 2 начинает двигаться влево, не поворачивая, пока она не упрется в деталь 2, хотя бы одной клеткой. Написать программу, которая определяет, на сколько клеток будет сдвинута деталь 2 Ввод. В первой строке содержатся чила N и M - соотвествующии количеству строк и столбцов таблицы. далее следуют N строк, задающих расположение деталей. В каждой строке находится ровно M чисел, раздленных пробелом: 1, 2 или 0 Выход В первой строке выходного файла содержится число- колво клеток, на которое будет сдвинута деталь 2. Если сдвиг был, то в последующих N строках расположение деталей после сдвига. Ввод 45 11022 10002 10002 10022 Вывод 1 11220 10020 10020 10220