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

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

Войти
Регистрация
Восстановить пароль
 
decoy1995
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 5
#1

Матрицы, перегрузка, запись в файл - C++

01.06.2014, 20:14. Просмотров 376. Ответов 6
Метки нет (Все метки)

вообщем есть 2 матрицы их нужно сложить и перемножить и записать результаты в файл , у меня вместо результатов выдает какие-то числа в 16 системе. Помогите, пожалуйста, найти ошибку в коде .

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
#include <iostream>
#include<Windows.h>
#include<iomanip>
#include<locale>
#include<fstream>
using namespace std;
const int n=3;
class matrix
{
int mat[n][n];
public:
matrix(){}
void generate();
void print();
matrix operator+(const matrix&);
matrix operator*(const matrix&);
};
void matrix::generate()
{
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
cout<<"введите ["<<i<<"]"<<"["<<j<<"]"<<"элемент массива:";
cin>>mat[i][j];
}
}
void matrix::print()
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<mat[i][j]<<" ";
cout<<endl;
}
}
matrix matrix::operator+(const matrix&S)
{
ofstream outfile("sdata.txt");
matrix result(*this);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
result.mat[i][j]+=S.mat[i][j];
outfile<<result.mat;
return result;
cout<<endl<<endl;
}
matrix matrix::operator*(const matrix&S)
{
ofstream outfile("fdata.txt");
matrix result(*this);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
result.mat[i][j]*=S.mat[i][j];
outfile<<result.mat;
return result;
}
 
void main()
{
setlocale(LC_ALL,"");
matrix a,b,c,d;
a.generate();
cout<<"matrix a:"<<endl;
a.print();
b.generate();
cout<<"matrix b:"<<endl;
b.print();
cout<<endl<<endl<<endl;
c=a+b;
cout<<"matrix a+b:"<<endl;
c.print();
d=a*b;
cout<<"matrix a*b"<<endl;
d.print();
ofstream outfile("zapis.DAT",ios::binary);
outfile.write(reinterpret_cast<char*>(&c), sizeof(c));
cout<<"файл записан"<<endl;
system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2014, 20:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Матрицы, перегрузка, запись в файл (C++):

запись матрицы в файл - C++
Подскажите пожалуйста в чем ошибка и как можно ее исправить?Надо записать матрицу в файл. Программа записывает вместо матрицы 9-значное...

Запись матрицы в файл - C++
Не могу записать введёную матрицу в файл: #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;malloc.h&gt; #include &lt;stdlib.h&gt; void...

Запись матрицы в файл - C++
Ребят,выручайте а Вообщем надо считать матрицы из файлов,перемножить и записать в 3ий,до меня плохо доходит как записать результат в...

Запись в файл элементов матрицы - C++
Подскажите пожалуйста как записать в файл матрицу и её седловую точку (число 31). И можно ли сделать так,чтобы матрица задавалась...

Запись матрицы в текстовый файл - C++
Нужна помощь! Программа должна создавать текстовый файл в который будет записана матрица. Все работает, но матрица записываеться в...

Считывание и запись матрицы из/в файл - C++
Так,вообще вот исходный файл(F:\****\****\input.txt): 3 3 1 2 3 4 5 6 7 8 9 Первые два числа это размеры матрицы,остальные эта...

6
zss
Модератор
Эксперт С++
6535 / 6097 / 2007
Регистрация: 18.12.2011
Сообщений: 15,860
Завершенные тесты: 1
01.06.2014, 20:24 #2
Цитата Сообщение от decoy1995 Посмотреть сообщение
matrix matrix::operator+(const matrix&S) { ofstream outfile("sdata.txt");
Зачем в операциях сложения и умножения присутствует вывод куда-то?
2. Почему константа n не является членом класса?
0
decoy1995
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 5
01.06.2014, 20:39  [ТС] #3
1.задание преподавателя
2. а что от этого изменится?
0
zss
Модератор
Эксперт С++
6535 / 6097 / 2007
Регистрация: 18.12.2011
Сообщений: 15,860
Завершенные тесты: 1
01.06.2014, 20:48 #4
Цитата Сообщение от decoy1995 Посмотреть сообщение
а что от этого изменится?
Глобальную константу можно использовать где попало,
а это неотъемлемый атрибут ВАШЕГО и только ВАШЕГО класса.
0
decoy1995
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 5
01.06.2014, 20:59  [ТС] #5
ну да, но суть сейчас не в этом , так она тоже работает, суть в записи в файл
0
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,867
Записей в блоге: 1
Завершенные тесты: 5
01.06.2014, 21:09 #6
Цитата Сообщение от decoy1995 Посмотреть сообщение
return result;
cout<<endl<<endl;
Вывод в консоль никогда не выполнится, преподавателю привет.

Добавлено через 6 минут
Цитата Сообщение от decoy1995 Посмотреть сообщение
matrix matrix::operator+(const matrix&S)
{
ofstream outfile("sdata.txt");
matrix result(*this);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
result.mat[i][j]+=S.mat[i][j];
outfile<<result.mat;
return result;
cout<<endl<<endl;
}
Очень интересно получается))) В операторах сложения и умножения выводить в файл. А в отдельном методе это сделать нельзя?
0
decoy1995
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 5
02.06.2014, 02:47  [ТС] #7
не знаю, я только познаю азы программирования

