Root /ArchiveAbout
()

Matrix 1 - 6

Matrix 1 - 6

На этой странице рассмотрим простейшие случаи формирования двумерных массивов (матриц).

Matrix1. Даны целые положительные числа M и N. Сформировать целочисленную матрицу размера M × N, у которой все элементы I-й строки имеют значение 10·I (I = 1, …, M).

var
  A: array[1..10, 1..10] of integer;
  M, N, i, j: byte;

begin
  write('M = ');
  readln(M);
  write('N = ');
  readln(N);
  for i := 1 to M do 
  begin
    for j := 1 to N do
    begin
      a[i, j] := 10 * i;
      write(a[i, j]:4)
    end;
    writeln
  end
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 Matrix2. Даны целые положительные числа M и N. Сформировать целочисленную матрицу размера M × N, у которой все элементы J-го столбца имеют значение 5·J (J = 1, …, N).

var
  A: array[1..10, 1..10] of integer;
  M, N, i, j: byte;

begin
  write('M = ');
  readln(M);
  write('N = ');
  readln(N);
  for i := 1 to M do 
  begin
    for j := 1 to N do
    begin
      a[i, j] := 5 * j;
      write(a[i, j]:4)
    end;
    writeln
  end
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 Matrix3. Даны целые положительные числа M, N и набор из M чисел. Сформировать матрицу размера M × N, у которой в каждом столбце содержатся все числа из исходного набора (в том же порядке).

var
  B: array[1..10] of integer;
  A: array[1..10, 1..10] of integer;
  M, N, i, j: byte;

begin
  writeln('Введите M и N:');
  readln(M, N);
  writeln('Введите набор ', M, ' целых чисел:');
  for i := 1 to M do
    read(b[i]); //Вводим элементы последовательности
  writeln('Формируем матрицу:');
  for i := 1 to M do 
  begin
    for j := 1 to N do
    begin
      a[i, j] := b[i];
      write(a[i, j]:4)
    end;
    writeln
  end
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 Matrix4. Даны целые положительные числа M, N и набор из N чисел. Сформировать матрицу размера M × N, у которой в каждой строке содержатся все числа из исходного набора (в том же порядке).

var
  B: array[1..10] of integer;
  A: array[1..10, 1..10] of integer;
  M, N, i, j: byte;

begin
  writeln('Введите M и N:');
  readln(M, N);
  writeln('Введите набор ', N, ' целых чисел:');
  for j := 1 to N do
    read(b[j]); //Вводим элементы последовательности
  writeln('Формируем и выводим матрицу:');
  for i := 1 to M do 
  begin
    for j := 1 to N do
    begin
      a[i, j] := b[j];
      write(a[i, j]:4)
    end;
    writeln
  end
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 Matrix5. Даны целые положительные числа M, N, число D и набор из M чисел. Сформировать матрицу размера M × N, у которой первый столбец совпадает с исходным набором чисел, а элементы каждого следующего столбца равны сумме соответствующего элемента предыдущего столбца и числа D (в результате каждая строка матрицы будет содержать элементы арифметической прогрессии).

var
  B: array[1..10] of integer;
  A: array[1..10, 1..10] of integer;
  M, N, i, j: byte;
  D: integer; //разница арифметической прогрессии

begin
  writeln('Введите M и N:');
  readln(M, N);
  writeln('Введите набор ', M, ' целых чисел:');
  for i := 1 to M do
    read(b[i]); //Вводим элементы последовательности
  write('D = ');
  readln(D);
  writeln('Формируем матрицу:');
  for i := 1 to M do 
  begin
    for j := 1 to N do
    begin
      if j = 1 then a[i, j] := b[i] //первый элемент строки
      else //Остальные значения строки:
        a[i, j] := a[i, j - 1] + D; //предыдущий увеличиваем на D
      write(a[i, j]:4) //Выводим элементы матрицы
    end;
    writeln
  end
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 **type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 Сравните задачу Matrix5 с примером Array3.

Matrix6. Даны целые положительные числа M, N, число D и набор из N чисел. Сформировать матрицу размера M × N, у которой первая строка совпадает с исходным набором чисел, а элементы каждой следующей строки равны соответствующему элементу предыдущей строки, умноженному на D (в результате каждый столбец матрицы будет содержать элементы геометрической прогрессии).

var
  B: array[1..10] of integer;
  A: array[1..10, 1..10] of integer;
  M, N, i, j: byte;
  D: integer; //знаменатель геометрической прогрессии

begin
  writeln('Введите M и N:');
  readln(M, N);
  writeln('Введите набор ', N, ' целых чисел:');
  for j := 1 to N do
    read(b[j]); //Вводим элементы последовательности
  write('D = ');
  readln(D);
  writeln('Формируем матрицу:');
  for i := 1 to M do 
  begin
    for j := 1 to N do
    begin
      if i = 1 then a[i, j] := b[j] //первый элемент столбца
      else //Остальные значения столбца:
        a[i, j] := a[i - 1, j] * D; //предыдущий увеличиваем на D
      write(a[i, j]:6) //Выводим элементы матрицы
    end;
    writeln
  end
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 **type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 Сравните задачу Matrix6 с примером Арифметическая и геометрическая прогрессии. Последовательность Фибоначчи.