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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
#1

Помoгите преобразовать программу! - C++

19.02.2012, 10:43. Просмотров 368. Ответов 4
Метки нет (Все метки)

Добрый день! Помогите пожалуйста преобразовать программу. В общем нужна создать класс Матрица, а затем делать вычисления. Еще бы желательно использовать перегрузки, но как я не старался, ничего у меня не получилось.
вот мой код:
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
#include <iostream>
using namespace std;
int main ()
{
int A[10][10],i,j,p,k;
//Ввод матрицы с клавиатуры
cout<<"Введите размерность матриц: "<<endl;
cin>>p>>k;
if (p==k&&p>0)
{
cout<<"===================="<<endl;
cout<<"Матрица симметрична!"<<endl;
cout<<"===================="<<endl;
}
else 
{
cout<<"======================="<<endl;
cout<<"Матрица не симметрична!"<<endl;
cout<<"======================="<<endl;
cout<<"Невозможны операции над матрицами разных размеров!";
system ("pause");
return (-1);
}
cout<<"Заполните первую матрицу: "<<endl;
 for(i=0;i<p;i++)
 {
  for (j=0;j<k;j++)
  {
  cin>>A[i][j];    
  }
 cout<<endl;                
 }
int y,B[10][10],C[10][10];
cout<<"Заполните вторую матрицу: "<<endl;
 for(i=0;i<p;i++)
 {
  for (j=0;j<k;j++)
  {
  cin>>B[i][j];    
  }
 cout<<endl;                
 }
//Вывод первой матрицы на экран
cout<<"Первая матрица: "<<endl;
 for(i=0;i<p;i++)
 {
  for (j=0;j<k;j++)
  {
  cout<<A[i][j];
  cout<<" ";    
  }
 cout<<endl;                
 }
cout<<"Вторая матрица: "<<endl;
//Вывод второй матрицы на экран 
for(i=0;i<p;i++)
 {
  for (j=0;j<k;j++)
  {
  cout<<B[i][j];
  cout<<" ";    
  }
 cout<<endl;                
 }
cout<<"Сумма матриц: "<<endl;
//сложение двух матриц
for (i=0;i<p;i++)
 {
 for (j=0;j<p;j++)
  {
  C[i][j]=A[i][j]+B[i][j];
  }   
 }
 
 for(i=0;i<p;i++)
 {
  for (j=0;j<k;j++)
  {
   cout<<C[i][j];
   cout<<" ";    
  }
 cout<<endl;                
 }
cout<<"Разность матриц: "<<endl;
//вычитание двух матриц
for (i=0;i<p;i++)
 {
 for (j=0;j<p;j++)
  {
  C[i][j]=A[i][j]-B[i][j];
  }   
 }
 
 for(i=0;i<p;i++)
 {
  for (j=0;j<k;j++)
  {
   cout<<C[i][j];
   cout<<" ";    
  }
 cout<<endl;
 }                
//умножение двух матриц
cout<<"Умножение матриц: "<<endl;
for (i=0;i<p;i++)
 {
 for (j=0;j<p;j++)
  {
   C[i][j]=0;
   for (y=0;y<k;y++)
   {
    C[i][j]+=(A[i][y]*B[y][j]);
   }
  }   
 }
 
 for(i=0;i<p;i++)
 {
  for (j=0;j<k;j++)
  {
    cout<<C[i][j];
    cout<<" ";   
  }
 cout<<endl;
 }
//умножение матрицы на число
cout<<"===Умножение матрицы на число==="<<endl;
cout<<"Введите число, на которое нужно умножить матрицу: "<<endl;
int N;
cin>>N;
cout<<"Умножение матрицы на число: "<<endl;
for (i=0;i<p;i++)
 {
 for (j=0;j<p;j++)
  {
    C[i][j]=(N*A[i][j]);
  }   
 }
 
 for(i=0;i<p;i++)
 {
  for (j=0;j<k;j++)
  {
    cout<<C[i][j];
    cout<<" ";   
  }
 cout<<endl;
 }
system("pause");
return(0);  
}
Добавлено через 1 минуту
Если возможно, то пожалуйста пишите еще свои комментарии
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 10:43     Помoгите преобразовать программу!
Посмотрите здесь:

