Pascal. Двумерные массивы

      Комментарии к записи Pascal. Двумерные массивы отключены

Помечено: ,

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 3 мес., 4 нед. назад.

  • Автор
    Сообщения
  • #3739

    Тем, кто знакомым с математическими матрицами, будет не трудно освоить и двумерные массивы в Pascal. Матрица – это математический объект, представляющий собой прямоугольную таблицу. Таблица состоит из элементов, которые находятся на пересечении строк и столбцов, определяющих их, то есть i-ая строка и j-ый столбец задают адрес k-ому элементу матрицы (kij). Двумерные массивы абсолютно аналогичны математическим матрицам, поэтому их можно представить так:

    Snap 2013-04-11 at 16.36.04

    В отличие от одномерных массивов, двумерные характеризуются в программе парой индексов, один из которых соответствует номеру строки, другой – столбца:

    Mas[m, n], где Mas – имя массива, n – номер строки, а m – номер столбца.

    Описать матрицу в программе можно несколькими способами:

    1) В разделе описания переменных:

    Var Mas: Array[1..n, 1..m] of <тип элементов>;

    2) При помощи одномерного массива, элементами которого являются одномерные массивы.
    Пример:

    Const
    n = 5; m = 10;
    Type
    Arr1 = Array[1..m] of <тип элементов >;
    Arr2 = Array[1..n] of arr1;
    Var Mas: arr2;

    Переменная Mas – матрица, состоящая из пяти строк, в каждую из которых включено по десять элементов.

    3) Предыдущий способ можно упростить так:

    Const n = 5; m = 10;
    Турe arr=Array[1..n] Of Аrrау[1..m] of <тип элементов>;
    Var Mas: arr;

    4) И снова сократив запись, получим:

    Const n = 5; m = 10;
    Type arr = Array[1..n,1..m] of <тип элементов>;
    Var Mas: arr;

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

    For i:= 1 To n Do
      For j:= 1 To m Do

    В следующей программе массив сначала заполняется числами с клавиатуры, а затем выводиться на экран.

    program input_and_output_array;
    uses crt;
    const n=3; m=3;
    var i, j: integer;
    mas: array[1..n, 1..m] of integer;
    begin
      {ввод массива}
      for i:=1 to n do
        for j:=1 to m do
        begin
          write(' Элемент ', i,' строки, ',j,' столбца = ');
          readln(mas[i, j]);
        end;
      writeln(' Получившаяся матрица: ');
      {вывод массива}
      for i:=1 to n do
      begin
        for j:=1 to m do
        begin
          write(mas[i, j]:5);
        end;
      writeln
      end;
    end.

    Стоит отметить, что для вывода двумерного массива в виде таблицы необходимо указать перевод строки после выхода из внутреннего цикла.

    Количество элементов в массиве (его размерность) можно узнать, умножив количество строк на количество столбцов.

Для ответа в этой теме необходимо авторизоваться.