Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

19.02.2012, 10:43. Просмотров 382. Ответов 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 минуту
Если возможно, то пожалуйста пишите еще свои комментарии
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 10:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помoгите преобразовать программу! (C++):

Помoгите доделать задaчку - C++
Вот условия: ********/index.asp?main=task&amp;id_task=543 Или: В N корзинах находятся золотые монеты. Корзины пронумерованы числами...

Ошибку помoгите найти - C++
sorry

Помoгите найти ошибку в коде! - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; using namespace std; enum firms { Sonic, ...

Класс круговая очередь Помoгите плз - C++
У меня задание создать круговую очередь( я тока начал изучать классы так что многово не понимаю ) помогите исправить ошибки плз ...

Нужно преобразовать программу - C++
Нужно эту программу написать на с++ Но у меня почему-то не выходит. Что у меня не правильно? Подскажите пожалуйста. Program If_13; ...

преобразовать программу через do и while - C++
не знаю как переделать программу через do и while, помогите, тест программы: #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include...

4
retmas
Жарю без масла
864 / 746 / 168
Регистрация: 13.01.2012
Сообщений: 1,702
19.02.2012, 11:29 #2
пользуйтесь поиском. в разделе полно таких тем. и во многих из них есть нужный вам класс.
1
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
19.02.2012, 11:40  [ТС] #3
Цитата Сообщение от retmas Посмотреть сообщение
пользуйтесь поиском. в разделе полно таких тем. и во многих из них есть нужный вам класс.
Вы правы. Но я пару раз пытался преобразовать свою программу с использованием классов, и у меня ничего не получалось.
Вот - -посмотрите, пожалуйста. Я тут прогуглил программу ИМЕННО такого содержания которое мне нужно. Но проблема в том, что я не понимаю что и когда там вводится и выводится. Помогите кому не сложно!
 Комментарий модератора 
Ссылки на форумы запрещены!
0
Черный ворон
130 / 124 / 6
Регистрация: 31.01.2012
Сообщений: 435
19.02.2012, 11:51 #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();
}
0
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
19.02.2012, 12:59  [ТС] #5
Я имел ввиду что в это программе нет диалога с пользователем. Например: в ведите длину матрицы. потом ширину и т.д.

Добавлено через 6 минут
Цитата Сообщение от Черный ворон Посмотреть сообщение
код который вы нашли
Спасибо КЭП
0
19.02.2012, 12:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2012, 12:59
Привет! Вот еще темы с ответами:

преобразовать программу из string в char - C++
Помогите преобразовать программу из string в char #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;fstream&gt; ...

Преобразовать программу. Ассоциативные котейнеры. - C++
Ребята, есть программа, но она пока не выполняет нужные действия (я не знаю как их реализовать, небольшие проблемы с темой &quot;Ассоциативные...

Преобразовать программу, нужны главные диагонали - C++
Мне надо преобразовать программу так, что бы вместо вделения произвольных столбцов, программа выделяла главные дагонали. Как сделать не...

Преобразовать программу, которая выводит количество столбцов матрицы не содержащих 0 - C++
Дана программа которая выводит количество столбцов матрицы не содержащих 0. Проверка в программе проходит по каждому элементу каждого...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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