Лабораторная работа 6.
Работа с двумерными массивами: решение двух задач базового цикла за один проход в матрице
Дана матрица А, состоящая из n строк и n столбцов (Аij – это элемент, стоящий на пересечении i-й строки и j-го столбца) или одномерные массивы из n элементов каждый. Составить алгоритм и программу для получения и вывода, указанных в условии результатов и самих массивов, если изменялись какие-либо их элементы.
Алгоритм решения любой задачи может (и должен) быть составлен с использованием единственного двукратного цикла. При этом подзадачи ввода и вывода исходных данных выполняются отдельно. |
Спецификация содержит:
Формулировка исходной задачи.
Уточненная постановка задачи.
Таблица данных.
4. Блок-схема ( должна содержать конкретизацию условий, констант, начальных значений переменных, а не просто общие слова, т.е. это означает, что блок-схема не может выглядеть у разных вариантов как под копирку срисованная ).
5. Функциональные тесты (с просчитанными решениями) минимально возможные:
a. любая матрица и массив с различными элементами, подходящими для нормального решения задачи. При этом выбрать небольшой n, например, n=5, для упрощения вычислений вручную;
b. критические, но допустимые данные, например, n=2, а начальные значения элементов матрицы и массива = 0 (-1, если 0 недопустим в вашей задаче).
Код программы с комментариями.
1. | Найти среднее арифметическое элементов матрицы и сумму элементов тех строк матрицы, в которых отрицателен элемент главной диагонали. |
2. | Найти среднее арифметическое неотрицательных элементов матрицы, а также подсчитать, сколько таких элементов в каждой отдельно взятой строке матрицы. |
3. | Получить массив X1,X2,...,Xn по правилу: Xi=1, если сумма элементов i-го столбца матрицы больше их произведения, иначе Xi=0. Найти среднее арифметическое всех элементов матрицы. |
4. | Назовем инверсией в строке ситуацию Aij>Aij+1 (в отличие от ситуации Aij£Aij+1). Получить массив C1,C2,...,Cn по правилу: Ci=1, если в i-й строке более двух инверсий, иначе Ci=0. Подсчитать общее число инверсий в строках. |
5. | Получить массив C1,C2,...,Cn по правилу: Ci=1, если все n произведений вида AjiAij (j=1,2,...,n) положительны, иначе Ci=0. Найти сумму элементов матрицы. |
6. | Задан массив C1,C2,...,Cn. Рассматривая их по очереди, выводить элемент Ci, если он больше любого из элементов i-й строки матрицы. Найти также сумму элементов матрицы. |
7. | Получить массив X1,X2,...,Xn по правилу: Xi=1, если элемент Aii больше каждого из элементов i-й строки матрицы, иначе Xi=0. Найти также сумму элементов матрицы. |
8. | Получить массив X1,X2,...,Xn по правилу: Xi=1, если для всех j=1,2,...,n выполняется неравенство Aji≤ Aij, иначе Xi=0. Найти сумму элементов матрицы. |
9. | Изменить матрицу, прибавляя к каждому отрицательному элементу значение предыдущего элемента той же строки. Если отрицателен первый элемент строки, прибавить к нему значение последнего элемента строки. Подсчитать число строк, в которых не было замен элементов. |
10. | Изменить часть матрицы, находящуюся под главной диагональю, следующим образом: если элемент Aij больше элемента Aji, задать элементу Aij новое значение - значение полу суммы данных двух элементов. Найти сумму элементов главной диагонали. |
11. | Изменить все строки матрицы, в которых отрицателен элемент главной диагонали: к каждому элементу i-й строки прибавляется элемент Ti из заданного массива T1,T2,...,Tn. Подсчитать число измененных строк матрицы. |
12. | Получить массив X1,X2,...,Xn и найти произведение элементов матрицы; элемент Xi представляет среднее арифметическое положительных элементов в i-й строке матрицы, или равен 0, если положительных элементов в ней не обнаружено. |
13. | Дан массив C1,C2,...,Cn. Изменить матрицу, увеличив каждый элемент, который меньше элемента главной диагонали, находящегося с ним в одной строке, на Ci, где i - номер строки. Подсчитать общее число измененных элементов. |
14. | Найти по отдельности число положительных и равных нулю элементов в совокупности тех строк матрицы, i‑й элемент которых больше 1, а также найти общую сумму элементов этих строк. |
15. | Найти общую сумму элементов тех столбцов матрицы, сумма элементов в каждом из которых положительна, и сумму элементов главной диагонали. |
16. | Получить массив C1,C2,...,Cn по правилу: Ci=0, если все элементы i-го столбца матрицы равны 0, иначе Ci=1. Найти также сумму всех элементов матрицы. |
17. | Изменить матрицу путем замены каждого отрицательного элемента 2-го,3-го,...,n-го столбцов абсолютной величиной суммы предшествующих ему элементов той строки, в которой он находится. Найти также среднее арифметическое всех элементов матрицы. |
18. | Получить массив X1,X2,...,Xn по правилу: Xi=0, если все элементы i-го столбца и i-й строки матрицы меньше 1, иначе Xi=1. Найти также произведение всех элементов матрицы. |
19. | Изменить матрицу, заменив каждый отрицательный элемент, лежащий выше главной диагонали, его абсолютной величиной. Найти также сумму элементов главной диагонали. |
20. | Известно, что в матрицы элемент последнего столбца может иметь лишь значения 0 и 1. Найти среднее арифметическое общей совокупности элементов тех строк, последний элемент которых равен 1. |
21. | Задан массив X1,X2,...,Xn. Получить массив C1, C2,..., Cn по правилу: |
22. | Задан массив C1,C2,...,Cn. Нужно изменить все столбцы матрицы, в которых равен 0 элемент главной диагонали: i-й элемент такого столбца (i=1,2,...,n) увеличивается на Ci. Найти также сумму элементов главной диагонали. |
23. | Найти среднее арифметическое отрицательных элементов матрицы, лежащих ниже главной диагонали, и среднее арифметическое всех элементов главной диагонали. |
24. | Заменить в матрице на 1 каждый положительный элемент, на 0 - каждый отрицательный. Для каждого столбца найти среднее арифметическое исходных значений элементов. |
25. | Найти сумму элементов матрицы и подсчитать число ее строк, в пределах каждой из которых элементы упорядочены по возрастанию: Ai1<Ai2<...<Ain. |
26. | Задан массив X1,X2,...,Xn. Получить массив C1,C2,...,Cn по правилу Ci=Xi, если любое из произведений (k=1, 2,...,n) меньше Xi, иначе Ci=0. Найти также произведение всех элементов матрицы. |
27. | Получить массив X1,X2,...,Xn по правилу: Xi=1, если каждый элемент i-го столбца, кроме первого и последнего элементов, меньше полу суммы двух соседних элементов (предыдущего и последующего), иначе Xi=0. |
28. | Получить массив X1,X2,...,Xn по правилу: Xi=1, если в i-м столбце матрицы есть хотя бы один элемент, превышающий заданное значение C, иначе Xi=0. Найти также общее число элементов, которые больше C. |
29. | Найти среднее арифметическое тех элементов матрицы, каждый из которых больше находящегося с ним в одной строке элемента главной диагонали, и сумму элементов главной диагонали. |
30. | Найти среднее арифметическое элементов Aij, лежащих выше и ниже главной диагонали матрицы, для которых выполняется условие Aii<Aij<Ajj. Найти сумму элементов каждого столбца. |
31. | Найти произведение элементов матрицы и подсчитать число ее строк, в пределах каждой из которых элементы упорядочены по невозрастанию: Ai1 ≥ Ai2 ≥... ≥ Ain. |
32. | Получить массив X1,X2,...,Xn и найти произведение отрицательных элементов матрицы; элемент Xi представляет среднее арифметическое положительных элементов в j-м столбце матрицы, или равен 0, если положительных элементов в столбце не обнаружено. |
33. | Найти среднее геометрическое тех элементов матрицы, каждый из которых больше находящегося с ним в одной строке элемента главной диагонали, и сумму абсолютных значений элементов главной диагонали. |
34. | Изменить матрицу, вычитая из каждого положительного элемента значение предыдущего элемента той же строки. Если положителен первый элемент строки, вычесть из него значение последнего элемента строки. Подсчитать число строк, в которых были изменены элементы. |
35. | Найти по отдельности число отрицательных и равных нулю элементов в совокупности тех столбцов матрицы, j‑й элемент которых меньше 1, а также найти общее произведение элементов этих столбцов. |