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

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

Восстановить пароль Регистрация
 
dartmall
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 9
23.10.2011, 18:31     Ввод монома. Ошибка при выводе. #1
Здравствуйте! Помогите, пожалуйста, разобраться.
Задача в том, чтобы ввести моном и затем вывести его.
Прога компилится, но при вводе 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();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aeshes
 Аватар для aeshes
437 / 200 / 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
 Аватар для aeshes
437 / 200 / 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?
чтобы в качестве аргумента в неё входил готовый моном, и присутствовал список. я уже просто голову сломал((
Yandex
Объявления
24.10.2011, 00:42     Ввод монома. Ошибка при выводе.
Ответ Создать тему
Опции темы

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