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

Классы для работами с матрицами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поменять местами два средних столбца, если количество столбцов четное http://www.cyberforum.ru/cpp-beginners/thread395907.html
написать программу которая поменяет местами два средних столбца ,если количество столбцов четное, и первый со средним столбцом ,если если кол-во столбцов нечетное.
C++ Метод простой итерации Здраствуйте! Нужно реализовать в C++ метод простой итерации. #include <iostream> #include <iomanip> #include <conio.h> #include <math.h> using namespace std; double f1(double x)//новая функция фи { http://www.cyberforum.ru/cpp-beginners/thread395905.html
двухмерный массив C++
помогите найти ошибку не знаю что то она не правильно вроде делает программа по заданию Задание 2) Характеристикой столбца назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик. #include <iostream> #include <string> #include <cstdlib> #include <iomanip>; using namespace std;
C++ дан массив размером n*n , элементы которого целые числа.
написать программу которая,для каждого столбца подсчитает сумму чётных положительных элементов и записать данные в новый массив. помогите пожалуйста
C++ Поменять местами два средних столбца, если количество столбцов нечетное http://www.cyberforum.ru/cpp-beginners/thread395887.html
написать программу которая поменяет местами два средних столбца ,если количество столбцов нечетное, и первый со средним столбцом ,если если кол-во столбцов нечетное.
C++ Найти номер последнего максимального элемента последовательности дана последовательность из n действительных чисел. найти номер последнего максимального элемента подробнее

Показать сообщение отдельно
user_cat
6 / 6 / 0
Регистрация: 10.02.2011
Сообщений: 42

Классы для работами с матрицами - C++

30.11.2011, 20:41. Просмотров 317. Ответов 3
Метки (Все метки)

Есть программка на С++ (состоит из классов) для работы с матрицами
Пытаюсь скомпилировать, выдает ошибку:

C:\Program Files\Microsoft Visual Studio 10.0\VC>cl d:\1.cpp /EHsc
Оптимизирующий 32-разрядный компилятор Microsoft (R) C/C++ версии 16.00.30319.01 для 80x86
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

1.cpp
d:\1.cpp(103) : fatal error C1075: конец файла обнаружен ранее, чем левая фигурная скобка "{" в "d:\1.cpp(11)"

В чем проблема?

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
#include "stdafx.h"
#include <iostream>
using namespace std;
class Matrix{
private:
int n,m;
//размеры матрицы
double **a, **c;
// указатели
public:
Matrix::Matrix(int n, int m){
int i,j;
Matrix::n=n;
Matrix::m=m;
a=new double*[n]; // выделение памяти под указатели
for(i=0;i<n;i++)
a[i]=new double[m]; // выделение памяти под элемент
c=new double*[n];
for(int i=0; i<n; i++)
c[i]=new double[m];
// Заполнение массива элементами с клавиатуры
{puts("\nВведите элементы матрицы:");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];}
cout<<endl;}
//};
Matrix::~Matrix()
{for(int i=0;i<n;i++)
delete []a[i];// освобождение памяти
delete []a;};
//Операция присваивания
Matrix &Matrix::operator =(const Matrix &A)
{for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
a[i][j]=A.c[i][j];
return *this;}
//Сложение матриц
Matrix & Matrix::operator +(Matrix &A)
{for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
c[i][j]=a[i][j]+A.a[i][j];
return *this;}
//Вычитание матриц
Matrix & Matrix::operator -(Matrix &A)
{for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
c[i][j]=a[i][j]-A.a[i][j];
return *this;}
// Умножение матриц
Matrix & Matrix::operator *(Matrix &A)
{
double s=0;
for(int i=0;i<n;i++)
{
int z=0;
while(z<A.m)
{
c[i][z]=0;
for(int j=0;j<m;j++)
{
s=GetI(i,j)*A.GetI(j,z);
c[i][z]+=s;
}
z++;
}
}
return *this;
}
//Сравнение матриц
Matrix & Matrix::operator ==(Matrix &A)
{int f=0;
for(int i=0; i<n; i++)
{for(int j=0; j<m; j++)
if(a[i][j]!=A.a[i][j]){ cout<<"\nМатрицы не равны\n";f=1; break;}
if(f==1) break;}
if(f==0) cout<<"\nМатрицы равны\n";
return *this;}
//Транспонирование матрицы
void Matrix::Transp()
{c=new double*[m];
for(int i=0;i<m;i++)
c[i]=new double[n]; // захват памяти под элемент
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
c[j][i]=a[i][j];
for(int i=0;i<n;i++)
delete []a[i];// освобождение памяти
delete []a;
a=new double*[m];
for(int i=0;i<m;i++)
a[i]=new double[n]; // захват памяти под элемент
for(int i=0; i<m; i++)
for(int j=0; j<n; j++)
a[i][j]=c[i][j];
Matrix::n=m;
Matrix::m=n;
};
void main()
{
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru