|
Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не Qt, Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.
|
Статические и динамические матрицы
6.3 Обработка матриц в С(С++)
Рассмотрим основные операции, выполняемые над матрицами (статическими и динамическими) при решении задач.
Матрицы, как и массивы, нужно вводить (выводить) поэлементно. Блок- схема ввода элементов матрицы x[n][m] изображена на рис. 6.3.
При выводе матрицы элементы располагаются построчно, например:

Алгоритм построчного вывода элементов матрицы приведён на рис. 6.4.
Ниже приведён текст программы на C++ ввода-вывода статической матрицы.
#include <iostream>
using namespace std;
int main ( )
{
int i, j,N,M, a [ 20 ] [ 20 ];
cout<<" N = ";
cin>>N; //Ввод количества строк
cout<<" M = ";
cin>>M; //Ввод количества столбцов
cout<<"Ввод матрицы A "<<endl;
for ( i =0; i<N; i++) //Цикл по переменной i, перебираем строки матрицы
for ( j =0; j<M; j++) //Цикл по переменной j, перебираем элементы внутри строки
cin>>a [ i ] [ j ]; //Ввод очередного элемента матрицы
cout<<"Вывод матрицы A "<<endl;
for ( i =0; i<N; i++) //Цикл по переменной i, перебираем строки матрицы
{
for ( j =0; j<M; j++) //Цикл по переменной j, перебираем строки матрицы
cout<<a [ i ] [ j ]<<" \t "; //Вывод очередного элемента матрицы
cout<<endl; //По окончанию вывода всех элементов строки — переход на новую строку.
}
}Цикл для построчного вывода матрицы можно записать и так.
for ( i =0; i<N; cout<<end l, i++) for ( j =0; j<M; j++) cout<<a [ i ] [ j ]<<" \t ";
При вводе матрицы элементы каждой строки можно разделять пробелами, символами табуляции или Enter. Ниже представлены результаты работы программы.
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 < n - 1 характерно для элемента, находящегося выше побочной диагонали;
- соответственно, элементу лежащему ниже побочной диагонали соответствует выражение
.


