- Упорядочить элементы массива из n элементов по убыванию стоящие между первым положительным и вторым отрицательным элементами.
- Задан массив А, состоящий из 20 элементов, переформировать так, чтобы начале стояли все положительные и равные нулю элементы в порядке убывания их значений, а затем все отрицательные в порядке возрастания значений
- В упорядоченный по возрастанию значений элементов массив В, состоящий из целых чисел, необходимо вставить число, не нарушив упорядоченности исходного массива.
Практическая работа № 11.
«Многомерные массивы.»
Прямоугольная таблица (матрица)
Матрица – прямоугольная таблица, состоящая из n – строк и m – столбцов.
A[i, j] – элемент матрицы (прямоугольной таблицы), который расположен на пересечении i – строки и j – столбца.
Квадратная – матрица, у которой число строк равно числу столбцов (n = m).
Квадратная матрица имеет главную диагональ, в которую входят элементы, значения индексов которых равны (i = j). Эта диагональ соединяет левый верхний и правый нижний угол квадратной матрицы. Таким образом, диагональ составляют элементы: a[1,1], a[2,2], a[3,3], …, a[n,n].
Элементы квадратной матрицы расположенные под главной диагональю образуют нижний треугольник, расположенные над ней верхний треугольник.
Кроме главной диагонали в квадратной матрице есть еще и побочная диагональ, которую составляют элементы, значения индексов которой удовлетворяют условию: i + j = n + 1.
Пример 1. Вычислить сумму отрицательных элементов матрицы A(3 x 4).
Программа:
Program Otric;
Var
a:array[1..3,1..4]of integer;
i,j,s:integer;
Begin
{Ввод значений элементов матрицы}
For i:= 1 to 3 do
For j:= 1 to 4 do
begin
Write('a[',i,',',j,',']=');
Readln(a[i,j]);
end;
{Расчет суммы отрицательных элементов}
s:=0;
For i:= 1 to 3 do
For j:= 1 to 4 do
If a[i,j]<0 then s:=s+a[i,j];
{Вывод значений элементов матрицы}
Writeln('s=',s);
Readln;
End.
| |
Блок-схема:
Пример 2. В матрице размером A(n х m) найти наибольший элемент в каждой строке (строк и столбцов не более 10).
Программа:
Program Max_str;
Var
a:array[1..10,1..10] of real;
max:real;
i,j,n,m:integer;
Begin
Write('Строк -');Readln(n);
Write('Столбцов -');Readln(m);
For i:= 1 to n do
For j:= 1 to m do
begin
Write('a[',i,',',j,',']=');
Readln(a[i,j]);
end;
{Находим максимальный элемент в строке}
For i:= 1 to n do
begin
max:=a[i,1];
For j:= 2 to m do
If a[i,j]>max then max:=a[i,j];
Writeln(i,’ строка -’,max:5:2);
end;
Readln;
End.
| |
Блок-схема:
Для поиска минимального элемента в каждой строке прямоугольной таблицы введите вместо переменной max переменную min, и измените знак « > » на « < » в операторе условия If.
Если необходимо найти максимальные элементы в каждом столбце, в программе необходимо произвести следующие замены:
For j:= 1 to m do
Begin
max:=a[1,j];
For i:= 2 to n do
If a[i,j]>max then max:=a[i,j];
Writeln(j,’ столбец -’,max:5:2);
end;
Для поиска минимального элемента в каждом столбце введите вместо переменной max переменную min, и измените знак « > » на « < » в операторе условия If.
ЗАДАНИЯ
- В прямоугольной матрице вычислить сумму элементов главной диагонали и произведение элементов побочной диагонали.
- Посчитать количество элементов квадратной матрицы меньших среднего арифметического ее главной диагонали.
- В прямоугольной матрице А[1..10, 1..10] определить количество столбцов, содержащих только числа одного знака и не содержащих нулевых элементов.
- Прямоугольную матрицу A[m×n] переписать построчно в одномерный массив В, затем вычислить положения р-го элемента массива В в матрице А.
- В прямоугольной матрице A[m×n] вычислить сумму элементов по столбцам и обменять местами столбцы с максимальной и минимальной суммами.
- В квадратной прямоугольной матрице A[n×n] найти наибольший элемент среди элементов, расположенных на главной и побочной диагоналях, после чего обменять его местами с наименьшим элементом.
- Из заданной квадратной матрицы A[n×n] сформировать два одномерных массива. В первый из них переслать построчно верхний треугольник матрицы, включая элементы главной диагонали, во второй – нижний.
- В прямоугольной матрице A[m×n] определить количество столбцов, содержащих только числа одного знака и не содержащих нулевых элементов.
- В прямоугольной матрице A[m×n] найти минимальный из положительных и максимальный из отрицательных элементов. Нулевые не учитывать
- Для каждого столбца заданной прямоугольной матрицы подсчитать сумму входящих в него элементов и определить имеются ли столбцы с одинаковой суммой. Подсчитать количество таких столбцов.
- Среди строк прямоугольной целочисленной матрицы содержащих только нечетные элементы найти строку с минимальной суммой входящих в нее элементов.
- В каждом столбце квадратной матрицы A(n*n) определить K-количество элементов, превышающих значение суммы элементов главной диагонали, после чего обменять местами столбцы с MAX и MIN значениями параметра K
- Дана квадратная вещественная матрица. Определить отдельно количество k1 отрицательных элементов, расположенных выше главной диагонали и кол-во k2 отрицательных элементов, расположенных ниже диагонали.