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

Операции над матрицами-сложение, вычитание, умножение на число - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамические структуры данных.Стек. Значение выражения в постфиксной форме http://www.cyberforum.ru/cpp-beginners/thread1195275.html
Пусть строка символов, введенная с клавиатуры, задает выражение, записанное в постфиксной форме (например, 6523+8*+3+*). В выражении встречаются цифры 0..9 и знаки арифметических операций. Необходимо вычислить значение выражения.В данном моем примере мы вводим числа типа int и считаем значение выражения ,а надо сделать под double может кто помочь? # include <iostream> using namespace...
C++ Подскажите,как сделать блок-схему по программе.Кто умеет их делать.Заранее благодарю) --------------------------------------------------------------------------- * #include <vcl.h> #pragma hdrstop * //--------------------------------------------------------------------------- #include<iostream.h> #include <math.h> #include <stdio.h> #pragma argsused http://www.cyberforum.ru/cpp-beginners/thread1195251.html
C++ Как запихнуть массив строк в класс?
Есть класс, один из методов который использует массив строк: char* pszName = { "Anton", "Alex" }; Сейчас это вне класса, как в класс запихнуть?
C++ Выход из цикла
Проблема следующая: Согласно i из внутреннего цикла берутся значения из вектора, но можно выйти за границы вектора. Для границы снизу - всё работает считает. Но нужно сделать , что если end1> чем размер файла, то присвоить end1=end+p и продолжить выполнения цикла. Но получается, что входит в бесконечный цикл for(int j =start, end =n+start; j < end; j++) { // считаем значение для...
C++ Проставить шкалу на осях координат http://www.cyberforum.ru/cpp-beginners/thread1195221.html
Здравствуйте. Мне необходимо проставить шкалу на осях координат. Составил следующий код программы: k=800*0.3/(n2-n1); outtextxy (X0, Y0, "0"); for(i=1;i<=1000;i++) {outtextxy (X0, Y0-i*k, "1"); outtextxy (X0+i*k, Y0, "1");} X0 и Y0 равны 400, 800 - ширина окна (само окно 800х800). Подставив этот цикл я получаю шкалу на осях координат по положительным направлениям, но при этом у меня...
C++ Разработка программы составления расписания занятий Исходные данные: Наименование дисциплин Количество лекций, семинаров и лабораторных занятий по каждой дисциплине на неделе Фамилии преподавателей, проводящих занятие Список аудиторий предназначенных для каждого вида занятий Выходные данные: Расписание занятий потока на две недели Ограничения: подробнее

Показать сообщение отдельно
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
01.06.2014, 20:29  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число
извините пожалуйста-там нашел похожий код-вставил его в visual studio 2008 но при компиляции выдает 20 ошибок-не найден идентификатор,подскажите в чем дело пожалуйста?

Добавлено через 1 минуту
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
152
153
154
155
156
157
158
159
160
161
162
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#include <exception>
#include <stdexcept>
#include <matrix.h>
#include <stdafx.h>
using namespace std;
 
class Array
{
protected:
        int** _data;
        int _cols, _rows;
public:
        Array(void) : _data(0), _rows(0),_cols(0) {};
        Array(int rows, int cols, bool fill=false, int filler=0)
                : _rows(rows), _cols(cols), _data(0)
        {
                _data = new int* [_rows];
                for (int i=0; i<_rows; i++)
                {
                        _data[i] = new int[_cols];
                        if (fill)
                                for (int j=0; j<_cols; j++)
                                        _data[i][j] = filler;
                }
        }
 
        Array(const Array& other) :
                _cols(other.cols()),
                _rows(other.rows())
        {
                _data = new int* [_rows];
                for (int i=0; i<_rows; i++)
                {
                        _data[i] = new int[_cols];
                        for (int j=0; j<_cols; j++)
                                _data[i][j] = other._data[i][j];
                }
        }
 
        // возвращает транспонированную матрицу
        const Array transpon() const
        {
                Array C(_cols, _rows);
                for (int i=0; i<_cols; i++)
                        for (int j=0; j<_rows; j++)
                                C[i][j] = _data[j][i];
                return C;
        }
 
        // возвращает определитель матрицы,
        // не писал
        const int determinant() const
        {
                int det=0;
                // тут должен быть код вычисления
                // определителя матрицы
                return det;
        }
 
        // сложение двух матриц
        const Array operator+(const Array& other) const
        {
                if ((_cols != other.cols()) || (_rows != other.rows()))
                        throw out_of_range("Multiplied matrixes do not have same number of cols and rows.");
                Array C(_rows, _cols);
                for (int i=0; i<C.rows(); i++)
                        for (int j=0; j<C.cols(); j++)
                                C._data[i][j] = _data[i][j] + other._data[i][j];
                return C;
        }
 
        // умножение двух матриц
        const Array operator*(const Array& other) const
        {
                if (_cols != other.rows())
                        throw out_of_range("Multiplied matrixes do not have same number of cols and rows.");
                Array C(_rows, other.cols(), true);
                for (int i=0; i<C.rows(); i++)
                        for (int j=0; j<C.cols(); j++)
                                for (int k=0; k<_cols; k++)
                                C[i][j] += _data[i][k]*other._data[k][j];
                return C;
        }
 
        // присваивание матрицы
        Array& operator= (const Array& other)
        {
                if (this!=&other)
                {
                        if (_data!=0)
                        {
                                for (int i=0; i<_rows; i++)
                                        delete [] _data[i];
                                delete [] _data;
                        }
                        _rows = other.rows();
                        _cols = other.cols();
 
                        _data = new int* [_rows];
                        for (int i=0; i<_rows; i++)
                                _data[i] = new int[_cols];
 
                        for (int i=0; i<_rows; i++)
                                for (int j=0; j<_cols; j++)
                                        _data[i][j] = other._data[i][j];
                }
                return *this;
        }
 
        // вывод матрицы
        friend ostream& operator<< (ostream& o, const Array& a)
        {
                for (int i=0; i<a._rows; i++)
                {
                        for (int j=0; j<a._cols; j++)
                                o << setw(4) << a._data[i][j];
                        o << endl;
                }
                return o;
        }
 
void fill_random()
{
for (int i=0; i<_rows; i++)
for (int j=0; j<_cols; j++)
_data[i][j] = rand()%100+1;
}
int* operator[](int i) { return _data[i]; }
int& at(int i, int j) { return _data[i][j]; }
const int cols() const { return _cols; }
const int rows() const { return _rows; }
 
        ~Array()
        {
                if (_data!=0)
                {
                        for (int i=0; i<_rows; i++)
                                delete [] _data[i];
                        delete [] _data;
                }
        }
};
 
int main()
{
        srand(static_cast<unsigned int>(time(0)));
 
        Array x(3, 3, true, 1);
        Array y(3, 3, true, 1);
        Array z(3, 5);
        z.fill_random();
 
        cout << (x*y) << endl;
        cout << (x+y) << endl;
        cout << z << endl << z.transpon() << endl;
 
        return 0;
}

1>------ Построение начато: проект: matrix, Конфигурация: Debug Win32 ------
1>Компиляция...
1>matrix.cpp
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(1) : warning C4627: #include <iostream>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(2) : warning C4627: #include <iomanip>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(3) : warning C4627: #include <cstdlib>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(4) : warning C4627: #include <ctime>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(5) : warning C4627: #include <exception>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(6) : warning C4627: #include <stdexcept>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(7) : warning C4627: #include <matrix.h>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(9) : error C2871: std: пространство имен с таким именем не существует
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(115) : error C2143: синтаксическая ошибка: отсутствие ";" перед "&"
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(115) : error C2433: ostream: 'friend' не разрешается для объявлений данных
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(115) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(115) : error C2061: синтаксическая ошибка: идентификатор "ostream"
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(116) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(116) : error C2805: бинарный 'operator <<' имеет слишком мало параметров
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(116) : error C2333: Array::operator <<: ошибка в объявлении функции; пропуск основного текста функции
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(68) : error C3861: out_of_range: идентификатор не найден
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(80) : error C3861: out_of_range: идентификатор не найден
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(130) : error C3861: rand: идентификатор не найден
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(150) : error C3861: srand: идентификатор не найден
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(150) : error C3861: time: идентификатор не найден
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(157) : error C2065: cout: необъявленный идентификатор
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(157) : error C2065: endl: необъявленный идентификатор
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(158) : error C2065: cout: необъявленный идентификатор
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(158) : error C2065: endl: необъявленный идентификатор
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(159) : error C2065: cout: необъявленный идентификатор
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(159) : error C2065: endl: необъявленный идентификатор
1>c:\users\user\documents\visual studio 2008\projects\matrix\matrix.cpp(159) : error C2065: endl: необъявленный идентификатор
1>Журнал построения был сохранен в "file://c:\Users\user\Documents\Visual Studio 2008\Projects\matrix\Debug\BuildLog.htm"
1>matrix - ошибок 20, предупреждений 7
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
 
Текущее время: 16:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru