Лабораторная работа № 8

Лабораторная работа № 8.

Работа с двумерными массивами в Pascal

1. Заполнение матрицы случайными числами.

Создайте программу, которая заполняет двумерный массив размером n×m случайными числами в диапазоне от 0 до 99. Выведите массив на экран.

Цель: научиться создавать и заполнять двумерные массивы случайными числами.

Алгоритм:

·                     Ввод размеров матрицы (n, m)

·                     Создание массива

·                     Заполнение случайными числами (0-99)

·                     Вывод матрицы

Пример кода:

pascal

program FillMatrix;
var
  n, m, i, j: Integer;
  matrix: array of array of Integer;
begin
  writeln('Введите размеры матрицы:');
  readln(n, m);
  
  SetLength(matrix, n, m);
  
  Randomize;
  writeln('Сгенерированная матрица:');
  for i := 0 to n-1 do
  begin
    for j := 0 to m-1 do
    begin
      matrix[i,j] := Random(100);
      write(matrix[i,j]:4);
    end;
    writeln;
  end;
end.

2. Сумма элементов главной диагонали.

Напишите программу, которая вычисляет сумму элементов главной диагонали квадратной матрицы размером n×n.

Цель: вычислить сумму элементов главной диагонали квадратной матрицы.

Алгоритм:

·                     Ввод размера матрицы (n)

·                     Создание квадратной матрицы

·                     Вычисление суммы

Пример кода:

pascal         

program DiagonalSum;
var
  n, i, sum: Integer;
  matrix: array of array of Integer;
begin
  writeln('Введите размер матрицы:');
  readln(n);
  
  SetLength(matrix, n, n);
  
  // Заполнение и вывод матрицы
  writeln('Введите элементы матрицы:');
  for i := 0 to n-1 do
  begin
    for j := 0 to n-1 do
    begin
      read(matrix[i,j]);
      write(matrix[i,j]:4);
    end;
    writeln;
  end;
  
  // Подсчет суммы
  sum := 0;
  for i := 0 to n-1 do
    sum := sum + matrix[i,i];
  
  writeln('Сумма элементов главной диагонали: ', sum);
end.

3. Поиск максимального элемента в строке.

Создайте программу, которая находит максимальный элемент в каждой строке двумерного массива размером n×m. Выведите результаты.

Цель: найти максимальный элемент в каждой строке матрицы.

Алгоритм:

·                     Ввод размеров матрицы

·                     Поиск максимума в каждой строке

·                     Вывод результатов

Пример кода:

pascal

program MaxInRows;
var
  n, m, i, j, max: Integer;
  matrix: array of array of Integer;
begin
  writeln('Введите размеры матрицы:');
  readln(n, m);
  
  // ... (аналогично предыдущим примерам)
  
  writeln('Максимальные элементы в строках:');
  for i := 0 to n-1 do
  begin
    max := matrix[i,0];
    for j := 1 to m-1 do
      if matrix[i,j] > max then
        max := matrix[i,j];
    writeln('Строка ', i+1, ': ', max);
  end;
end.

4. Транспонирование матрицы.

Напишите программу, которая транспонирует матрицу размером n×m. То есть строки становятся столбцами, а столбцы — строками

Цель: получить транспонированную матрицу.

Алгоритм:

·                     Создание новой матрицы

·                     Обмен элементов (строки ↔ столбцы)

Пример кода:

pascal

program TransposeMatrix;
var
  n, m, i, j: Integer;
  matrix, transposed: array of array of Integer;
begin
  // ... (аналогично предыдущим примерам)
  
  SetLength(transposed, m, n);
  
  for i := 0 to n-1 do
    for j := 0 to m-1 do
      transposed[j,i] := matrix[i,j];
      
  writeln('Транспонированная матрица:');
  // Вывод результата
end.

5. Замена элементов побочной диагонали.

Создайте программу, которая заменяет элементы побочной диагонали квадратной матрицы размером n×n на число 100. Выведите измененную матрицу.

Цель: заменить элементы побочной диагонали на 100.

Алгоритм:

·                     Поиск элементов побочной диагонали

·                     Замена значений

Пример кода:

pascal

program ChangeSecondaryDiagonal;
var
  n, i: Integer;
  matrix: array of array of Integer;
begin
  // ... (аналогично предыдущим примерам)
  
  for i := 0 to n-1 do
    matrix[i,n-1-i] := 100

 

Задачи разработка программ с двумерными массивами

1.                  Сортировка строк матрицы:
Напишите программу, которая сортирует каждую строку двумерного массива размером n×m по возрастанию.

2.                  Подсчет четных элементов:
Создайте программу, которая подсчитывает количество четных элементов в каждой строке двумерного массива размером n×m.

3.                  Создание матрицы с заданной закономерностью:
Напишите программу, которая создает матрицу размером n×n, где элементы главной диагонали равны 1, а остальные элементы равны 0.

4.                  Поиск минимального элемента в столбце:
Создайте программу, которая находит минимальный элемент в каждом столбце двумерного массива размером n×m.

5.                  Умножение матриц:
Напишите программу, которая умножает две матрицы размером n×m и m×k. Выведите результат.


Last modified: Monday, 20 October 2025, 9:16 AM