Добавлено через 5 часов 32 минуты
попробовал написать немного по-другому, но тут выводит только результат сложения .
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
#include<iostream>
#include<conio.h>
#include<locale>
 
#include <fstream>
#include <iomanip>
using namespace std;
int n;
class matrix
{
int **a;
public:
matrix::matrix(){a=new int *[n];
for(int i=0;i<n;i++)
{a[i]=new int[n];}}
//friend int & operator+(matrix& r,matrix &k) ;
friend ostream & operator<<(ostream & is,matrix & r);
friend istream & operator>>(istream & is,matrix & r);
 
matrix operator +(matrix r)
{matrix z;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
z.a[i][j]=a[i][j]+r.a[i][j];
}
}
return z;
}
 
matrix operator *(matrix r){
matrix z;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
z.a[i][j]=0;
for(int y=0;y<n;y++){
z.a[i][j]+=a[i][y]*r.a[y][j];
}
}
}
return z;
}
} ;
 
ostream & operator <<(ostream & is,matrix & r)
{
    
    setlocale (LC_ALL, "RUS");
 
 
 
ofstream f;
 
f.open("D:\\matrix.txt", ios::out);
 
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cout<<r.a[i][j]<<" ";
f<<r.a[i][j]<<"\t";
}
cout<<endl;
f<<"\n";
}
return is;
 
}
 
istream & operator>>(istream & is,matrix & r)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cin>>r.a[i][j];
}
}
return is;
}
 
void main()
{ setlocale(LC_ALL,"");
cout<<"Введите порядок матриц:"<<endl;
cin>>n;
system("cls");
matrix l;
cout<<"Ввод первой матрицы:"<<endl;
cin>>l;
system("cls");
cout<<"Ввод второй матрицы"<<endl;
matrix k;
cin>>k;
system("cls");
cout<<"Первая матрица:"<<endl<<l<<endl;
cout<<"Вторая матрица:"<<endl<<k<<endl;
cout<<"*"<<endl<<l*k<<endl;
cout<<"+"<<endl<<l+k;
system("pause");
}
0
02.06.2014, 02:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2014, 02:47
Привет! Вот еще темы с ответами:

Запись матрицы в бинарный файл по строкам - C++
Всем доброго времени суток! Надо записать размерность и матрицу в бинарный файл по строкам, а потом считать ее. Написал код, но получается...

Чтение и запись матрицы в файл, с учётом размерности - C++
Нужно выполнить задание при условии что исходные данные хранятся в текстовом файле и первые числа соответствуют указывают размер массива....

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

Перегрузка оператора запись в поток - C++
Здравствуйте! Подскажите, пожалуйста, возможно ли так реализовать: #include &lt;fstream&gt; class ClassA { public: bool...


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

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

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