- •1.1.2 Структура функцій програми
- •1.1.3 Правила синтаксису
- •1.1.4. Типи даних
- •1.1.5. Функції введення та виведення даних
- •1.2 Приклад програми Умова задачі
- •Особливості використання функцій вводу та виводу
- •1.3 Технологія виконання лабораторної роботи
- •1.4. Варіанти завдань
- •1.5 Контрольні запитання
- •Розгалужені обчислювальні процеси Лабораторна робота 2
- •2.1 Теоретичні відомості
- •2.1.1. Вибір із двох альтернатив
- •2.1.2. Вкладеність конструкцій вибору
- •2.1.3. Операторний блок
- •2.1.4. Поліваріантний вибір
- •2.2. Приклади програм
- •2.3. Варіанти завдань
- •2.4 Контрольні запитання
- •Циклічні обчислювальні процеси Лабораторна робота 3
- •3.1 Теоретичні відомості
- •3.1.1. Цикл із передумовою
- •3.1.2. Цикл із постумовою
- •3.1.3. Цикл із лічильником
- •3.1.4. Переривання та продовження циклу
- •3.2. Приклад алгоритму та програми
- •3.3. Варіанти завдань
- •3.4 Контрольні запитання
- •Цикли з розгалуженням Лабораторна робота 4
- •4.1 Теоретичні відомості
- •4.1.1. Рекурентні співвідношення
- •4.1.2. Функції користувача
- •4.2. Приклад алгоритму та програми
- •Алгоритм задачі
- •Код програми
- •4.3. Варіанти завдань
- •4.4 Контрольні запитання
- •Рекурсивні функції Лабораторна робота 5
- •5.1 Теоретичні відомості
- •5.2. Приклад алгоритму та програми
- •5.3. Варіанти завдань
- •6.1.2. Оголошення та ініціалізація
- •6.1.3. Операції над покажчиками
- •6.1.4. Методи розв’язанні нелінійних рівнянь
- •6.2. Приклад алгоритму та програми
- •6.3. Варіанти завдань
- •6.4 Контрольні запитання
- •Одновимірні масиви Лабораторна робота 7
- •7.1 Теоретичні відомості
- •7.2. Приклад алгоритму та програми
- •Алгоритм програми
- •Код програми
- •7.3. Варіанти завдань
- •7.4 Контрольні запитання
- •Багатовимірні масиви Лабораторна робота 8
- •8.1 Теоретичні відомості
- •8.1.1. Оголошення багатовимірних масивів. Доступ до елементів
- •8.1.2. Базові операції обробки двовимірних масивів
- •8.2. Приклад алгоритму та програми
- •8.3. Варіанти завдань
- •9.1.2. Деякі функції обробки рядків
- •9.2. Приклад алгоритму та програми
- •9.3. Варіанти завдань
- •9.4 Контрольні запитання
- •Структури та масиви структур Лабораторна робота 10
- •10.1 Теоретичні відомості
- •10.2. Приклад алгоритму та програми
- •Алгоритм задачі
- •Приклад коду
- •10.3. Варіанти завдань
- •10.4 Контрольні запитання
8.2. Приклад алгоритму та програми
Скласти програму множення двох матриць.
Добутком матриці A та матриці B називається матриця С, елемент якої cij дорівнює скалярному добутку i-го вектор-рядка матриці А та j-го вектор-стовпця матриці B. Це означення можна записати у вигляді рівності C = AB, де
//ex7_16.cpp. Множення матриць #include<iostream> using namespace std; typedef float Matrix[10][10]; //тип матриці int i,j; //індекси елементів Matrix A,B; //вхідні матриці Matrix C; //матриця результату множення int row1,row2; //кількість рядків вхідних матриць int col1,col2; //кількість стовпців вхідних матриць //=================== функція введення матриці =============== void input(Matrix Mas,int& line, int& kol) { //Mas — покажчик на матрицю, яку вводять //line,kol — кількість рядків і стовпців do{ cout<<"input numbers of rows >=1 "; cin>>line; cout<<"input numbers of columns >=1 "; cin>>kol; if ((line<1) || (kol<1)) //контроль правильності введення cout<<"it''s few, input more"<<endl; } while ((line<=1)&& (kol<=1)); //перевірка коректності даних cout<<"input matrix:"<<endl; for(int i=0;i<line;i++) for( int j=0;j<kol;j++) cin>>Mas[i][j]; }
//=========== процедура виведення матриці ==================== void output(Matrix Mas,int line, int kol) { //Mas — покажчик на матрицю //line,kol — кількість рядків і стовпців for(int i=0;i<line;i++) //вивести елементи матриці { for(int j=0;j<kol;j++) cout<<Mas[i][j]<<" "; //вивести елементи рядка cout<<endl; //перевести курсор на новий рядок } } //================== множення матриць ======================== void mult() { //використовуються глобальні змінні A,B,C int k; //індекс елемента скалярного добутку векторів if (col1!=row2) //перевірка відповідності матриць cout<<"multiplication is impossible — matrix are unconformable"<<endl; else { for (int i=0;i<row1;i++) //вибрати i-й вектор-рядок for(int j=0;j<col2;j++) //вибрати j-й вектор-стовпець { C[i][j]=0; for (k=0;k<col1;k++) C[i][j]=C[i][j]+A[i][k]*B[k][j]; //скалярне множення //векторів } } } //================== головна функція ========================== int main(){ cout<<"input matrix A: "<<endl; input(A,row1,col1); //ввести матрицю А cout<<"input matrix B: "<<endl; input(B,row2,col2); //ввести матрицю В cout<<"matrix A :"<<endl; output(A,row1,col1); //вивести матрицю А cout<<"matrix B :"<<endl; output(B,row2,col2); //вивести матрицю В mult(); //перемножити A та B cout<<"result of multiplication :"<<endl; output(C,row1,col2); //вивести матрицю C system("pause"); }
Рис. 8.1. Результати роботи програми множення матриць