Глава 6. Статические и динамические матрицы
Рис. 6.3: Ввод элементов
матрицы
Рис. 6.4: Блок-схема построчного вывода
матрицы
При выводе матрицы элементы располагаются построчно, например:
6
−9
7
13
5
8
3
8
3
7
88
33
55
77
88
37
Алгоритм построчного вывода элементов матрицы приведён на рис. 6.4.
Ниже приведён текст программы на C++ ввода-вывода статической матрицы.
#include
using namespace s t d ;
i n t main ( )
{
i n t i , j , N,M, a [ 2 0 ] [ 2 0 ] ;
cout<<" N = " ;
c i n >>N; //Ввод количества строк
cout<<" M = " ;
c i n >>M; //Ввод количества столбцов
cout<<"Ввод матрицы A "<f o r ( i =0; i f o r ( j =0; j c i n >>a [ i ] [ j ] ; //Ввод очередного элемента матрицы
cout<<"Вывод матрицы A "<f o r ( i =0; i {
f o r ( j =0; j cout<cout<}
}
Цикл для построчного вывода матрицы можно записать и так.
f o r ( i =0; i f o r ( j =0; j cout<При вводе матрицы элементы каждой строки можно разделять пробелами, сим-
волами табуляции или Enter. Ниже представлены результаты работы програм-
мы.
Программирование на языке С++ в среде Qt Creator
6.3. Обработка матриц в С(С++)
189
N=4
M=5
Ввод матрицы A
1 2 3
5 4
3 6 7 8 9
1 2 3 4 5 6 7 8 9 0
Вывод матрицы A
1
2
3
5
4
3
6
7
8
9
1
2
3
4
5
6
7
8
9
0
Далее на примерах решения практических задач будут рассмотрены основ-
ные алгоритмы обработки матриц и их реализация в C++. Перед этим давайте
вспомним некоторые свойства матриц (рис. 6.5):
• если номер строки элемента совпадает с номером столбца (i = j), это озна-
чает, что элемент лежит на главной диагонали матрицы;
• если номер строки превышает номер столбца (i > j), то элемент находится
ниже главной диагонали;
• если номер столбца больше номера строки (i < j), то элемент находится
выше главной диагонали.
• элемент лежит на побочной диагонали, если его индексы удовлетворяют
равенству i + j = n − 1 ;
• неравенство i + j < n − 1 характерно для элемента, находящегося выше
побочной диагонали;
• соответственно, элементу лежащему ниже побочной диагонали соответству-
ет выражение i + j > n − 1.
Рис. 6.5: Свойства элементов матрицы
Задача 6.1.
Найти сумму элементов матрицы, лежащих выше главной диагона-
ли.
Алгоритм решения данной задачи (рис. 6.6) построен следующим образом: об-
нуляем ячейку для накапливания суммы (переменная s), затем с помощью двух
циклов (первый по строкам, второй по столбцам) просматриваем каждый эле-
мент матрицы, но суммируем только в том случае, если этот элемент находится
выше главной диагонали (при выполнении условия i < j).
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.
190
Do'stlaringiz bilan baham: |