Форум программистов, компьютерный форум CyberForum.ru

Как задать размерность матрицы с клавы?? - C++

Восстановить пароль Регистрация
 
zigi91
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 21
01.06.2010, 08:50     Как задать размерность матрицы с клавы?? #1
Почему-то он у меня ругается на метод вывода Print()
Может быть кто-нибудь подскажет как можно сделать по другому ввод размерности
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
 
 
class Matrix{
 private: int n,m;
            int **x;
 public:
 Matrix();
 Matrix(int n1,int m1);
 Matrix&Create(int n1,int m1);
 void Print(char*string);
 void Put(int i,int j,int x1);  //metod ustanov novoe znachenie
 int Get(int i,int j);        //metod vozvr znachnie
  Matrix& operator*(Matrix &a);
  Matrix& operator=(Matrix &a);
  ~Matrix();
  };
 
 //inic znach polei klassa nulevumi
 
 Matrix::Matrix(){
 n=0;
 m=0;
 x=NULL;
 }
 
 //inic kol-vo strok i stobcov matricy,vydyl pamyati
 
 
 Matrix::Matrix(int n1,int m1){
 n=n1;
 m=m1;
 x=new int*[n];
 for(int i=0;i<n;i++)
   x[i]=new int[m];
  for(i=0;i<n;i++)
   for(int j=0;j<m;j++)
    x[i][j]=random(7);
  }
  void Matrix::Print(char* string){
  if(x==NULL)
  cout<<endl<<"Њ*ваЁж* *Ґ §*¤***."<<endl;
  else
  {
  cout<<string<<endl;
  for(int i=0;i<n;i++)
  { for(int j=0;j<m;j++)
   cout<<x[i][j]<<" ";
   cout<< endl;
 
   }
   }
   }
 
  //izmenenie znachenie elementa v pozicii i,j  na x1
 
  inline void Matrix::Put(int i,int j,int x1){
  x[i][j]=x1;
  }
 
  //vozvr znachenia
 
  inline int Matrix::Get(int i,int j){
  return x[i][j];
   }
 
  Matrix& Matrix:: operator*(Matrix &a){
 
  Matrix *temp;
  temp=new Matrix();
  if(m!=a.n) {
  cout<<endl<<"ЋЇҐа*жЁп *Ґ ¬®¦Ґв Ўлвм ўлЇ®«*Ґ**."<<endl;
  return *temp;}
  temp ->Create(n,a.m);// vyd pamyaty pod matricu-rezultat umnogenia
  //umnog matric
  for(int i=0;i<n;i++)
   for(int j=0;j<a.m;j++)
   { int s=0;
     for (int k=0;k<m;k++)
      s+=x[i][k]*a.x[k][j];
    temp->x[i][j]=s;
    }
    return *temp;
    }
 
 
 
   Matrix& Matrix::operator=(Matrix&a){
   n=a.n;
   m=a.m;
   if(x!=NULL){
    for(int i=0;i<n;i++)
     delete[] x[i];
    delete[]x;}
    x=new int*[n];
     for(int i=0;i<n;i++)
    x[i]=new int[m];
     for(i=0;i<n;i++)
      for(int j=0;j<m;j++)
       x[i][j]=a.x[i][j];
       return *this;
       }
 
       //vydelen pamyat pod matr obyekta;zadautsya novye znachenia polei
 
 
     Matrix& Matrix::Create(int n1,int m1){
 
     n=n1;
     m=m1;
     if(x!=NULL){
      for(int i=0;i<n;i++)
       delete[]x[i];
      delete[]x;}
      x=new int*[n];
      for(int i=0;i<n;i++)
       x[i]=new int[m];
       return *this;
       }
 
       //destruct klassa
       Matrix::~Matrix(){
       for(int i=0;i<n;i++)
        delete[]x[i];
       delete[]x;
       }
 
       void main(){
       clrscr();
       randomize();
       float **A;
       float **B;
       int razm1,razm2;
       int razm3,razm4;
       //opisanie i sozdanie objectov A i B
 
 
       cout<<"‚Введите размерность матрицы 1: "<<razm1<<razm2<<endl;
       cin>>razm1,razm2;
       cout<<"Введите размерность матрицы 2: "<<razm3<<razm4<<endl;
       cin>>razm3,razm4;
       A=new float*[razm1];
       for(int i=0;i<razm1;i++)
        A[i]=new float[razm2];
        for(i=0;i<razm1;i++)
         for(int j=0;j<razm2;j++)
        cout<<"ЏҐаў*п ¬*ваЁж*"<<endl;
 
        {
        A.Print();}
       B=new float*[razm3];
       for(int l=0;l<razm3;l++)
        B[l]=new float[razm4];
        for( l=0;l<razm2;l++)
         for(int m=0;m<razm4;m++)
       
     { B.Print();}
      Matrix C=A*B;
      C.Print("A*B=");
      getch();
      }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2010, 08:50     Как задать размерность матрицы с клавы??
Посмотрите здесь:

как задать размерность одномерного массива C++
C++ Как изменить размерность матрицы
Размерность матрицы C++
Задать размерность массива рандомно, и выполнить над ним действие! C++
C++ Ввод с клавы размера целочисленной матрицы, а затем самой матрицы. Найти наибольший элемент. Разрешается использовать только один оператор цикла
C++ Как из файла прочитать размерность матрицы и её содержимое?
Задать размерность матрицы с клавиатуры C++
Правильно задать размерность массива C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 17:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru