Программа ввода и вывода элементов массива может выглядеть следующим образом:
program z1;const nm=10; mm=10;
type mas=array[1..nm,1..mm] of real;
var a:mas;
i,j,n,m:integer;
procedure zap(var a:mas);
var i,j:integer;
begin
assign(input,'input.txt');
reset(input);
readln(n,m);
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
close(input);
end;
var i,j:integer;
begin
assign(input,'input.txt');
reset(input);
readln(n,m);
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
close(input);
end;
procedure vyv( a:mas);
var i,j:integer;
begin
assign(output,'output.txt');
rewrite(output);
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:8:2);
writeln;
end;
close(output);
end;
begin
zap(a);
vyv(a);
end.
2. Найти минимальный элемент среди элементов главной и побочной диагоналей.
Задание 2. Найти количество отрицательных элементов в каждой строке.
Указание: количество элементов каждой строки хранить в одномерном массиве соответствующей размерности.
Формат ввода:
В первой строке вводятся числа n и m - количество строк и столбцов массива
В следующих строках находятся элементы массива построчно
2. Найти количество кратных 5 и 2 элементов в каждой строке.
3. Найти количество кратных 5 или 2 элементов в каждой строке.
4. Найти количество отрицательных элементов в каждом столбце.
Задание 3. Дан двумерный массив А, состоящий из n x m вещественных чисел. Известно, что среди его элементов только два равны между собой. Напечатать их индексы.
Указание: Для просмотра первого элемента использовать циклы по переменным i и j, для просмотра второго элемента использовать циклы по переменным i1 и j1.
Сравниваем a[i,j] c a[i1,j1]. Для исключения просмотра одного и того же элемента проверить условие (not((i=i1) and (j=j1))).
Формат ввода:
В первой строке вводятся числа n и m - количество строк и столбцов массива
В следующих строках находятся элементы массива построчно
Формат вывода:
В первой строке - индексы первого из равных элементов
Во второй строке - индексы второго из равных элементов
Тесты Посмотреть решение
Задание 4. Определить, является ли данный квадратный массив симметричным относительно своей главной диагонали.
Формат ввода:
В первой строке вводится число n - количество строк и столбцов массива
В следующих строках находятся элементы массива построчно
Формат вывода:
вывести YES или NO
Тесты Посмотреть решение
Задание 5. В массиве размерностью NxM к элементам четных столбцов прибавить элемент первого столбца соответствующей строки.
Задание 6. Заполнить массив А размером NxM "змейкой" следующим образом:
Формат вывода
Вывести построчно элементы массива
Посмотреть решение
1. Заменить все отрицательные элементы на противоположные.
var i,j:integer;
begin
assign(output,'output.txt');
rewrite(output);
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:8:2);
writeln;
end;
close(output);
end;
begin
zap(a);
vyv(a);
end.
Сохраните программу в файл и используйте как шаблон для решения задач с двумерным массивом.
Задания
Задание 1. Найти максимальный элемент массива и его номера. Элементы могут повторяться.
Указание: Поиск максимального элемента в двумерном массиве осуществляется таким же образом, как и в линейном массиве: предполагают, что максимальный - это первый элемент, затем максимальный сравнивается со следующим элементом, и если максимальный окажется меньше, то заменяем его значение.
Формат ввода:
В первой строке вводятся числа n и m - количество строк и столбцов массива
В следующих строках находятся элементы массива построчно
Формат вывода:
В первой строке - максимальный элемент
Во второй и следующих строках номер строки и номер столбца максимального элемента
Тесты Посмотреть решение
Формат ввода:
В первой строке вводятся числа n и m - количество строк и столбцов массива
В следующих строках находятся элементы массива построчно
Формат вывода:
В первой строке - максимальный элемент
Во второй и следующих строках номер строки и номер столбца максимального элемента
Тесты Посмотреть решение
Экспериментальный раздел
1. Найти минимальный элемент массива и его номера. Элементы могут повторяться.2. Найти минимальный элемент среди элементов главной и побочной диагоналей.
Задание 2. Найти количество отрицательных элементов в каждой строке.
Формат ввода:
В первой строке вводятся числа n и m - количество строк и столбцов массива
В следующих строках находятся элементы массива построчно
Формат вывода:
В строку записаны числа - количества отрицательных элементов в каждой строке
Тесты Посмотреть решение
В строку записаны числа - количества отрицательных элементов в каждой строке
Тесты Посмотреть решение
Экспериментальный раздел
1. Найти количество кратных 5 элементов в каждой строке.2. Найти количество кратных 5 и 2 элементов в каждой строке.
3. Найти количество кратных 5 или 2 элементов в каждой строке.
4. Найти количество отрицательных элементов в каждом столбце.
Задание 3. Дан двумерный массив А, состоящий из n x m вещественных чисел. Известно, что среди его элементов только два равны между собой. Напечатать их индексы.
Указание: Для просмотра первого элемента использовать циклы по переменным i и j, для просмотра второго элемента использовать циклы по переменным i1 и j1.
Сравниваем a[i,j] c a[i1,j1]. Для исключения просмотра одного и того же элемента проверить условие (not((i=i1) and (j=j1))).
Формат ввода:
В первой строке вводятся числа n и m - количество строк и столбцов массива
В следующих строках находятся элементы массива построчно
Формат вывода:
В первой строке - индексы первого из равных элементов
Во второй строке - индексы второго из равных элементов
Тесты Посмотреть решение
Задание 4. Определить, является ли данный квадратный массив симметричным относительно своей главной диагонали.
Указание: В задачах подобного типа необходимо увидеть зависимость между индексами элементов массива.
Если массив является симметричным, то для него выполняется равенство
 A[i, j]=A[j, i] для всех i=1..n и j=1..n.
