Нано Компьютеры

Помогите решить задачу в Turbo Pascal на тему двумерные массивы

Существует множество задач, в которых нужно использовать двумерные массивы в языке программирования Turbo Pascal. Это может быть решение судоку, поиск пути на карте или создание таблицы умножения. В этой статье мы рассмотрим одну из задач, которая поможет вам лучше понять работу с двумерными массивами в Turbo Pascal.

Задача

Нам нужно написать программу, которая будет выводить на экран двумерный массив размером M на N, заполненный случайными числами от 1 до 100. После этого нужно вывести на экран индекс элемента с максимальным значением.

Решение

Для начала нужно объявить двумерный массив и заполнить его случайными числами. Для этого мы создадим функцию fillArray, которая будет принимать на вход размеры массива и возвращать заполненный массив.

function fillArray(n, m: Integer): Array of Array of Integer;
var
  i, j: Integer;
begin
  SetLength(Result, n, m);
  for i := 0 to n - 1 do
    for j := 0 to m - 1 do
      Result[i][j] := Random(100) + 1;
end;

Чтобы использовать эту функцию, нужно вызвать ее и сохранить результат в переменную:

var
  myArray: Array of Array of Integer;
begin
  myArray := fillArray(5, 3); // создаем массив размером 5 на 3
end;

Теперь, когда у нас есть заполненный массив, нужно найти индекс элемента с максимальным значением. Для этого мы создадим процедуру findMaxIndex, которая будет принимать на вход двумерный массив и возвращать индексы элемента с максимальным значением.

procedure findMaxIndex(myArray: Array of Array of Integer; var i, j: Integer);
var
  max, n, m, x, y: Integer;
begin
  n := Length(myArray);
  m := Length(myArray[0]);
  max := myArray[0][0];
  x := 0;
  y := 0;
  for i := 0 to n - 1 do
    for j := 0 to m - 1 do
    begin
      if myArray[i][j] > max then
      begin
        max := myArray[i][j];
        x := i;
        y := j;
      end;
    end;
  i := x;
  j := y;
end;

Чтобы использовать эту процедуру, нужно вызвать ее и передать в нее наш массив и переменные, в которых будут храниться индексы:

var
  i, j: Integer;
begin
  findMaxIndex(myArray, i, j);
end;

И, наконец, нужно вывести на экран наш массив и индексы элемента с максимальным значением:

var
  myArray: Array of Array of Integer;
  i, j: Integer;
begin
  myArray := fillArray(5, 3);
  findMaxIndex(myArray, i, j);
  for i := 0 to Length(myArray) - 1 do
  begin
    for j := 0 to Length(myArray[0]) - 1 do
      Write(myArray[i][j], ' ');
    Writeln;
  end;
  Writeln('Max index:', i, ',', j);
end.

Вывод

Написав эту программу, мы потренировались в работе с двумерными массивами в языке программирования Turbo Pascal. Мы создали функцию для заполнения массива случайными числами, процедуру для поиска индекса элемента с максимальным значением и научились выводить массив на экран. Мы рассмотрели лишь одну из многих задач, которые можно решить с помощью двумерных массивов в Turbo Pascal, и надеемся, что это поможет вам лучше понять и использовать эти средства при написании своих программ.