Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не 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 характерно для элемента, находящегося выше побочной диагонали;
- соответственно, элементу лежащему ниже побочной диагонали соответствует выражение .