Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки, молоді та спорту України
Національний університет “Львівська політехніка”
Кафедра КСА
Звіт до лабораторної роботи № 1
з курсу “Алгоритмічні мови та програмування. Частина 2”
Мета роботи: зрозуміти особливості використання функцій в алгоритмічній мові С++, навчитися передавати аргументи функції за значеннями, вказівниками, посиланнями та використовувати дружні функції.
Завдання: Написати програму алгоритмічною мовою С++ згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування матриці, обчислення fi(aij), введення і виведення матриці оформити у вигляді функцій; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
16
Впорядкувати елементи рядків матриці за зростанням їх значень методом вибору
fi(aij)-середнє арифметичне значення елементів у кожному стовпці під головною діагоналлю матриці; F(fi(aij))-добуток fi(aij)
1 16 21 11 6
2 17 22 12 7
3 18 23 13 8
4 19 24 14 9
5 20 25 15 10
Код програми:
#include <iostream>
#include <iomanip>
using namespace std;
class Matrix
{
private:
int n;
int m;
double Ffij;
double M[5][5];
public:
Matrix(){n=5;m=5;Ffij=1.0;};
void InputMatrix();
void OutputMatrix();
void Sort();
void fij();
};
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::Sort()
{
int item, nMin, c;
for(int i=0; i<m; i++)
{
for (int j = 0; j < n; j ++ )
{
c = j;
nMin = M[i][j];
for ( item = j+1; item < n; item ++ )
{
if ( M[i][item] < nMin )
{
nMin = M[i][item]; c = item;
}
}
nMin = M[i][c];
M[i][c] = M[i][j];
M[i][j] = nMin;
}
}
}
void Matrix::fij()
{
double saz[4]={0.0,0.0,0.0,0.0};
int cnt[4]={0};
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
if(i>j)
{
saz[j] = saz[j] + M[i][j];
cnt[j] = cnt[j] + 1;
}
for (int i=0;i<n-1;i++)
{
saz[i] = saz[i]/cnt[i];
cout<< setw(7)<<saz[i]<<" ";
Ffij = Ffij * saz[i];
}
cout<<endl;
cout<<endl;
// F(fi(aij))-добуток fi(aij))
cout<<Ffij<<endl;
}
int main(void)
{
Matrix A;
A.InputMatrix();
cout<<endl;
cout<<endl;
A.Sort();
A.OutputMatrix();
cout<<endl;
cout<<endl;
A.fij();
system("PAUSE");
return 0;
}
Результат роботи програми