Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
b0n4b
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100
1

Вылетает окошко. (Скриншот прилагается)

23.04.2012, 19:06. Просмотров 1717. Ответов 33
Метки нет (Все метки)

Здравствуйте, форумчане. Я написал класс. Только после ввода команды, которая закрывает консоль у меня вылетает вот такое окошко, может кто нибудь встречался с таким.
Скриншот прикреплён ниже.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Миниатюры
Вылетает окошко. (Скриншот прилагается)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2012, 19:06
Ответы с готовыми решениями:

Вылетает окошко дебуггера
После установки Visual Studio 2005 или 2008 временами вылетает окошко ...

При отладке программы вылетает окошко с ошибкой: использование переменной без инициализации
код: #include <iostream> #include <conio.h> int A,n,m; using namespace...

Borland c 5.02 при запуске по шагам (F8) вылетает окошко CPU c кодом АСМ как его убрать?
День добрый. Кто знает подскажите пожалуйста в Borland C++ 5.02 при пошаговом...

Класс Student. Код прилагается
Создать класс Student. Класс имеет атрибуты name(имя), surname(фамилия), ...

Однорукий бандит. код прилагается
Помогите доделать с использованием очередей. Создать имитацию игры...

33
b0n4b
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100
24.04.2012, 00:30  [ТС] 21
Kuzia domovenok, т.е. чтобы узнать их разность надо
C++
1
c=a+b;
исправить на
C++
1
c=a-b;
???
0
Kuzia domovenok
2443 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,749
Записей в блоге: 1
24.04.2012, 00:32 22
ну дык
0
b0n4b
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100
24.04.2012, 19:11  [ТС] 23
Kuzia domovenok, Объединение работает точно, а разность не верно.
К примеру:
А: {5 4 6 5}
B: {3 4 5 7}
Должно быть {6}
А выводит {6 6 6}

Добавлено через 3 минуты
Так же к примеру
А: {1 2 3 4}
B: {3 4 5 6}
А-В Должно быть {1 2}. Выводит {1 2 4 4}
В-А Должно быть {5 6}. Выводит {5 6 6 6}

Kuzia domovenok, Получается что выводятся 2 лишних элемента?

Добавлено через 18 часов 30 минут
up up
0
Kuzia domovenok
2443 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,749
Записей в блоге: 1
24.04.2012, 19:19 24
Ну дык поставь, чтоб размер уменьшался при удалении. Ты в моём классе не разобрался?
В методе remove в конце поставь size--;
0
b0n4b
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100
24.04.2012, 19:24  [ТС] 25
К сожалению не разобрался. Да и с размерами та же песня...
0
Kuzia domovenok
2443 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,749
Записей в блоге: 1
24.04.2012, 19:32 26
Цитата Сообщение от b0n4b Посмотреть сообщение
К сожалению не разобрался. Да и с размерами та же песня...
советую перестать задавать вопросы по отрывочным сведениям, а изучить язык Си++ с начала и до достаточного для понимания уровня.

и измени метод remove так, чтоб он выглядел следующим образом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool remove(int value){
      int i;
      bool searching=true;
      for (i=0; (i<size)&&(searching); i++)   
        if (data[i]==value) searching=false;
      if (!searching){
        for (i=i-1; i<size-1; i++)
          data[i]=data[i+1];
        size--;
        return true;
      }
      return false;
    };
1
b0n4b
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100
24.04.2012, 20:03  [ТС] 27
Kuzia domovenok, уже не удобно задавать такие вопросы, но всё же сделаю это.
Как в вашей программе проверить входит ли какое либо число в множество А и В, как реализовать пересечение, и как вообще вывести оба множества на экран?
0
-=ЮрА=-
Заблокирован
Автор FAQ
24.04.2012, 20:14 28
Меня насторожил конструктор преобразования
Цитата Сообщение от b0n4b Посмотреть сообщение
Mnozh::Mnozh(int r)
{
* * size_a=0, size_b=0, size_c=0;
* * A=new int[size_a], B=new int[size_b], C=new int[size_c];
* * b=0, i=0, j=0, q=0, count=0, tmp=0;
}
Неужели не видно что size_a=0, size_b=0, size_c=0 проинициализированы нулём, ну и как мы хотим память под ноль выделить A=new int[size_a], B=new int[size_b], C=new int[size_c];

