Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сборник лабораторных работ.doc
Скачиваний:
6
Добавлен:
17.11.2019
Размер:
5.38 Mб
Скачать

12Краткая теоретическая справка Обход матрицы

Под обходом матрицы понимается перечисление всех ее элементов. На следующем рисунке представлены несколько способов обхода элементов матрицы:

Примеры вариантов обхода матрицы: а - обход по строкам, б - обход по столбцам, в - "обход змейкой", г - обход по спирали, д - обход "змейкой по диагоналям", е - "лабиринт"

Для каждого из представленных способов, кроме последнего, который выполняется по правилу выхода из лабиринта, можно предложить закон, связывающий индексы между собой.

Самые простые обходы: по строкам и столбцам.

Обход по строкам реализуется вложением циклов:

for(i=0; i<n; i++)

for(j=0; j<m; j++)

//обработка элемента a[i][j]

При обходе по столбцам меняются местами циклы по строкам и столбцам:

for(j=0; j<m; j++)

for(i=0; i<n; i++)

//обработка элемента a[i][j]

В прочих случаях закономерности формирования индексов приходится исследовать, чтобы предложить соответствующий вариант реализации.

Рассмотрим закономерность формирования индексов диагоналей квадратной матрицы.

Определив закономерности, можно построить цикл прохода по диагонали матрицы. Например, для диагонали, проходящей через элемент [р][к] параллельно главной, получаем:

if p-k>0 then s:=n-p+k else s:=n-k+p;

for i;=1 to s do <обработка элемента a[i,i-p+k]>

13Индивидуальные задания

Задача 1

Формулировка задачи

1

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти среднее арифметическое элементов каждого из четных столбцов этой матрицы.

2

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти среднее арифметическое элементов каждого из нечетных столбцов этой матрицы.

3

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти среднее арифметическое элементов каждой из строк этой матрицы.

4

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти среднее арифметическое элементов каждой из четных строк этой матрицы.

5

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти среднее арифметическое элементов каждой из нечетных строк этой матрицы.

6

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти среднее арифметическое из всех отрицательных элементов этой матрицы.

7

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Найти среднее арифметическое из всех положительных элементов этой матрицы.

8

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти характеристику каждой ее строки (сумму положительных четных элементов в каждой строке).

9

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Найти характеристику каждого ее столбца (сумму модулей отрицательных нечетных элементов в каждом столбце).

10

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Найти сумму и произведение всех ее положительных элементов.

11

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти сумму и произведение всех ее отрицательных элементов.

12

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти сумму всех ее положительных и произведение всех ее отрицательных элементов.

13

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти сумму всех ее элементов и заменить ею все диагональные элементы этой матрицы.

14

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти произведение всех ее элементов и заменить им все диагональные элементы этой матрицы.

15

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти минимальное из чисел, встречающееся в данной матрице более одного раза.

16

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти максимальное из чисел, встречающееся в данной матрице более одного раза.

17

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти сумму наибольших элементов каждой строки матрицы и их координаты.

18

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти произведение наибольших элементов каждой строки матрицы и их координаты.

19

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти сумму наибольших элементов каждого столбца матрицы и их координаты.

20

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Найти, сколько положительных элементов содержит данная матрица в каждой строке.

21

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Найти, сколько отрицательных элементов содержит данная матрица в каждом столбце.

22

Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент.

23

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее.

24

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Сформировать вектор из суммы элементов строк и найти их среднее арифметическое.

25

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Сформировать вектор из произведения элементов столбцов и найти их среднее арифметическое.

26

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Сформировать вектор из наименьших значений элементов строк и найти их среднее арифметическое.

27

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Сформировать вектор из разностей наибольших и наименьших значений элементов строк.

28

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Найти сумму элементов строки, в которой расположен наименьший элемент.

29

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Найти сумму элементов столбца, в котором расположен наименьший элемент.

30

Задана квадратная матрица A размером NxN (N<=10), состоящая из целых чисел. Поменять местами строку, содержащую максимальный элемент, со строкой, содержащей минимальный элемент.

Задача 2. Решить задачу с использованием статического двумерного массива. Предполагаемая размерность массива (n , в некоторых случаях m) задается с помощью константы.

Формулировка задачи

1

Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n].

2

Составьте программу вычисления среднего арифметического каждого столбца матрицы B[n][n] и запишите данные значения в главную диагональ данной матрицы.

