Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инф(Пр+Лаб)ФИОП(2).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.02 Mб
Скачать

Лабораторная работа № 10. Программирование задач с двумерными массивами Двумерные массивы

Двумерный массив (матрица) – одномерный массив, элементы которого также являются одномерными массивами. Матрица имеет вид:

. Пример 1. .

Элемент массива – величина, входящая в состав массива. Индекс – порядковый номер строки или столбца в двумерном массиве. Двумерные массивы обычно обозначаются так: ;  , где A – массив; m – количество строк; n – количество столбцов; i – индекс строки; j – индекс столбца; aij – элемент массива A в i-й строке и j-м столбце.

Описание двумерного массива в разделе описания переменных (var) на языке Pascal имеет вид:

Mas : array [ IMin .. IMax , JMin .. JMax ] of T

Это означает, что переменная Mas является массивом, который может иметь индексы строк от IMin до IMax , индексы столбцов от JMin до JMax , а также состоит из элементов типа T .

Пример 2. Var A:array[1..10,1..15] of real;

Это означает, что A – массив, который может содержать от 1 до 10 строк и от 1 до 15 столбцов из элементов вещественного типа.

Доступ к элементу двумерного массива на языке Pascal имеет вид:

Mas [ Ind1 , Ind2 ]

Это означает доступ к элементу массива Mas с индексом строки Ind1 и индексом столбца Ind2.

Пример 3. a[1,1]; b[i,j].

Это означает элемент массива A в 1-й строке и 1-м столбце, элемент массива B в i-й строке и j-м столбце.

Порядок выполнения

  1. Зайти в Borland Pascal.

  2. Набрать текст программы для решения задачи № 1 и получить ответ для контрольного примера.

  3. Исправить программу так, чтобы она находила сумму и произведение элементов выше главной диагонали.

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

  5. Исправить программу так, чтобы она находила количество нулевых и среднее значение положительных элементов.

Пример задачи

Задача 1. Дан двумерный массив A (m, n). Найти сумму и произведение всех элементов, а также вычислить минимальный и максимальный элементы.

Program lab10;

Var

A: array [1..10,1..15] of real;

i, j, m, n: integer; s, p, min, max: real;

Begin

writeln('Введи m,n'); read(m,n);

writeln('Введи массив A');

for i:=1 to m do

for j:=1 to n do

read(A[i,j]);

s:=0; p:=1; min:=A[1,1]; max:=A[1,1];

for i:=1 to m do for j:=1 to n do

begin

s:=s+A[i,j]; p:=p*A[i,j];

if A[i,j]<min then min:=A[i,j];

if A[i,j]>max then max:=A[i,j];

end;

writeln('s=',s:10:3,' p=',p:10:3,

' min=',min:10:3,' max=',max:10:3);

End.

Контрольный пример.

Исходные данные:

;

;

.

Результаты:

;

;

;

.

Дополнительное задание

  1. Дан массив B (m, n). Найти сумму положительных элементов и количество элементов в диапазоне от 10 до 20.

  2. Дан массив C (m, n). Найти произведение элементов, больших среднего значения.

  3. Дан массив D (m, n). Найти среднее значение среди элементов, не совпадающих с минимальным.

  4. Дан массив L (n, n). Найти максимальный среди отрицательных элементов и сумму элементов на главной диагонали.

  5. Дан массив P (n, n). Элементы выше главной диагонали заменить на ноль, а ниже главной диагонали – округлить.

  6. Сформировать двумерный массив A (m, n), элементы которого вычисляются по формуле: , где R (m, n) – двумерный массив случайных величин.

  7. Дан массив R (m, n). Найти произведения элементов в каждой строке и максимальные элементы в каждом столбце.

  8. Дан массив W (m, n). Найти суммы элементов в каждом столбце и минимальные элементы в каждой строке.

  9. Дан массив S (m, n). Найти массив минимальных элементов в каждой строке, а затем в новом массиве отсортировать элементы по возрастанию.

  10. Дан массив T (m, n). Отсортировать столбцы по убыванию их средних значений.