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

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

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

Ввод монома. Ошибка при выводе. - C++

23.10.2011, 18:31. Просмотров 671. Ответов 4
Метки нет (Все метки)

Здравствуйте! Помогите, пожалуйста, разобраться.
Задача в том, чтобы ввести моном и затем вывести его.
Прога компилится, но при вводе Coef (например 2) выскакивает ошибка AccessViolation. Помогите, пожалуйста, найти проблемное место и понять, почему так происходит.
Заранее огромное спасибо


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
#include <conio>
#include <iostream>
using namespace std;
int N1,N2; // количество мономов в 1 и 2 полиноме соответственно
 
class MONOM
{
public:
    float Coef; // коэффициент
    int Index; // индекс
    int d_x,d_y,d_z; // степени x,y и z соответственно
    MONOM()  // создание пустого монома
    {
        MONOM *m=new MONOM;
        m->Coef=0;
        m->Index=-1;
        m->d_x=0;
        m->d_y=0;
        m->d_z=0;
    };
    ~MONOM()
    {
        MONOM *m;
        delete m;
    };
    MONOM set_monom()
    {
        MONOM *m;
        int x,y,z,c;
        cout << "\nVvedite Coef:";
        cin >> c;
        m->Coef=c;
        cout << "\nVvedite X degree:";
        cin >> x;
        m->d_x=x;
        cout << "\nVvedite Y degree:";
        cin >> y;
        m->d_y=y;
        cout << "\nVvedite Z degree:";
        cin >> z;
        m->d_z=z;
        m->Index=100*d_x+10*d_y+d_z;
        return *m;
    };
    void print_monom()
    {
        MONOM *m;
        int dx,dy,dz,c;
        c=m->Coef;
        dx=m->d_x;
        dy=m->d_y;
        dz=m->d_z;
        cout << "Vash Monom:";
        cout << c;
    };
};
 
// Main
int main()
{
MONOM *monom1;
monom1->set_monom();
monom1->print_monom();
return 0;
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2011, 18:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод монома. Ошибка при выводе. (C++):

Ошибка при выводе - C++
Не могу найти ошибку в цикле. Суть такая: &quot;вывести на дисплей фамилии и номера групп для всех студентов, включенных в массив, имеющих хотя...

Ошибка при выводе значения - C++
Здравствуйте,решая задание: Вычислить рекурсивно и нерекурсивно произведение четного количества n (n &lt;= 2) сомножителей следующего вида y...

Ошибка при выводе символов - C++
Не отображается русскими буквами текст который я ввожу. Помогите, пожалуйста) #include &lt;iostream&gt; #include &lt;string&gt; #include...

Ошибка при выводе строки - C++
Подскажите в чем дело?? #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; using namespace std; class...

Ошибка при выводе на экран - C++
#include &lt;iostream&gt; using namespace std; int main() { int j =100; while (j &lt;= 110); cout &lt;&lt; endl &lt;&lt; j++; return 0; ...

ошибка при выводе в последовательности sn на с++ - C++
sn- это подсчет суммы ряда не могу понять почему одинаково значение при выполнении программы до 5 считает нормально, а затем зеркально...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
23.10.2011, 22:39 #2
Цитата Сообщение от dartmall Посмотреть сообщение
MONOM *m=new MONOM;
что это за временные объекты в конструкторе, деструкторе и других методах?
Попробуй так:
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
#include <iostream>
using namespace std;
int N1,N2; // количество мономов в 1 и 2 полиноме соответственно
 
class MONOM
{
public:
        float Coef; // коэффициент
        int Index; // индекс
        int d_x,d_y,d_z; // степени x,y и z соответственно
        MONOM()  // создание пустого монома
        {
                Coef=0;
                Index=-1;
                d_x=0;
                d_y=0;
                d_z=0;
        };
        ~MONOM() { };
        void set_monom()
        {
                cout << "\nVvedite Coef:";
                cin >> Coef;
                cout << "\nVvedite X degree:";
                cin >>d_x;
                cout << "\nVvedite Y degree:";
                cin >> d_y;
                cout << "\nVvedite Z degree:";
                cin >> d_z;
                Index=100*d_x+10*d_y+d_z;
        };
        void print_monom()
        {
                cout << "Vash Monom:";
                cout << Coef<<" "<<Index<<" "<<d_x<<" "<<d_y<<" "<<d_z<<endl;
        };
};
 
// Main
int main()
{
MONOM *monom1=new MONOM;
monom1->set_monom();
monom1->print_monom();
return 0;
 
}
dartmall
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 9
23.10.2011, 22:55  [ТС] #3
Спасибо большое, это здорово, конечно. Но это я просто кусочки общей задачи тренируюсь делать. На самом деле мне нужно создать программу, которая реализует полиномы, представленные в виде списка, элементами которого являются мономы. Виноват, что раньше не сказал.
И, как я понимаю, для дальнейшей реализации, мне на выходе из set_monom желательно иметь сформированный моном, чтобы потом, используя другие функции, добавить его в полином.

Посоветуйте, пожалуйста, как всё лучше оформить, или что можно почитать мне. Ато и погуглил и в Шилдте посмотрел с Архангельским и мало чего нашел. Мне бы примерчик посмотреть. Заранее спасибо
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
23.10.2011, 23:22 #4
На выходе из set_monom у тебя и так готовый моном, потому что set_monom является методом класса MONOM и вызывается для уже существующего экземпляра этого класса, как в твоей функции main. У тебя есть указатель на объект класса MONOM, выделена память под объект и для этого объекта ты и вызываешь метод set_monom. Ты можешь создавать сразу объект класса и для него вызывать этот метод (и тоже получать сформированный моном):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//тут класс MONOM
int main()
{
   MONOM m1, m2,m3; //это твои разные мономы
   m1.set_monom();
   m2.set_monom();
   m3.set_monom();
   m1.print_monom();
   m2.print_monom();
   m3.print_monom();
//если опишешь класс Полином, то тут ты сможешь использовать какой-то его метод для добавления
//созданного монома к списку мономов в полиноме, например, метод Add_monom из класса Полиномов
}
dartmall
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 9
24.10.2011, 00:42  [ТС] #5
спасибо!
а не посоветуете как лучше описать функцию add_monom из класса POLINOM?
чтобы в качестве аргумента в неё входил готовый моном, и присутствовал список. я уже просто голову сломал((
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2011, 00:42
Привет! Вот еще темы с ответами:

Ошибка при выводе строки - C++
С указателями работаю не в первый раз, но почему-то возникает ошибка во время работы. int main() { char temp = &quot;hello_world&quot;; ...

Ошибка при выводе дерева - C++
#include &lt;iostream&gt; using namespace std; struct node { int inf; node *left; node *right; };

Ошибка при выводе строковой переменной - C++
Привет всем, сразу скажу, что в с++ я не очень. Но нужно начинать уже сейчас в нем разбираться, а то скоро начнется он у меня в универе....

Ошибка при выводе строк из файла - C++
Помогите пожалуйста разобраться в чем ошибка. Весь код писать не буду просто покажу как я вношу данные в файл и считываю. int j=i; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.10.2011, 00:42
Ответ Создать тему
Опции темы

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