Формат ввода:
В первой строке вводится число n - количество строк и столбцов массива
В следующих строках находятся элементы массива построчно
Формат вывода:
вывести YES или NO
Тесты Посмотреть решение
Экспериментальный раздел
1. Определить, является ли данный квадратный массив симметричным относительно своей побочной диагонали.Задание 5. В массиве размерностью NxM к элементам четных столбцов прибавить элемент первого столбца соответствующей строки.
Указание: рассматриваем только четные столбцы и к элементу первой строки прибавляем a[1,1], к элементу второй строки прибавляем a[2,1] и т.д.
Формат ввода:
В первой строке вводятся числа n и m - количество строк и столбцов массива
В следующих строках находятся элементы массива построчно
Формат вывода:
Построчно элементы преобразованного массива
Тесты Посмотреть решение
2. К нечетным элементам прибавить соответствующие по строке элементы главной диагонали.
Формат ввода:
В первой строке вводятся числа n и m - количество строк и столбцов массива
В следующих строках находятся элементы массива построчно
Формат вывода:
Построчно элементы преобразованного массива
Тесты Посмотреть решение
Экспериментальный раздел
1. В массиве размерностью NxM к элементам четных строк прибавить элемент первой строки соответствующего столбца.2. К нечетным элементам прибавить соответствующие по строке элементы главной диагонали.
Задание 6. Заполнить массив А размером NxM "змейкой" следующим образом:
1 
 | 
2 
 | 
3 
 | 
4 
 | 
5 
 | 
6 
 | 
7 
 | 
14 
 | 
13 
 | 
12 
 | 
11 
 | 
10 
 | 
9 
 | 
8 
 | 
15 
 | 
16 
 | 
17 
 | 
18 
 | 
19 
 | 
20 
 | 
21 
 | 
28 
 | 
27 
 | 
26 
 | 
25 
 | 
24 
 | 
23 
 | 
22 
 | 
Указание: Для того, чтобы заполнить, надо вывести правило заполнения:
·         если строка нечетная, то   A[i,j]=(i-1)*m+j;
·         если строка четная, то     A[i,j]=i*m-j+1.
Формат вывода
Вывести построчно элементы массива
Посмотреть решение
Экспериментальный раздел
1. Заполнить массив размером m x n змейкой, начиная с последнего элемента.
22 
 | 
23 
 | 
24 
 | 
25 
 | 
26 
 | 
27 
 | 
28 
 | 
21 
 | 
20 
 | 
19 
 | 
18 
 | 
17 
 | 
16 
 | 
15 
 | 
8 
 | 
9 
 | 
10 
 | 
11 
 | 
12 
 | 
13 
 | 
14 
 | 
7 
 | 
6 
 | 
5 
 | 
4 
 | 
3 
 | 
2 
 | 
1 
 | 
Задания для самостоятельного решения
1. Заменить все отрицательные элементы на противоположные.
2. Дан массив  D(6,5). Выведите его на экран в виде таблицы.  Найдите и выведите  количество элементов больших среднего арифметического всех его элементов.
3. Заполнить массив А размером NxM следующим образом:
21 
 | 
20 
 | 
19 
 | 
18 
 | 
17 
 | 
16 
 | 
15 
 | 
8 
 | 
9 
 | 
10 
 | 
11 
 | 
12 
 | 
13 
 | 
14 
 | 
7 
 | 
6 
 | 
5 
 | 
4 
 | 
3 
 | 
2 
 | 
1 
 |