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

Нужно дореализовать доступ по индексу в матрице - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать программу обработки двумерных массивов, используя динамическое размещение данных http://www.cyberforum.ru/cpp-beginners/thread588847.html
Сформировать вектор из наименьших значений элементов столбцов и найти их среднее арифметическое помогите написать программу..
C++ В программе предусмотреть процедуры ввода-вывода элементов массива В одномерном массиве из n вещественных элементов вычислить: - сумму элементов массива с нечетными номерами; - сумму элементов массива, расположенных между первым и последним отрицательными элементами помогите написать программу.... http://www.cyberforum.ru/cpp-beginners/thread588844.html
Задача на классы файловых потоков C++
Помогите, пожалуйста, добавить возможность записи объектов в файл и чтения объектов из файла. #include <iostream> #include <conio.h> using namespace std; //базовый класс "студент" class CStudent { protected: char m_Fio;//ФИО int m_Year;//год поступления
Напечатать таблицу истинности для логической функции C++
Напечатать таблицу истинности для логической функции: (A<=>B<=>C)A-, где v,-,<=>-знаки логических операций или, не, эквивалентность
C++ Найти наибольший общий делитель (НОД) двух введенных натуральных чисел, используя алгоритм Евклида http://www.cyberforum.ru/cpp-beginners/thread588806.html
Найти наибольший общий делитель (НОД) двух введенных натуральных чисел, используя алгоритм Евклида. Алгоритм Евклида: вычитаем числа меньшее до тех число и есть НОД
C++ Адрес первого элемента массива 1. Написать функцию, принимающую в качестве параметра количество строк и столбцов в таблице умножения. Функция должна создать двумерный массив целых чисел размера, достаточного для хранения таблицы умножения и заполнить массив элементами таблицы умножения. Функция должна вернуть адрес первого элемента массива. Заголовок функции: int * get_multiplication_table (unsigned int count); подробнее

Показать сообщение отдельно
Lokosios
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 27
28.05.2012, 11:03     Нужно дореализовать доступ по индексу в матрице
В общем, не могу доделать доступ по индексу - не знаю, как избавиться от ошибки.
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
#include "iostream"
#include "ctime"
#include "stdlib.h"
#include <cstdlib>
 
 
using namespace std;
 
class Matrix
{
    int m; // количество строк
    int n; // количество столбцов
    double **Matr;
public:
    Matrix(int _n, int _m);
 
    void MatrixInit(int, int);
    void random_put();
 
    Matrix operator+(Matrix );
 
    Matrix operator+(int );
    Matrix operator+(double );
 
    void operator=(int );
    void operator=(double );
 
    double operator()(int, int);
 
    void Print();
 
};
 
Matrix::Matrix(int _n, int _m)
{
    n = _n;
    m = _m;
    Matr = new double*[m];
    for(int i=0; i<m; i++)
        Matr[i]=new double[n];
}
 
void Matrix::random_put()
{
    for(int i=0; i<m; i++)
    {
        for(int j=0; j<n; j++)
        {
            cout<<"Vvedite ["<<i<<"]["<<j<<"] element: ";cin>>Matr[i][j];
        }
    }
}
 
Matrix Matrix::operator+(Matrix A)
{
    Matrix temp(A.n, A.m);
    for(int i=0; i<m; i++)
        for(int j=0; j<n; j++)
            temp.Matr[i][j]=Matr[i][j] + A.Matr[i][j];
    return temp;
}
 
Matrix Matrix::operator+(int A)
{
    Matrix temp(n, m);
    for(int i=0; i<m; i++)
        for(int j=0; j<n; j++)
            temp.Matr[i][j]=Matr[i][j] + A;
    return temp;
}
 
Matrix Matrix::operator+(double A)
{
    Matrix temp(n, m);
    for(int i=0; i<m; i++)
        for(int j=0; j<n; j++)
            temp.Matr[i][j]=Matr[i][j] + A;
    return temp;
}
 
void Matrix::operator=(int A)
{
 
    for(int i=0; i<m; i++)
        for(int j=0; j<n; j++)
            Matr[i][j]= A;
 
}
 
void Matrix::operator=(double A)
{
 
    for(int i=0; i<m; i++)
        for(int j=0; j<n; j++)
            Matr[i][j]= A;
 
}
 
double Matrix::operator()(int index, int index2)
{
    if(index >= 0 && index2 >= 0)
        if( index <= n && index2 <= m)
            return Matr[index][index2];
        else
            cout << "error index";
    else
        cout << "error index";
}
 
void Matrix::Print()
{
    for(int i=0; i<m; i++)
    {
        cout << endl;
        for(int j=0; j<n; j++)
            cout << Matr[i][j] << " ";
    }
    cout <<endl;
}
 
int main()
{
   int i, j, t, index2, index;
    cout << "Vvedite razmer matrici, i = ";
    cin >> i;
    cout << "Vvedite razmer matrici, j = ";
    cin >> j;
    Matrix Q(i,j);
    Q.random_put();
    cout << "Pervaya matrica:";
    Q.Print();
 
    Matrix W(i,j);
    W.random_put();
    cout << "Vtoraya matrica:";
    W.Print();
 
    cout << "Rezultat slozhenia matric:";
    W = Q + W;
    W.Print();
    cout << "Vvedite chislo, t = ";
    cin >> t;
    W = Q + t;
    W.Print();
 
    cout << "Vvedite pervii indeks, i = ";
    cin >> index;
    cout << "Vvedite vtoroi indeks, j = ";
    cin >> index2;
{
       if(index >= 0 && index2 >= 0)
        if( index <= i && index2 <= j)
            return Matrix.Matr[index][index2];     expected primary-expression before '.' token
        else    cout << "error index";
    else    cout << "error index";
}
}
Добавлено через 50 минут
Неужели никто не знает?)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru