Не могу закончить прогу, нужно Создать 2 матрицы, после чего их сложить, вычесть, умножить, транспонировать. | Код | // zadacha.cpp : Defines the entry point for the console application. //
#include "stdafx.h" #include <iostream> #include <ctime> #include <fstream> #include <iomanip> #include <cmath> #include <stdio.h> using namespace std; void main(void);
int _tmain(int argc, _TCHAR* argv[]) { const int n=8; char const* menu [ n ] ={ "1. Zadatj razmer obeih matric", "2. Zadatj diapazon i minimalnoe chislo zapolnenija matric", "3. Otobrazhenie sluchajnih matric", "4. Vibor operacii slozhenija matric", "5. Vibor operacii vichetanija matric", "6. Vibor operacii umnozhenija matric", "7. Vibor operacii transponirovanija matric", "0. Exit" } ; unsigned int r; int *pmasC,*pmasA,*pmasB, diapazonA, minnumA, diapazonB, minnumB, def=0; int v, p, i, j, nrow, ncol,m; do { cout << "Menu\n" ; for (i=0;i<n;i++) cout<<menu[i]<<endl ; printf("\n"); cout << "\nVash vibor - > "; cin >> v ; cin.get(); printf("\n"); switch ( v ){
case 1 : printf(menu[0]); printf("\n"); int nrow,ncol,r,c; printf("\n"); printf("Number strok?\n"); cin>>nrow; cin.get(); printf("Number kolonok?\n"); cin>>ncol; cin.get(); printf("\n"); if (def == 0) def=1;
break ;
case 2 : if (def != 0) { cout << "\n" << menu [ 1 ] << "\n\n" ; r = time(NULL) % 32767; srand(r); printf("\t Diapazon A matrici = "); cin >> diapazonA; printf("\n"); printf( "\t Minimaljnoe chislo A matrici = "); cin >> minnumA; cin.get(); printf("\n"); printf("\n"); printf("\t Diapazon B matrici = "); cin >> diapazonB; printf("\n"); printf( "\t Minimaljnoe chislo B matrici = "); cin >> minnumB; printf("\n"); cin.get(); def = 2; } else { printf("\tPrezhde zadajte razmer matrici\n"); cin.get(); } break ;
case 3 :
if (def == 2) { printf(menu[2]);
printf("\n"); printf("\n"); printf("Matrix A"); printf("\n");
int **pmasA; pmasA=new int *[nrow];
for (r=0;r<nrow;r++) pmasA[r]=new int [ncol]; for(r=0;r<nrow;r++) for(c=0;c<ncol;c++) *(*(pmasA+r)+c)=int(rand()/32767.*diapazonA)+minnumA;
for(r=0;r<nrow;r++) { for(c=0;c<ncol;c++) cout<<*(*(pmasA+r)+c)<<'\t'; printf("\n"); }
printf("\n"); printf("Matrix B"); printf("\n"); printf("\n");
int **pmasB; pmasB=new int *[nrow];
for (r=0;r<nrow;r++) pmasB[r]=new int [ncol]; for(r=0;r<nrow;r++) for(c=0;c<ncol;c++) *(*(pmasB+r)+c)=int(rand()/32767.*diapazonB)+minnumB; for(r=0;r<nrow;r++) { for(c=0;c<ncol;c++) cout<<*(*(pmasB+r)+c)<<'\t'; cout<<'\n'; } cin.get();
} else { cout<<"\t Vi dolzni vvesti diapazon i minimaljnoe chislo do etogo \n"; cin.get(); } break ;
case 4 : if (def == 2) { int **pmasC; pmasC=new int*[nrow]; for (r=0;r<nrow;r++) pmasC[r]=new int [ncol]; for(r=0;r<nrow;r++) for(c=0;c<ncol;c++) *(*(pmasC+r)+c)=*(*(pmasA+r)+c)+*(*(pmasB+r)+c); for(r=0;r<nrow;r++) { for(c=0;c<ncol;c++) cout<<*(*(pmasC+r)+c)<<'\t'; cout<<'\n'; }
} else { cout<<"\t Vi dolzni vvesti diapazon i minimaljnoe chislo do etogo \n"; cin.get(); }
break;
case 5 : break;
case 6 : break; case 0 :
if (pmasB != NULL) { delete [] pmasA; delete [] pmasB; delete [] pmasC; } break ;
default : cout << "\nMenu sostoit iz 8-mi punktov\n\n"; cin.get(); } } while ( v != 0 ) ;
return 0; }
|
Это сообщение отредактировал(а) dmitreg - 22.9.2009, 18:05
|