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

Ошибка при запуске программы - C++

Восстановить пароль Регистрация
 
Lokosios
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 27
27.05.2012, 17:44     Ошибка при запуске программы #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
#include "iostream"
#include "ctime"
#include "stdlib.h"
 
 
 
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,int j,int t,int index2,int 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[index][index2];
        else    cout << "error index";
    else    cout << "error index";
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2012, 17:44     Ошибка при запуске программы
Посмотрите здесь:

C++ вылетает ошибка при запуске программы
C++ ошибка при запуске программы
Ошибка при запуске отладки программы C++
C++ Ошибка при запуске программы
Ошибка при запуске программы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
27.05.2012, 17:51     Ошибка при запуске программы #2
Цитата Сообщение от Lokosios Посмотреть сообщение
C++
1
int main(int i,int j,int t,int index2,int index) {
Так нельзя. Попробуй заменить на
C++
1
2
int main() {
   int i, j, t, index2, index;
IceSqueez
Java, C# - Expert
 Аватар для IceSqueez
66 / 66 / 2
Регистрация: 09.08.2011
Сообщений: 284
27.05.2012, 17:55     Ошибка при запуске программы #3
Наврятли это причина его ошибки. Поскольку тогда-бы просто вылетало что нельзя передать переменные.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
27.05.2012, 18:01     Ошибка при запуске программы #4
Цитата Сообщение от IceSqueez Посмотреть сообщение
ахаха)))))) Ты написал ерунду, поскольку он просто передает параметры в функцию main, а ты говоришь описать ему локальные переменные.
вообще рекурсия main вроде бы запрещена, а если это не рекурсия то зачем так делать
Цитата Сообщение от gray_fox Посмотреть сообщение
int main(int i,int j,int t,int index2,int index)


Lokosios, проверь чтобы все функции были ОПИСАНЫ
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
27.05.2012, 18:02     Ошибка при запуске программы #5
Цитата Сообщение от IceSqueez Посмотреть сообщение
Наврятли это причина его ошибки.
ну да. Просто первое, что заметил. ТС, ещё инклюды неверные, стандартные подключаются так:
C++
1
2
3
#include <iostream>
#include <cstdlib>
#include <ctime>
Цитата Сообщение от IceSqueez Посмотреть сообщение
ахаха)))))) Ты написал ерунду, поскольку он просто передает параметры в функцию main, а ты говоришь описать ему локальные переменные.
)))
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 341
27.05.2012, 18:04     Ошибка при запуске программы #6
Цитата Сообщение от gray_fox Посмотреть сообщение
Так нельзя. Попробуй заменить на
Откуда вы взяли что в функцию main нельзя передавать параметры?
Lokosios
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 27
27.05.2012, 18:05  [ТС]     Ошибка при запуске программы #7
Так-так, стойте) Ошибка не в выше описанном, ругается на строчку
C++
1
 return Matrix[index][index2];
. Пишет: expected primary-expression before '[' token
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
27.05.2012, 18:06     Ошибка при запуске программы #8
Цитата Сообщение от IceSqueez Посмотреть сообщение
поскольку он просто передает параметры в функцию main, а ты говоришь описать ему локальные переменные.
он не передаёт параметры в функцию main , разницы между main (int x){...} и main(){int x;} нет ни какой кроме того что когда функции передаётся параметр она записывает его в локальную переменную
IceSqueez
Java, C# - Expert
 Аватар для IceSqueez
66 / 66 / 2
Регистрация: 09.08.2011
Сообщений: 284
27.05.2012, 18:06     Ошибка при запуске программы #9
Цитата Сообщение от Van111 Посмотреть сообщение
вообще рекурсия main вроде бы запрещена, а если это не рекурсия то зачем так делать
Без описаных функций не пустит компилятор, это раз. А во вторых, насчёт рекурсии main()'a то.. по моему смотря какой компилятор, многие пускают... а многие кричат. В принципе пробовать надо все
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
27.05.2012, 18:08     Ошибка при запуске программы #10
Цитата Сообщение от instagib Посмотреть сообщение
Откуда вы взяли что в функцию main нельзя передавать параметры
Почему, можно, но только так:
C++
1
int main(int argc, char * argv[])
или так:
C++
1
int main(int argc, char * argv[], char * env[])
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
27.05.2012, 18:12     Ошибка при запуске программы #11
Цитата Сообщение от Lokosios Посмотреть сообщение
return Matrix[index][index2];
не хватает переопределения оператора []

Добавлено через 2 минуты
автор объявил объект, а вернуть хочет объект двойного массив ,если на то дело пошло то тогда
return Matrix.Matr[index][index2]
Lokosios
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 27
27.05.2012, 19:09  [ТС]     Ошибка при запуске программы #12
По прежнему, даже на
C++
1
return Matrix.Matr[index][index2];
говорит expected primary-expression before '.' token
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2012, 12:19     Ошибка при запуске программы
Еще ссылки по теме:

Ошибка при запуске программы C++
C++ Ошибка при запуске программы
Ошибка при запуске программы C++

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

Или воспользуйтесь поиском по форуму:
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
28.05.2012, 12:19     Ошибка при запуске программы #13
Lokosios, объявите Matr в разделе публик
Yandex
Объявления
28.05.2012, 12:19     Ошибка при запуске программы
Ответ Создать тему
Опции темы

Текущее время: 21:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru