Главная диагональ - элементы a11, a22, a33, a44 (индексы элементов, расположенных на главной диагонали (i=j)
Побочная диагональ - элементы a41, a32, a23, a14 (сумма индексов элементов на 1 больше размерности строки (или столбца), т.е. i+j=4=1 или i+j=n+1. На рисунке главная диагональ закрашена сплошным серым цветом, побочная - черным.
a12
a13
a14
a23
a24
a34
Элементы, расположенные над главной диагональю, Для индексов элементов, расположенных над главной диагональю выполняется отношение i<j;
a21
a31
a32
a41
a42
a43
Элементы, расположенные под главной диагональю, Для индексов элементов, расположенных под главной диагональю выполняется отношение i>j;
Примеры :
1)Найти сумму элементов главной диагонали:
S:=0;
for i:=1 to n do
S:=S+a[i,i];
2)Найти минимальный элемент побочной диагонали:
min:=a[1,n];
for i:=1 to n do
if a[i,n+1-i]<min then min:=a[i,n+1-i];
Примеры решения задач
Задача 1.Дан массив действительных чисел, состоящий из 3 строк и 5 столбцов. Вычислить произведение всех элементов массива.
Program pr1;
CONST N=3; M=5;
TYPE MAS=array [1..N,1..M] of real;
Var b: MAS;
i: 1..N;
j : 1..M;
p:real;
BEGIN
Writeln(‘Введите элементы массива’);
For i:=1 to n do
For j:=1 to m do
Readln(b[i,j]);
{Вывод значений массива}
For i:=1 to n do
begin
For j:=1 to m do
Write (b[i,j]); {Вывод элементов одной строки матрицы}
Writeln; { переход на следующую строку экрана}
end;
p:=1;
For i:=1 to n do
For j:=1 to m do
p:=p*b[i,j];
Writeln(‘Произведение = ’,p:7:2);
end.
Задача 2.Дан двумерный массив A[N,M]
Сформировать массив B[N,M], где
SQR(A[I.J]), если I- НЕЧЕТНОЕ;
B[I,J] =
SQRТ(A[I.J]), если I- ЧЕТНОЕ;
Program pr3;
CONST N=3; M=5;
TYPE MAS=array [1..N,1..M] of real;
Var a,b : MAS;
i: 1..N;
j : 1..M;
BEGIN
Writeln(‘Введите элементы массива’);
For i:=1 to N do
For j:=1 to M do
Readln(a[i,j]);
{Вывод значений массива}
For i:=1 to N do
begin
For j:=1 to M do
Write (a[i,j]:5:1);
Writeln;
end;
For i:=1 to N do
if i/2= int(i/2) Then For j:=1 to M do
b[i,j]:=sqrt (a[i,j])
Else For j:=1 to M do
b[i,j]:=sqr (a[i,j])
For i:=1 to N do
begin
For j:=1 to M do
Write (b[i,j]:7:2);
Writeln;
end;
end.
9.1 Дан двухмерный массив целых чисел. Составить программу :
а) вывода на экран элемента, расположенного в правом верхнем углу массива;
б) вывода на экран элемента, расположенного в левом нижнем углу массива;
в) вывода на экран любого элемента второй строки массива;
г) вывода на экран любого элемента третьего столбца массива;
д) вывода на экран любого элемента массива.
9.2 Дан двухмерный вещественный массив. Поменять местами :
а) элементы, расположенные в верхнем правом и нижнем левом углах;
б) элементы, расположенные в нижнем правом и верхнем левом углах;
9.3 Известен номер строки, на которой расположен элемент главной диагонали двумерного массива целых чисел. Вывести на экран значение этого элемента.
9.4 Вывести на экран (в одну строку) :
а) все элементы главной диагонали целочисленного массива, начиная с элемента, расположенного в левом верхнем углу;
б) все элементы главной диагонали вещественного массива, начиная с элемента, расположенного в правом нижнем углу.
9.5 Заменить значения всех элементов главной диагонали целочисленного массива на нулевые.
9.6 Заменить значения всех элементов побочной диагонали целочисленного массива на значения, равные 100.
9.7 Определить :
а) сумму элементов главной диагонали вещественного массива;
б) сумму элементов побочной диагонали целочисленного массива;
в) среднее арифметическое элементов главной диагонали массива целых чисел;
г) среднее арифметическое элементов побочной диагонали вещественного массива;
д) минимальный (максимальный) элемент главной диагонали целого массива;
е) максимальный (минимальный) элемент побочной диагонали вещественного массива;
ж) координаты первого максимального элемента главной диагонали вещественного массива;
з) координаты первого минимального элемента главной диагонали целочисленного массива.
9.8 Верно ли, что сумма элементов главной диагонали целочисленного массива не превышает 100?
9.9 Дан двухмерный массив вещественных чисел .
а) вывести на экран все элементы пятой строки массива;
б) вывести на экран все элементы третьей строки массива, начиная с по следнего элемента этой строки;
в) вывести на экран все элементы s-го столбца массива;
г) заменить значения всех элементов второй строки массива на число 5;
д) заменить значения всех элементов пятого столбца на число 10.
е) определить максимальный (минимальный) элемент третьего столбца;
9.10 Дан двухмерный целых чисел массив. Составить программу :
а) расчета произведения двух любых элементов любой строки массива
б) сумму всех элементов любой строки массива;
9.11 Дан двумерный массив целых чисел. Определить :
а) в каком столбце массива сумма элементов меньше, в первом или в последнем;
б) в какой строке произведение элементов больше, во второй или в третьей.
9.12 Заполнить двумерный массив размером 7х7 следующим образом :
а)
б)
9.13 * Заполнить массив 5х5 следующим образом :
а)
б)
9.14 *Заполнить двумерный массив размером nxn числами 1, 2, ... n2, расположенным в нем по спирали : (см 9.13б)
9.15 Дан двухмерный целочисленный массив размером 10 х 10. Вывести на экран часть массива :
а) расположенную выше главной диагонали;
б) расположенную ниже главной диагонали;
в) расположенную выше побочной диагонали;
г) расположенную ниже побочной диагонали;
9.16 Дан двумерный массив целых чисел :
а) в каждом его столбце найти максимальный (минимальный) элемент;
в) сумму нечетных элементов в каждом столбце (строке);
г) количество элементов кратных А или В.
д)* найти строку с максимальной суммой элементов;
е)* найти столбец с минимальной суммой элементов.
9.17 Даны два двумерных вещественных массива одинаковых размеров.
а) создать третий массив такого же размера, каждый элемент которого равен сумме соответствующих элементов двух первых массивов.
б) создать третий массив такого же размера, каждый элемент которого равен 100, если соответствующие элементы двух первых массивов имеют одинаковый знак, и равен нулю в противном случае.
9.18 * Дан двухмерный массив размером nxn , заполненный целыми числами.
а) все его элементы, кратные трем, записать в одномерный массив.
б) все его положительные элементы записать в один одномерный массив, а остальные - в другой.
9.19 Дан двухмерный массив целых чисел.
а) сформировать одномерный массив, каждый элемент которого равен сумме четных положительных элементов соответствующего столбца двумерного массива.
б) сформировать одномерный массив, каждый элемент которого равен количеству нечетных отрицательных элементов соответствующего столбца двумерного массива.
в) сформировать одномерный массив, каждый элемент которого равен количеству отрицательных элементов соответствующей строке двухмерного массива, кратных 3 или 7.
г) сформировать одномерный массив, каждый элемент которого равен количеству положительных элементов соответствующего столбца двухмерного массива, кратных 4 или 5.
9.20 * Дан двумерный массив из четного числа столбцов. Поменять местами первый со вторым, третий - с четвертым и т.д.
9.21 Дан двухмерный массив. а) удалить из него k-ую строку, s-ый столбец.
ЗАДАЧИ ПОВЫШЕННОЙ СЛОЖНОСТИ
9.22 Напечатать строку, образованную символами, расположенными в четырех углах символьного массива (в любом порядке).
9.23 Составить программу, которая печатает слово, образованное несколькими идущими подряд символами с заданными номерами, расположенными в некоторой строке символьного массива.
9.24 Дан двумерный массив размером 5х5, заполненный буквами. Напечатать слово, образованное элементами массива, отмеченными звездочкой (*), при прочтении их:
а) слева направо в каждой строке, начиная с первой;
б) сверху вниз в каждом столбце, начиная с первого.
9.25 Напечатать слова, образованные четными элементами каждой строки массива.
9.26 В каждой строке двумерного символьного массива найти количество букв «Е», расположенных справа от буквы «Н»
9.27 Проверить, одинаковые ли строки целочисленного массива с номерами N и М.
9.28 Найти :
а) номер первой по порядку строки целочисленного массива, содержащей наибольшее число цифр;
б) номер первого по порядку столбца символьного массива, содержащего наибольшее число пробелов;
в) номер последней по порядку строки символьного массива, содержащей наибольшее количество букв «Ш» и «Щ».
9.29 Шахматную доску представить в виде квадратного символьного массива размером 8 х 8. Заполнить массив таким образом, чтобы элементы массива, соответствующие черным полям, имели значение Х. Левое нижнее поле на шахматной доске всегда черное.
Символы и строки.
Помимо числовой информации компьютер может обрабатывать символьную информацию. Turbo Pascal оперирует информацией, которая может быть представлена отдельными символами или строками символов.