Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки, молоді та спорту України
Національний університет “Львівська політехніка”
Кафедра КСА
Класові типи. Використання класових типів та управління об'єктами
Лабораторна робота № 1
з курсу “Алгоритмічні мови та програмування. Частина 2”
Варіант- 6
Львів 2014
1.Мета роботи:
Вивчити основні принципи об’єктно-орієнтованого програмування та структуру класів в алгоритмічній мові С++, навчитися створювати класові типи, вміти їх використовувати та управляти об’єктами.
2. Завдання:
Написати програму алгоритмічною мовою С++ згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування матриці, обчислення fi(aij), введення і виведення матриці оформити у вигляді функцій; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
Для розв'язку задачі використати клас двомірного масиву та функції-члени.
6
Впорядкувати елементи рядків матриці за спаданням їх значень методом обміну.
fi(aij)-добуток елементів у кожному стовпці під головною діагоналлю матриці; F(fi(aij))-середнє арифметичне значення fi(aij)
19 62 –45 -1 84
23 54 -4 -2 68
36 39 96 94 97
-3 -8 -4 -6 -22
98 -5 -3 0 11
3. Код програми:
#include <stdafx.h>
#include <conio.h>
#include <iostream>
#include <iomanip>
using namespace std;
const int n=5;
const int m=5;
//////////////////////////////////////////////////
// Оголошення класу
class Matrix
{
private:
double M[n][m];
public:
void inputMatrix();
void outputMatrix();
void dobMatrix();
void sort();
};
//////////////////////////////////////////////////
// Ввід матриці
void Matrix::inputMatrix()
{
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
cout<<"["<<i<<"]["<<j<<"] = ";
cin>>M[i][j];
}
}
//////////////////////////////////////////////////
// Вивід матриці
void Matrix::outputMatrix()
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cout<<setw(7)<<M[i][j]<<" ";
cout<<endl;
}
}
//////////////////////////////////////////////////
// Знаходження добутку стовпців під головною діагоналлю
void Matrix::dobMatrix()
{
double g=0;
int k=0;
double bpsum=1;
for(int j=0;j<5;j++)
{
for(int i=0; i<5; i++)
{
if (i>j)
{
bpsum=bpsum*M[i][j];
k=k+1;
}
}
g=(g+bpsum)/k;
cout<<"suma main diagonal = \t\t"<<bpsum<<"\n\n";
bpsum=1;
}
cout<<"g = \t\t"<<g<<"\n\n";
cout<<"k=\t\t"<<k<<"\n\n";
}
//////////////////////////////////////////////////
// Сортування масиву
void Matrix::sort()
{
double value;
int temp;
for(int k=0;k<m;k++)
for(int i=0;i<n-1;i++)
for (int j=n-1;j>=i+1;j--)
if(M[k][j]>M[k][j-1])
{
value=M[k][j];
M[k][j]=M[k][j-1];
M[k][j-1]=value;
}
}
//////////////////////////////////////////////////
void main(void)
{
Matrix A;
cout<<"Input elements of matrix A"<<endl;
A.inputMatrix();
cout<<"newInput Matrix A"<<endl;
A.outputMatrix();
cout<<"Dob Matrix A"<<endl;
A.dobMatrix();
A.sort();
cout<<"newSorted Matrix A"<<endl;
A.outputMatrix();
getch();
}
//////////////////////////////////////////////////
Результат роботи програми:
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!