3

Составьте программу вычисления среднего арифметического каждого столбца под главной диагональю (диагональ включать) матрицы B[n][n] и запишите данные значения в последний столбец данной матрицы.

4

В данном числовом массиве A[n][m] найти номер столбца, все элементы которого одинаковы.

5

В данном числовом массиве A[n][n] найти максимальный диагональный элемент и вывести всю строку, в которой он расположен.

6

В данном числовом массиве A[n][n] найти максимальный диагональный элемент и вывести весь столбец, в котором он расположен.

7

В данном массиве A[n][n] поменять местами строки и столбцы.

8

В данном массиве A[n][n] поменять местами две строки с номерами р и q.

9

Преобразовать двумерный массив A[n][m] в одномерный массив B[n*m], соединив все строки в одну.

10

Для данного целого положительного N создать матрицу A[n][n], в которой элементы, стоящие по диагонали, равны единице, а все остальные элементы – нулевые.

11

Для данного целого положительного N сформировать матрицу A[n][n], в которой элементы диагонали равны номеру строки, а все остальные элементы – нулевые.

12

В матрице A[n][m] поэлементно вычесть последнюю строку из всех строк, кроме последней.

13

Матрицу A[n][n] сформировать по следующему принципу: по диагонали расположены единицы, выше диагонали – нули, а элементы, расположенные ниже диагонали, равны сумме соответствующих индексов.

14

Задана матрица В[3][5]. Получить матрицу V путем удаления из В строки и столбца, в которых содержится минимальный элемент.

15

Дана матрица A[m][n]. Дополнить ее (m+1)-й строкой и (n+1)-м столбцом (создать новый массив B[m+1][n+1]), в которых записать суммы элементов соответствующих строк или столбцов исходного массива А.

16

Создать вектор М, содержащий количество отрицательных элементов каждого столбца матрицы z[n][m].

17

Имеется матрица A[m][n]. Найти максимальный из всех минимальных элементов строк. Вывести номер строки, в которой расположено выбранное число.

18

Найти среднее арифметическое элементов матрицы Х[n][m] и сформировать вектор У из элементов, больших среднего арифметического.

19

Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K[m][m]. Найти сумму элементов этого массива.

20

Дана матрица X[m][m]. Сформировать вектор из элементов, расположенных по спирали.

21

Дано число k (0 < k < 11) и матрица размера 4 x 10. Найти сумму и произведение элементов k-го столбца данной матрицы.

22

Дана квадратная матрица размерности N*N, где N –нечетное число. Элементами матрицы являются вещественные числа. Требуется вычислить сумму ее элементов из заштрихованной области:

23

Дана квадратная матрица размерности N*N, где N –нечетное число. Элементами матрицы являются вещественные числа. Требуется вычислить сумму ее элементов из заштрихованной области:

24

Дана квадратная матрица размерности N*N, где N –нечетное число. Элементами матрицы являются вещественные числа. Требуется вычислить сумму ее элементов из заштрихованной области:

25

Дана квадратная матрица размерности N*N, где N –нечетное число. Элементами матрицы являются вещественные числа. Требуется вычислить сумму ее элементов из заштрихованной области:

26

Дана квадратная матрица порядка M. Зеркально отразить ее элементы относительно горизонтальной оси симметрии.

27

Дана квадратная матрица порядка M. Зеркально отразить ее элементы относительно вертикальной оси симметрии.

28

Дана квадратная матрица порядка M. Зеркально отразить ее элементы относительно главной диагонали.

29

Дана квадратная матрица порядка M. Зеркально отразить ее элементы относительно побочной диагонали матрицы.

30

Написать программу, которая проверяет, является ли введенная с клавиатуры квадратная матрица размерности N*N «магическим» квадратом. Магическим квадратом называется матрица, у которой сумма чисел в каждом горизонтальном ряду, в каждом вертикальном ряду и по каждой из диагоналей одна и та же (см. приведенный рисунок).

2

9

4

13

8

12

1

7

5

3

2

11

7

14

6

1

8

3

10

6

15

16

5

9

4

Задача 3. (задача может быть решена после изучения темы "Указатели"). Решить задачу 2 с использованием динамического двумерного массива. Предполагаемая размерность массива n (в некоторых случаях m) задается пользователем во время выполнения программы.

Тема: Работа с функциями

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