Автор работы: Пользователь скрыл имя, 22 Декабря 2011 в 21:52, курсовая работа
Актуальність моєї роботи полягає у тому, що робота з матрицями зустрічається практично у всіх ВУЗах майже на всіх спеціальностях, та часто на виробництві, при розрахунках. Однозначною перевагою програми є можливість проводити математичні операції над матрицями великої розмірності, що значно прискорює процес розрахунку в порівнянні з «ручною роботою».
У роботі необхідно виконати наступні завдання: проаналізувати предметну область, розробити програму, створити візуальний інтерфейс, провести тестування.
Вступ 7
Аналіз предметної області 8
1.1 Огляд існуючих методів вирішення завдання 8
1.2 Огляд існуючих програмних засобів, що вирішують аналогічні завдання 9
1.3 Висновки по розділу та постановка завдання роботи 9
Аналіз програмних засобів………………………………………………………...…… ……10
2.1 Огляд особливостей мови програмування........................................................................ .10
2.2 Огляд особливостей обраного компілятору…………………..…………………… …….14
2.3 Створення візуального інтерфейсу…………………….……….…….…………………..15
2.6 Висновки по розділу 2……………………………………………………..………………16
Основні рішення по реалізації компонентів системи…………………… ...…………….17
3.1 Основні рішення щодо уявлення даних системи……………………………………….. 17
3.2 Основні розроблені алгоритми ……………………………………..19
3.3 Основні рішення щодо модульного уявлення системи 20
3.4 Особливості реалізації системи 20
3.5 Результати тестування програми 21
3.6 Висновки по розділу 3 21
Посібник програміста 22
Інструкція користувача 25
Висновки 27
pM->print();
cout<<"Determinant matrici:\n";
cout << "det A=" << pM->det() << endl;
break;
case 6: //exit
break;
default:
cout << "unknown command\n";
break;
}
}while(command!=6);
if (pM!=0) delete pM;
if (pM2!=0)
delete pM2;
system ("pause");
return 0;
};
M::M(int k, int in_num)
{
num = in_num;
n=k;
p=new float *[n];
for (int i=0; i<n; i++)
p[i]=new float[n];
cout << "Vvedite matricu N"<<num+1<<" "<<n<<"x"<<n<<":"<<endl;
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
cin >> p[i][j];
};
M::M()
{
cout << "Vvedite koli4estvo strok:\t";
cin >> n;
p=new float *[n];
for (int i=0; i<n; i++)
p[i]=new float[n];
cout << "Vvedite matricu:\n";
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
cin >> p[i][j];
};
M::M(const M& a)
{
n=a.n;
num = a.num;
p=new float *[n];
for (int i=0; i<n; i++)
p[i]=new float[n];
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
p[i][j]=a.p[i][j];
};
M::M(int k)
{
n=k;
num = -1;
p=new float *[n];
for (int i=0; i<n; i++)
p[i]=new float[n];
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
p[i][j]=0;
}
M::~M()
{
for (int i=0; i<n; i++)
delete [] p[i];
delete [] p;
};
void M::print()
{
if (num>=0)
cout << "Matrica N"<<num+1<<":\n";
else
cout << "Matrica resultata:\n";
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++)
cout << p[i][j] << "\t";
cout << endl;
}
};
M M::multi(float l)
{
M tmp(n);
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
tmp.p[i][j]=l*p[i][j];
return tmp;
}
M M::add(M tmp2)
{
M tmp(n);
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
tmp.p[i][j]=p[i][j]+tmp2.p[i][
return tmp;
}
M M::multim(M tmp2)
{
M tmp(n);
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
for (int r=0; r<n; r++)
tmp.p[i][j]+=p[i][r]*tmp2.p[r]
return tmp;
}
M M::trans()
{
M tmp(n);
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
tmp.p[i][j]=p[j][i];
return tmp;
}
double M::det()
{
double tmp=0;
switch (n)
{
case 1:
tmp=p[0][0];
break;
case 2:
tmp=p[0][0]*p[1][1]-p[0][1]*p[
break;
default:
float **temp= new float *[n], **sum=new float*[n];
for (int i=0; i<n; i++)
temp[i]=new float [n*2];
for (int i=0; i<n; i++)
sum[i]=new float [2];
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
{
temp[i][j]=
temp[i][j+n]
}
for (int i=0; i<n; i++)
for (int j=0; j<2; j++)
sum[i][j]=1;
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++)
{
sum[i][0]*=
sum[i][1]*=
}
tmp+=sum[i][0]-
}
}
return tmp;
}
Додаток В
Інтерфейс
програми
Додаток Д
Результати
роботи системи