Операции с матрицами

Автор работы: Пользователь скрыл имя, 11 Июня 2015 в 16:44, курсовая работа

Описание работы

Современный мир, то есть мир «информационных войн» и научно-технического прогресса впитал в себя манию к компьютерному буму и всеобщей автоматизации. При этом компьютеры «стремятся попасть» во все сферы деятельности человека, начиная от развлечений и заканчивая сложнейшими научными расчетами и управлением космических кораблей.
Место компьютерных технологий среди ведущих факторов научно-технического прогресса определяется объективными потребностями человеческого общества, достигшего определенного уровня развития. Современный путь прогрессивного развития - представляет собой, прежде всего, - путь получения и освоения информации.

Содержание работы

Введение ……...…………………………………………….……... 3
Постановка задачи, описание программы………………….…… 4
Объектно-ориентированный анализ и проектирование..….…… 6
Программная реализация на С++………………………………....7
4.1 Краткая характеристика программной среды………………..7
4.2 Структура программы…………………………………………8
4.3 Инструкция пользователю…………………………………….8
Заключение………………………………………………………...11
Список используемой литературы ……………………………...12
Приложение 1 (листинг программы) ……………………….…..13

Файлы: 1 файл

курс работа.doc

— 126.00 Кб (Скачать файл)

     {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][j];

}

    }

    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("transponirovannaja matrica : ");break; };

      case 8: {exit(1);};

   }

   getch();   }

}

 


 



Информация о работе Операции с матрицами