C++ Класс круговая очередь Помoгите плз
Преобразовать C++
Ошибку помoгите найти C++
C++ Помoгите доделать задaчку
Преобразовать программу. Ассоциативные котейнеры. C++
C++ Преобразовать программу, нужны главные диагонали
C++ Помoгите найти ошибку в коде!
C++ преобразовать программу через do и while
Преобразовать матрицу C++
C++ Преобразовать программу, которая выводит количество столбцов матрицы не содержащих 0
Возможно ли преобразовать программу на Борланд С++ в какую-либо графическую среду разработки? C++
Нужно преобразовать программу C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
19.02.2012, 11:29     Помoгите преобразовать программу! #2
пользуйтесь поиском. в разделе полно таких тем. и во многих из них есть нужный вам класс.
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
19.02.2012, 11:40  [ТС]     Помoгите преобразовать программу! #3
Цитата Сообщение от retmas Посмотреть сообщение
пользуйтесь поиском. в разделе полно таких тем. и во многих из них есть нужный вам класс.
Вы правы. Но я пару раз пытался преобразовать свою программу с использованием классов, и у меня ничего не получалось.
Вот - -посмотрите, пожалуйста. Я тут прогуглил программу ИМЕННО такого содержания которое мне нужно. Но проблема в том, что я не понимаю что и когда там вводится и выводится. Помогите кому не сложно!
 Комментарий модератора 
Ссылки на форумы запрещены!
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
19.02.2012, 11:51     Помoгите преобразовать программу! #4
код который вы нашли + пара комментариев
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
#include "stdafx.h"
#include "iostream"
#include "conio.h"
 
class matrix
{int m,n,i;
float **a;
    void input();   //прототипы собственно методов класса. в этой строке ввод
    void output(); //вывод
    void verification(); //странно, но при поверхностном просмотре кода данный метод не обнаружен
    matrix operator*(float k); //перегрузка оператора "*"
    matrix operator+(float k); // перегрузка "+"
    matrix operator-(float k); //перегрузка "-"
    matrix (int,int);
}
 
matrix::matrix(int line,int column) //конструктор класса в параметры передаются размерности матрицы
{int m=line; n=column;
a=(float**)malloc(m*sizeof(float*)); 
for(i=0; i<m; i++)
a[i]=(float*)malloc(n*sizeof(float));
}
 
void matrix::input() //метод ввода. элементарный вложенный цикл
{int i,j;
 
for (i=0;i<m;i++)
for (j=0;j<n;j++)
scanf ("%f", &a[i][j]);
}
 
void matrix::output() //аналогичен предыдущему методу, только выводим
{int i,j;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
printf("%5.2f",a[i][j]);
printf("\n");
}
 
matrix matrix::operator+(float k) //благодаря этому методу символ "+" будет инициировать собственно следующий код
{   int i,j;
    matrix temp(m,n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{temp.a[i][j]=a[i][j]+k.a[i][j] ;}
return temp;
}
 
matrix matrix::operator-(float k)
{matrix temp;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{temp.a[i][j]=a[i][j]-k.a[i][j]};
}
 
matrix matrix::operator*(float k)
{matrix temp;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{temp.a[i][j]=a[i][j]*k};
}
 
void main()
{
    matrix m,n,b;
    m.input(); 
    n.input();
    b=m+n;
    b.output();
}
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
19.02.2012, 12:59  [ТС]     Помoгите преобразовать программу! #5
Я имел ввиду что в это программе нет диалога с пользователем. Например: в ведите длину матрицы. потом ширину и т.д.

Добавлено через 6 минут
Цитата Сообщение от Черный ворон Посмотреть сообщение
код который вы нашли
Спасибо КЭП
Yandex
Объявления
19.02.2012, 12:59     Помoгите преобразовать программу!
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru