Автор работы: Пользователь скрыл имя, 11 Июня 2015 в 16:44, курсовая работа
Современный мир, то есть мир «информационных войн» и научно-технического прогресса впитал в себя манию к компьютерному буму и всеобщей автоматизации. При этом компьютеры «стремятся попасть» во все сферы деятельности человека, начиная от развлечений и заканчивая сложнейшими научными расчетами и управлением космических кораблей.
Место компьютерных технологий среди ведущих факторов научно-технического прогресса определяется объективными потребностями человеческого общества, достигшего определенного уровня развития. Современный путь прогрессивного развития - представляет собой, прежде всего, - путь получения и освоения информации.
Введение ……...…………………………………………….……... 3
Постановка задачи, описание программы………………….…… 4
Объектно-ориентированный анализ и проектирование..….…… 6
Программная реализация на С++………………………………....7
4.1 Краткая характеристика программной среды………………..7
4.2 Структура программы…………………………………………8
4.3 Инструкция пользователю…………………………………….8
Заключение………………………………………………………...11
Список используемой литературы ……………………………...12
Приложение 1 (листинг программы) ……………………….…..13
{for(j=0; j<10; j++)
{a[i][j]=0;}} };
void vv(void){
int i,j,d;
cout<<"Skol'ko stolbcov?(do 10)"<<endl;
cin>>stlb;
cout<<"Skol'ko strok?(do 10)"<<endl;
cin>>str;
for(i=0;i<str;i++)
for(j=0;j<stlb;j++)
{printf("vvedite element matrici [%d][%d] ",i+1,j+1); scanf("%d",&a[i][j]);}
clrscr();
cout<<"vasha matrica:\n";
for(i=0;i<str;i++){
for(j=0;j<stlb;j++)
printf("%7d",a[i][j]);
puts("\n");
}
};
void write_to (char mess[50]){
int z;
cout<<"resul'tat "<<endl;
printf(mess);
for(int i=0;i<str;i++){
for(int j=0;j<stlb;j++)
printf("%7d",a[i][j]);
puts("\n");}
cout<<"zapisat' v fail?\n 1- yes \n 2- no"<<endl;
while(z!=1 || z!=2){
cin>>z;
if (z==1){
write_to_file(mess);
cout<<"\n\nrezul'tat zapisan v fail OTVET.TXT\n";
getch();
break;
}
else{ getch();
break;}
}
}
void Tomat<class Tchto> :: write_to_file(char mess[50]){
FILE *f;
f=fopen("OTVET.txt","w");
fprintf(f,mess);
for (int i=0; i<str; i++){
for(int j=0; j<stlb; j++)
fprintf(f,"%f",a[i][j]);
fprintf(f,"\n");
}
fclose(f);
};
Tomat<class Tchto> trans (){
int i,j;
Tomat<class Tchto> res;
for (i=0; i<str; i++)
for (j=0; j<stlb; j++)
res.a[i][j]=a[j][i];
return res;
}
void rav (Tomat<class Tchto> arg1, Tomat<class Tchto> arg2){
if (arg1.str!=arg2.str || arg1.stlb!=arg2.stlb)
{cout<<"matrici raznoj razmernosti! ix nel'zja sravnit'"<<endl;}
else{
for (int i=0; i<arg1.str; i++)
for (int j=0; j<arg1.stlb; j++)
if (arg1.a[i][j]==arg2.a[i][j]) {
cout<<"Eti matrici ravni!!"<<endl;
}
else { cout<<"matrici neravnie.."<<endl;}
};
}
Tomat<Tchto> mult (int mn){
int i,j;
Tomat<class Tchto> res;
for (i=0; i<str; i++)
for (j=0; j<stlb; j++)
res.a[i][j]=a[i][j]*mn;
res.str=str;
res.stlb=stlb;
return res;
}
Tomat<Tchto> step (int st){
Tomat<class Tchto> res;
for(int i=0;i<str;i++)
for(int j=0;j<stlb;j++)
res.a[i][j]=pow(a[i][j],st);
res.str=str;
res.stlb=stlb;
return res;
}
Tomat<class Tchto> operator + (Tomat<class Tchto> arg2){
int i,j;
Tomat<class Tchto> res;
if (str==arg2.str && stlb==arg2.stlb){
for (i=0; i<str; i++)
for (j=0; j<stlb; j++) {
res.a[i][j]=a[i][j] + arg2.a[i][j];
};
}
else {cout<<"raznoe koli4estvo strok v matricax, ix nel'zja sladivat'"<<endl;}
return res;
};
Tomat<class Tchto> operator - (Tomat<class Tchto> arg2){
int i,j;
Tomat<class Tchto> res;
if (str==arg2.str && stlb==arg2.stlb){
for (i=0; i<str; i++)
for (j=0; j<stlb; j++) {
res.a[i][j]=a[i][j] - arg2.a[i][j];
};
}
else {cout<<"raznoe koli4estvo strok v matricax, ix nel'zja vi4itat'"<<endl;}
return res;
}
Tomat<class Tchto> operator * (Tomat<class Tchto> arg2){
Tomat<class Tchto> res;
if (stlb==arg2.str){
for(int i=0;i<str;i++)
for(int j=0;j<arg2.stlb;j++)
{
res.a[i][j]=0;
for (int k=0;k<stlb;k++) res.a[i][j]+=a[i][k]*arg2.a[k]
}
}
else {cout<<"koli4estvo strok pervoj matrici ne ravno oli4estvu stolbcov vtoroj. Ix nel'zja peremnodgit'"<<endl;}
return res;
};
};
void main(void){
int d,s,h;
clrscr();
cout<<"4isla v vashej matrice:\n 1 - celie;\n 2 - veshestvennie;"<<endl;
cin>>d;
if (d==1) {*/Tomat<int> mat,mat1,c,a;/*}
else {if (d==2) {Tomat<double> mat,mat1,c,a;}
else cout<<"4to-to ne to..."<<endl;
};
while (1==1){
cout<<"<----VIBERITE DEISTVIE---->"<<endl;
cout<<" 1 - slodgit' matrici;"<<endl<<" 2 - vi4est' matrici;"<<endl;
cout<<" 3 - peremnoghit' matrici;"<<endl<<" 4 - sravnit' matrici;"<<endl;
cout<<" 5 - umnoghit' matricu na 4islo;"<<endl<<" 6 - vozvesti matricu v stepen'"<<endl;
cout<<" 7 - transponirovat';"<<endl<<" 8 - Exit;"<<endl;
cin>>s;
switch(s)
{
case 1: {mat.vv(); mat1.vv(); c=mat+mat1; mat.write_to("summa matric : "); break; };
case 2: {mat.vv(); mat1.vv(); c=mat-mat1; mat.write_to("raznost' matric : ");break; };
case 3: {mat.vv(); mat1.vv(); c=mat*mat1; mat.write_to("proizvedenie matric : ");break; };
case 4: {mat.vv(); mat1.vv(); mat1.rav(mat1, mat); break; };
case 5: {mat.vv(); mat1=mat.mult(3); mat1.write_to("umnojenija");
// cout<<"Vvedite stepen' : ";
// cin>>st;
break; };
case 6: {mat.vv();
/* cout<<"vvedite stepen'"<<endl;
cin>>h;*/
mat1=mat.step(3);
/*char *s2="isxodnaja matrica v stepeni ";
char *s1;
itoa(h,s1,10);
strcat(s2,s1);*/
mat1.write_to("matrica v stepeni 3");
break; };
case 7: {mat.vv(); mat1=mat.trans(); mat1.write_to("
case 8: {exit(1);};
}
getch(); }
}