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

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

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

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

19.02.2012, 10:43. Просмотров 375. Ответов 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++
Напишите программу, отображающую окружность, плавно перетекающую в ромб, и наоборот; цвет периодически изменяется. Дали сделать программу...

Помгите с задачками. - C++
Всем привет. Вот задали задачи, ну я чтот не пойму с чего начать 1. Клоун предложил каждому из публики задумать число. Потом он сказал:...

Парни помгите найти ошибку - C++
В файле даны коофициенты попарно различных прямых, найти из них ту(прямую), которая пересекается с другими больше всего раз. я написал...

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2012, 12:59     Помoгите преобразовать программу!
Еще ссылки по теме:

Помгите найти - сумму отрицательных элементов массива - C++
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;cmath&gt; using namespace std; void float1(double...

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

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

помгите разобраться в чем ошибка? (найти все натуральные числа в диапазоне между m и n (m<n)) - C++
Вот мое задание:найти все натуральные числа в диапазоне между m и n (m&lt;n), в записи которых нет двух одинаковых цифр. Подсчитать...

Возможно ли преобразовать программу на Борланд С++ в какую-либо графическую среду разработки? - C++
Добрый вечер! Подскажите пожалуйста - возможно ли преобразовать программу, которая была написана на Борланд С++ в какую либо ГРАФИЧЕСКУЮ...

Преобразовать - C++
Опытные программисты) не знал куда написать, решил сюда. Вообщем есть код на с++ read(n); c=0; m=0; for i=1..n{ read(x); ...


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

Или воспользуйтесь поиском по форуму:
Вася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