Добавлено через 3 минуты
b0n4b, можешь описать роль переменной r
Цитата Сообщение от b0n4b Посмотреть сообщение
Mnozh::Mnozh(int r)
она как бы вообще ничего не делает, а по идеи должна содержать скажем число элементов и использоваться для выделения памяти, ну это моё мнение конечно...
0
b0n4b
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100
24.04.2012, 20:18  [ТС] 29
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
она как бы вообще ничего не делает, а по идеи должна содержать скажем число элементов и использоваться для выделения памяти, ну это моё мнение конечно...
-=ЮрА=-, я понимаю, что она ничего не делает, просто без этого не работает, а что там должно быть, мне не известно.
0
-=ЮрА=-
Заблокирован
Автор FAQ
24.04.2012, 20:23 30
Цитата Сообщение от b0n4b Посмотреть сообщение
-=ЮрА=-, я понимаю, что она ничего не делает, просто без этого не работает, а что там должно быть, мне не известно.
- ну попробуй так чтоли
C++
1
2
3
4
5
6
7
8
Mnozh::Mnozh(int r)
{
    size_a=0, size_b=0, size_c=0;
    A=new int[(size_a = r)];
    B=new int[(size_b = r)];
    C=new int[(size_c = r)];
    b=0, i=0, j=0, q=0, count=0, tmp=0;
}
(я хочу по-быстрому залатать твой алгоритм, в логику вникать не хочу пока что)
0
b0n4b
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100
24.04.2012, 21:36  [ТС] 31
Цитата Сообщение от b0n4b Посмотреть сообщение
Kuzia domovenok, уже не удобно задавать такие вопросы, но всё же сделаю это.
Как в вашей программе проверить входит ли какое либо число в множество А и В, как реализовать пересечение, и как вообще вывести оба множества на экран?
Сможешь ответить на эти вопросы?
0
Kuzia domovenok
2443 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,749
Записей в блоге: 1
24.04.2012, 22:08 32
Цитата Сообщение от b0n4b Посмотреть сообщение
Kuzia domovenok, уже не удобно задавать такие вопросы, но всё же сделаю это.
Как в вашей программе реализовать пересечение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  ///////...............
    friend set operator - (set, set);
    friend set operator ^ (set, set);
    ~set(){delete[] data;};
};
set operator ^ (set a, set b){
  set temp;
  bool searching;
  int i, j;
  for (j=0; j<a.size; j++){
    searching=true;
    for (i=0; (i<b.size)&&(searching); i++)
      if (a[j]==b[i]){temp.add(a.data[j]); searching=false;
  }
  return temp;
}
//////.....
Как в вашей программе проверить входит ли какое либо число в множество А и В, как реализовать
C++
1
2
3
4
bool set::includes(int value){
for (int i=0; i<size; i++) if (data[i]==value) return true;
return false;
}
, и как вообще вывести оба множества на экран?
C++
1
for (int i=0; i<a.getsize(); i++)cout<<a[i];
1
b0n4b
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100
25.04.2012, 22:54  [ТС] 33
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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#include <iostream>
using namespace std;
 
const int CHUNK_SIZE=10;
class set
{
protected:
    int *data;
    int size;
    int bufsize;
    int name;
 
public:
    const int getsize()
    {
        return size;
    }
    const int buffersize()
    {
        return bufsize;
    }
    set(int n=0):size(0), bufsize(CHUNK_SIZE)
    {
        data=(new int[CHUNK_SIZE]);
        name=n;
    }
    set(set& copy): size(copy.size), bufsize(copy.bufsize)
    {
        data=new int[bufsize];
        for(int i=0; i<size; i++)
            data[i]=copy.data[i];
    };
    set& operator = (set& copy)
    {
        int i;
        if (this!=&copy)
        {
            delete[] data;
            size=copy.size;
            bufsize=copy.bufsize;
            data=new int[bufsize];
            for(i=0; i<size; i++)
                data[i]=copy.data[i];
        }
        return *this;
    };
 
    void add(int value)
    {
    int i;
    int* d;
    bool searching=true;
    for(i=0; (i<size)&&(searching); i++)
        if (data[i]==value) searching=false;
            if (searching)
            {
                data[size]=value;
                size++;
                if(size==bufsize)
                {
                    bufsize+=CHUNK_SIZE;
                    d=new int[bufsize];
                    for(i=0; i<size; i++)
                        d[i]=data[i];
                        delete[] data;
                        data=d;
                }     
            }
    };
 
    bool remove(int value)
    {
        int i;
        bool searching=true;
        for (i=0; (i<size)&&(searching); i++)   
            if (data[i]==value) 
                searching=false;
            if (!searching)
            {
                for (i=i-1; i<size-1; i++)
                data[i]=data[i+1];
                size--;
                return true;
            }
            return false;
    };
    int operator[] (int id)
    {
        if ((id<size)&&(id>=0)) 
            return data[id]; 
        else 
        {
            std::cerr<<"Error index "; return 0;
        }
    }
    
    friend set operator + (set, set);
    friend set operator - (set, set);
 
    ~set()
    {
        delete[] data;
    };
 
    set operator + (set a, set b)
    {
        set temp=a;
        temp.name=10*a.name;
        int i;
        for (i=0; i<b.size; i++)
            temp.add(b.data[i]);
        return temp;
    }
 
    set operator - (set a, set b)
    {
        set temp=a;
        int i;
        for (i=0; i<b.size; i++)
            temp.remove(b.data[i]);
        return temp;
    }
 
    set operator ^ (set a, set b)
    {
        set temp;
        bool searching;
        int i, j;
        for (j=0; j<a.size; j++)
        {
            searching=true;
            for (i=0; (i<b.size)&&(searching); i++)
                if (a[j]==b[i]){temp.add(a.data[j]); 
                    searching=false;
        }
        return temp;
    }
 
    bool set::includes(int value)
    {
        for (int i=0; i<size; i++) 
            if (data[i]==value) 
                return true;
        return false;
    }
 
};
 
 
int main()
{
    setlocale (LC_ALL, "Russian");
    set a(1);
    set b(2);
    set c(3);
    a.add(1);
    a.add(2);
    a.add(3);
    a.add(4);
    b.add(3);
    b.add(4);
    b.add(5);
    b.add(6);
    c=a+b;
    for (int i=0; i<c.getsize(); i++) 
    cout<<c[i]<< " ";
    cout <<"- Объединение\n";
    c=a-b;
    for (int i=0; i<c.getsize(); i++) 
    cout<<c[i]<< " ";
    cout <<"- А-В\n";
    c=b-a;
    for (int i=0; i<c.getsize(); i++) 
    cout<<c[i]<< " ";
    cout <<"- В-А\n";
    cout << set a;
    for (int i=0; i<a.getsize(); i++)
        cout<<a[i]<<" ";
    cout << "- Mn A";
        for (int i=0; i<a.getsize(); i++)
        cout<<a[i]<<" ";
    cout << "- Mn B";
    return 0;
}
Выдаёт 7 ошибок
0
Kuzia domovenok
2443 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,749
Записей в блоге: 1
25.04.2012, 23:28 34
А каким макаром операторы вдруг стали частями класса(членами)???
Я тебе выкладывал программу, где они совершенно отдельные функции.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class set
{
/////
    friend set operator + (set, set);
    friend set operator - (set, set);
    friend set operator ^ (set, set);
};
/////////////////////////
    set operator + (set, set){///никакого set::operator!!!!
             //////
    }
    set operator - (set, set){
          ////////
        }
   set operator ^ (set, set){
          ////////
        }
0
25.04.2012, 23:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2012, 23:28

Найдите пожалуйста ошибку(код прилагается)
ЗАДАЧА. Составить программу вычисления значения выражения f (x), для значений...

Задать должность в виде массива. Код прилагается
Помогите исправить что не так! :help: И задать должность в виде массива. ...

В двухмерном массиве, рассчитать функцию и произведения (Код прилагается)
Ввести двумерный массив размерностью 5х6(обычный не динамический и работа с ним...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Опции темы

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