Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 13.12.2014
Сообщений: 8

Не могу найти ошибку этапа исполнения

15.11.2015, 13:59. Показов 859. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, написал программу, не могу понять, почему при отладке VB не хочет ее запускать(вылетает)
В чем может быть причина?

Программа:
main.cpp
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
#include "class_container.h"
#include <iostream>
using namespace std;
void fill(HWND hwnd, HDC hdc){
    HPEN bp = CreatePen(1, 1, RGB(0, 0, 0));
    HBRUSH bb = GetStockBrush(BLACK_BRUSH);
    HPEN pen = SelectPen(hdc, bp);
    HBRUSH brush = SelectBrush(hdc, bb);
    RECT rect;
    GetClientRect(hwnd, &rect);
    Rectangle(hdc, -1, -1, rect.right + 1, rect.bottom + 1);
    SelectPen(hdc, bp);
    DeletePen(pen);
}
void processing(int error){
    switch (error){
    case 0:{ printf("\nA reading/writing trouble!");
        _getch();
        break; }
    case 1:{ printf("\nWindow is too small to contain this triangle! (Because of a point coordinates)");
        _getch();
        break; }
    case 2:{printf("\nIt is not a triangle!");
        _getch();
        break; }
    case 3:{printf("\nWrong number of a type!");
        _getch();
        break; }
    case 4:{printf("\nWrong width of a line!");
        _getch();
        break; }
    case 5:{printf("\nA color problem");
        _getch();
        break; }
    case 6:{printf("\nThere is not a nesting!");
        _getch();
        break; }
    }
}
 
int main(){
    setlocale(LC_ALL, "Russian");
    FILE *in, *out;
    char inp[20];
    HBRUSH xBr0 = CreateSolidBrush(RGB(0, 0, 0));
    int k = 1;
    HWND hwnd = GetConsoleWindow();
    HDC hdc = GetDC(hwnd);
    RECT rt;
    GetClientRect(hwnd, &rt);
    SetBkColor(hdc, RGB(0, 0, 0));
    point ga1, gb1, gc1, ga2, gb2, gc2;
    int gtype, gl_width1, gl_width2;
    color glinecol, gintrocol;
    try{
        triangle treugolnik;
        container m;
        container();
    l:
        printf("Введите имя файла \n");
        scanf("%s", &inp);
        strcpy(&inp[strlen(inp)], ".txt");
        if (!(in = fopen(inp, "r"))) goto l;
        while (!feof(in)){
            triangle q;
            q.fload(in, hwnd);
            m.add(q);
        }
        fclose(in);
        do{
            system("cls");
            printf(" 0 - Добавить элемент \n 1 - Распечатать \n 2 - Показать графически\n 3 - Удалить треугольник \n 4 - Сохранить \n 5 - Деструктор\n 6 - Пуста ли очередь? \n 7 - Поиск элемента \n 8 - Выход \n");
            switch (_getch()){
            case '0':{int a1x, a1y, b1x, b1y, c1x, c1y, a2x, a2y, b2x, b2y, c2x, c2y, t, lw1, lw2, lr, lg, lb, ir, ig, ib;
                point n_a1, n_b1, n_c1, n_a2, n_b2, n_c2;
                color line, intro;
                triangle q; printf("Введите 12 координат 6-ти точек, тип фигуры, толщины линий и 2 цвета (шесть параметров).");
                scanf("%i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i", &a1x, &a1y, &b1x, &b1y, &c1x, &c1y, &a2x, &a2y, &b2x, &b2y, &c2x, &c2y, &t, &lw1, &lw2, &lr, &lg, &lb, &ir, &ig, &ib);
                n_a1.x = a1x;
                n_a1.y = a1y;
                n_b1.x = b1x;
                n_b1.y = b1y;
                n_c1.x = c1x;
                n_c1.y = c1y;
                n_a2.x = a2x;
                n_a2.y = a2y;
                n_b2.x = b2x;
                n_b2.y = b2y;
                n_c2.x = c2x;
                n_c2.y = c2y;
                line.r = lr;
                line.g = lg;
                line.b = lb;
                intro.r = ir;
                intro.g = ig;
                intro.b = ib;
                q.set_a1(hwnd, n_a1);
                q.set_b1(hwnd, n_b1);
                q.set_c1(hwnd, n_c1);
                q.set_a2(hwnd, n_a2);
                q.set_b2(hwnd, n_b2);
                q.set_c2(hwnd, n_c2);
                q.set_linecol(line);
                q.set_introcol(intro);
                q.set_type(t);
                q.set_l_width1(lw1);
                q.set_l_width2(lw2);
                m.add(q);
                break; }
            case '1':{m.text();
                _getch();
                break; }
            case '2':{system("cls");
                m.view(hdc, rt);
                fill(hwnd, hdc);
                break; }
            case '3':{treugolnik.getfull(&ga1, &gb1, &gc1, &ga2, &gb2, &gc2, &gtype, &gl_width1, &gl_width2, &glinecol, &gintrocol);
                m.get(&treugolnik);
                treugolnik.paint(hdc);
                _getch();
                break; }
            case '4':{out = fopen("out.txt", "w");
                m.save(out);
                _getch();
                fclose(out);
                break; }
            case '5':{m.~container();
                break; }
            case '6':{m.empty();
                break; }
            case '7':{m.find();
                _getch();
                break; }
            case '8':{k = 0;
                break; }
            }
        } while (k);
        return 1;
    }
    catch (int error){ processing(error); }
}
class_conteiner.cpp

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
185
186
187
#include "class_container.h"
container::container(){
    l.head = NULL;
    l.tail = l.head;
}
void container::add(triangle K){
    queue *a;
    a = new queue;
    if (!l.head){
        l.head = new queue;
        l.head->next = a;
        a->k = K;
        l.tail = a;
        l.tail->next = NULL;
    }
    l.tail->next = a;
    a->pred = l.tail;
    a->k = K;
    a->next = l.head->next;
    l.tail = a;
    l.head->pred = l.tail;
}
void container::del(){
    queue *a = l.head;
    if (a){
        a = l.head->next;
        if (!a) printf("Очередь пуста");
        else if (a->next == l.head->next){
            delete a;
            l.tail = NULL;
            l.head = NULL;
            printf("Треугольник удален \n");
        }
        else{
            l.head->next = a->next;
            l.tail->next = a->next;
            a->next->pred = l.tail;
            delete a;
            printf("Треугольник удален");
        }
    }
    else printf("Очередь пуста");
}
void container::text(){
    queue *a = l.head;
    if (!a) printf("Очередь пуста");
    else{
        a = a->next;
        point ga1, gb1, gc1, ga2, gb2, gc2;
        int gtype, gl_width1, gl_width2;
        color glinecol, gintrocol;
        int ga1x, ga1y, gb1x, gb1y, gc1x, gc1y, ga2x, ga2y, gb2x, gb2y, gc2x, gc2y, lcr, lcg, lcb, icr, icg, icb;
        int i = 1;
        while (a->next != l.head->next){
            a->k.getfull(&ga1, &gb1, &gc1, &ga2, &gb2, &gc2, &gtype, &gl_width1, &gl_width2, &glinecol, &gintrocol);
            ga1x = ga1.x;
            ga1y = ga1.y;
            gb1x = gb1.x;
            gb1y = gb1.y;
            gc1x = gc1.x;
            gc1y = gc1.y;
            ga2x = ga2.x;
            ga2y = ga2.y;
            gb2x = gb2.x;
            gb2y = gb2.y;
            gc2x = gc2.x;
            gc2y = gc2.y;
            lcr = glinecol.r;
            lcg = glinecol.g;
            lcb = glinecol.b;
            icr = gintrocol.r;
            icg = gintrocol.g;
            icb = gintrocol.b;
            printf("%d Координаты: %d %d %d %d %d %d %d %d %d %d %d %d \n Тип: %d \n Толщины линий %d %d \n Цвета пера: %d %d %d \n  Цвета кисти: %d %d %d \n", i, ga1x, ga1y, gb1x, gb1y, gc1x, gc1y, ga2x, ga2y, gb2x, gb2y, gc2x, gc2y, gtype, gl_width1, gl_width2, lcr, lcg, lcb, icr, icg, icb); a = a->next; i++;
        }
        a->k.getfull(&ga1, &gb1, &gc1, &ga2, &gb2, &gc2, &gtype, &gl_width1, &gl_width2, &glinecol, &gintrocol);
        ga1x = ga1.x;
        ga1y = ga1.y;
        gb1x = gb1.x;
        gb1y = gb1.y;
        gc1x = gc1.x;
        gc1y = gc1.y;
        ga2x = ga2.x;
        ga2y = ga2.y;
        gb2x = gb2.x;
        gb2y = gb2.y;
        gc2x = gc2.x;
        gc2y = gc2.y;
        lcr = glinecol.r;
        lcg = glinecol.g;
        lcb = glinecol.b;
        icr = gintrocol.r;
        icg = gintrocol.g;
        icb = gintrocol.b;
        printf("%d Координаты: %d %d %d %d %d %d %d %d %d %d %d %d \n Тип: %d \n Толщины линий %d %d \n Цвета пера: %d %d %d \n Цвета кисти: %d %d %d \n", i, ga1x, ga1y, gb1x, gb1y, gc1x, gc1y, ga2x, ga2y, gb2x, gb2y, gc2x, gc2y, gtype, gl_width1, gl_width2, lcr, lcg, lcb, icr, icg, icb);
    }
}
void container::save(FILE *F){
    queue *a = l.head;
    if (!a) printf("Очередь пуста");
    else{
        a = l.head->next;
        while (a->next != l.head->next){
            a->k.fsave(F);
            a = a->next;
        }
        a->k.fsave(F);
        printf("Данные сохранены");
    }
}
container::~container(){
    while (l.head) del();
}
void container::view(HDC hdc, RECT rt){
    queue *a;
    int n = 0;
    HBRUSH xBr = CreateSolidBrush(RGB(0, 0, 0));
    if (!l.head) printf("Очередь пуста");
    else{
        a = l.head->next;
        while (a->next != l.head->next){
            a->k.numr(&n);
            a->k.paint(hdc);
            a = a->next; _getch();
            FillRect(hdc, &rt, xBr);
        }
        a->k.paint(hdc);
        _getch();
    }
    FillRect(hdc, &rt, xBr);
}
void container::empty(){
    if (l.head == NULL) printf("Очередь пуста");
    else printf("Очередь не пуста"); _getch();
}
int container::find()
{
    int flag = 0;
    queue *qe = l.head;
    int a, b, c, i = 1;
    color col;
    if (qe){
        qe = l.head->next;
        printf("Введите цвет линии \n");
        scanf("%d %d %d", &a, &b, &c);
        while (qe->next != l.head->next){
            col = qe->k.get_linecol();
            if (a == col.r && b == col.g && c == col.b){
                flag = flag + 1;
                printf("\nЭлемент найден #%d", i);
            }
            qe = qe->next; i++;
        }
        col = qe->k.get_linecol();
        if (a == col.r && b == col.g && c == col.b){
            flag = flag + 1;
            printf("\nЭлемент найден #%d", i);
        }
        if (flag) return 1;
        printf("Элемент не найден"); return 0;
    }
    else printf("Очередь пуста"); return 0;
}
void container::get(triangle *q){
    point ga1, gb1, gc1, ga2, gb2, gc2;
    int gtype, gl_width1, gl_width2;
    color glinecol, gintrocol;
    queue *a = l.head;
    if (a){
        a = l.head->next; if (a->next == l.head->next){
            a->k.getfull(&ga1, &gb1, &gc1, &ga2, &gb2, &gc2, &gtype, &gl_width1, &gl_width2, &glinecol, &gintrocol);
            q->setfull(&ga1, &gb1, &gc1, &ga2, &gb2, &gc2, &gtype, &gl_width1, &gl_width2, &glinecol, &gintrocol);
            delete a;
            l.tail = NULL;
            l.head = NULL;
        }
        else{
            a->k.getfull(&ga1, &gb1, &gc1, &ga2, &gb2, &gc2, &gtype, &gl_width1, &gl_width2, &glinecol, &gintrocol);
            q->setfull(&ga1, &gb1, &gc1, &ga2, &gb2, &gc2, &gtype, &gl_width1, &gl_width2, &glinecol, &gintrocol);
            l.head->next = a->next;
            l.tail->next = a->next;
            a->next->pred = l.tail;
            delete a;
        }
    }
    else printf("Очередь пуста");
}
class_conteiner.h

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
#ifndef CLASS_CONTAINER_H_
#define CLASS_CONTAINER_H_
#include "triangle.h"
struct queue
{
    queue *next;
    queue *pred;
    triangle k;
};
struct list
{
    queue *head;
    queue *tail;
};
class container
{
private:
    queue *q;
    list l;
public:
    container();
    void add(triangle K);
    void del();
    void get(triangle *q);
    void text();
    void save(FILE *F);
    ~container();
    void view(HDC, RECT rt);
    void empty();
    int find();
};
#endif
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.11.2015, 13:59
Ответы с готовыми решениями:

Ошибка этапа исполнения
Всем доброго времени суток! Пытаюсь решить вот эту задачу: В ряд выложены N кучек камней, в i-ой из которых было Qi камней. В любой...

Ошибка этапа исполнения
Доброго времени суток! Хочу разобраться с ошибкой, буду благодарна за помощь) Вот код функции: void addCard ( sDeck* oldDeck,...

Ошибка этапа исполнения в классе Матрица
Всем привет снова!) Теперь я написала код по задаче, которая гласит: &quot;у вас есть два класса -один одномерный массив, другой матрица. Вы...

10
0 / 0 / 0
Регистрация: 13.12.2014
Сообщений: 8
15.11.2015, 14:02  [ТС]
triangle.cpp

Кликните здесь для просмотра всего текста
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
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
#include "triangle.h"
void triangle::set_a1(HWND hwnd, point n_a1){
    if (!reconwindow(hwnd, n_a1)) throw 1;
else{
        a1.x = n_a1.x;
        a1.y = n_a1.y;
    }
}
void triangle::set_b1(HWND hwnd, point n_b1){
    if (!reconwindow(hwnd, n_b1)) throw 1;
    else{
        b1.x = n_b1.x;
        b1.y = n_b1.y;
    }
}
void triangle::set_c1(HWND hwnd, point n_c1){
    point pt[3];
    pt[0].x = a1.x;
    pt[0].y = a1.y;
    pt[1].x = b1.x;
    pt[1].y = b1.y;
    pt[2].x = n_c1.x;
    pt[2].y = n_c1.y;
    if (!reconwindow(hwnd, n_c1)) throw 1;
    else{
        if (!checkpoint(pt)) throw 2;
        else{
            c1.x = n_c1.x;
            c1.y = n_c1.y;
        }
    }
}
void triangle::set_a2(HWND hwnd, point n_a2){
    if (!reconwindow(hwnd, n_a2)) throw 1;
    else{
        a2.x = n_a2.x;
        a2.y = n_a2.y;
    }
}
void triangle::set_b2(HWND hwnd, point n_b2){
    if (!reconwindow(hwnd, n_b2)) throw 1;
    else{
        b2.x = n_b2.x;
        b2.y = n_b2.y;
    }
}
void triangle::set_c2(HWND hwnd, point n_c2){
    point pt[3];
    pt[0].x = a2.x;
    pt[0].y = a2.y;
    pt[1].x = b2.x;
    pt[1].y = b2.y;
    pt[2].x = n_c2.x;
    pt[2].y = n_c2.y;
    point ptt[6];
    ptt[0].x = a1.x;
    ptt[0].y = a1.y;
    ptt[1].x = b1.x;
    ptt[1].y = b1.y;
    ptt[2].x = c1.x;
    ptt[2].y = c1.y;
    ptt[3].x = a2.x;
    ptt[3].y = a2.y;
    ptt[4].x = b2.x;
    ptt[4].y = b2.y;
    ptt[5].x = n_c2.x;
    ptt[5].y = n_c2.y;
    if (!reconwindow(hwnd, n_c2)) throw 1;
    else{
        if (!checkpoint(pt)) throw 2;
        else{
            if (!checkencl(ptt)) throw 6;
            else{
                c2.x = n_c2.x;
                c2.y = n_c2.y;
            }
        }
    }
}
void triangle::set_type(int n_type){
    if ((n_type > 3) || (n_type < 1)) throw 3;
    else{
        type = n_type;
    }
}
void triangle::set_l_width1(int n_l_width1){
    if ((n_l_width1 < 1) || (n_l_width1 > 10)) throw 4;
    else l_width1 = n_l_width1;
}
void triangle::set_l_width2(int n_l_width2){
    if ((n_l_width2 < 1) || (n_l_width2 > 10)) throw 4;
    else l_width2 = n_l_width2;
}
void triangle::set_linecol(color n_linecol){
    if ((n_linecol.r > 255) || (n_linecol.r < 0) ||
        (n_linecol.g > 255) || (n_linecol.g < 0) ||
        (n_linecol.b > 255) || (n_linecol.b < 0)) throw 5;
    else{
        linecol.r = n_linecol.r;
        linecol.g = n_linecol.g;
        linecol.b = n_linecol.b;
    }
}
void triangle::set_introcol(color n_introcol){
    if ((n_introcol.r > 255) || (n_introcol.r < 0) ||
        (n_introcol.g > 255) || (n_introcol.g < 0) ||
        (n_introcol.b > 255) || (n_introcol.b < 0)) throw 5;
    else{
        introcol.r = n_introcol.r;
        introcol.g = n_introcol.g;
        introcol.b = n_introcol.b;
    }
}
 
 
void triangle::paint(HDC hdc){
    switch (type){
    case 1:{
               HPEN Pen1 = CreatePen(0, l_width1, RGB(linecol.r, linecol.g, linecol.b));
               HPEN hOldPen = SelectPen(hdc, Pen1);
               POINT ppt[4] = { { a1.x, a1.y }, { b1.x, b1.y }, { c1.x, c1.y }, { a1.x, a1.y } };
               Polyline(hdc, ppt, 4);
               SelectPen(hdc, hOldPen);
               DeletePen(Pen1);
               break; }
    case 2:{
               HPEN Pen1 = CreatePen(0, l_width1, RGB(linecol.r, linecol.g, linecol.b));
               HPEN hPen = SelectPen(hdc, Pen1);
               HBRUSH Brush1 = CreateSolidBrush(RGB(introcol.r, introcol.g, introcol.b));
               HBRUSH hBrush = SelectBrush(hdc, Brush1);
               POINT ppt1[4] = { { a1.x, a1.y }, { b1.x, b1.y }, { c1.x, c1.y }, { a1.x, a1.y } };
               Polygon(hdc, ppt1, 4);
               SelectBrush(hdc, hBrush);
               DeleteBrush(Brush1);
               SelectPen(hdc, hPen);
               DeletePen(Pen1);
               break; }
    case 3:{
               HPEN Pen1 = CreatePen(0, l_width1, RGB(linecol.r, linecol.g, linecol.b));
               HPEN Pen2 = CreatePen(0, l_width2, RGB(linecol.r, linecol.g, linecol.b));
               HPEN hPen = SelectPen(hdc, Pen1);
               HBRUSH Brush1 = CreateSolidBrush(RGB(introcol.r, introcol.g, introcol.b));
               HBRUSH Brush2 = GetStockBrush(BLACK_BRUSH);
               HBRUSH hBrush = SelectBrush(hdc, Brush1);
               POINT ppt1[4] = { { a1.x, a1.y }, { b1.x, b1.y }, { c1.x, c1.y }, { a1.x, a1.y } };
               POINT ppt2[4] = { { a2.x, a2.y }, { b2.x, b2.y }, { c2.x, c2.y }, { a2.x, a2.y } };
               Polygon(hdc, ppt1, 4);
               SelectBrush(hdc, hBrush);
               DeleteBrush(Brush1);
               SelectPen(hdc, hPen);
               DeletePen(Pen1);
               hPen = SelectPen(hdc, Pen2);
               hBrush = SelectBrush(hdc, Brush2);
               Polygon(hdc, ppt2, 4);
               SelectPen(hdc, hPen);
               DeletePen(Pen1);
               break; }
    }
}
void triangle::setfull(point *n_a1, point *n_b1, point *n_c1, point *n_a2, point *n_b2, point *n_c2, int *n_type, int *n_l_width1, int *n_l_width2, color *n_linecol, color *n_introcol){
    a1 = *n_a1;
    b1 = *n_b1;
    c1 = *n_c1;
    a2 = *n_a2;
    b2 = *n_b2;
    c2 = *n_c2;
    type = *n_type;
    l_width1 = *n_l_width1;
    l_width2 = *n_l_width2;
    linecol = *n_linecol;
    introcol = *n_introcol;
}
void triangle::getfull(point *n_a1, point *n_b1, point *n_c1, point *n_a2, point *n_b2, point *n_c2, int *n_type, int *n_l_width1, int *n_l_width2, color *n_linecol, color *n_introcol){
    *n_a1 = a1;
    *n_b1 = b1;
    *n_c1 = c1;
    *n_a2 = a2;
    *n_b2 = b2;
    *n_c2 = c2;
    *n_type = type;
    *n_l_width1 = l_width1;
    *n_l_width2 = l_width2;
    *n_linecol = linecol;
    *n_introcol = introcol;
}
void triangle::fload(FILE *F, HWND hwnd){
    if (F == NULL) throw 0;
    else{
        int a1x, a1y, b1x, b1y, c1x, c1y, a2x, a2y, b2x, b2y, c2x, c2y, t, lw1, lw2,
            lr, lg, lb, ir, ig, ib;
        point n_a1, n_b1, n_c1, n_a2, n_b2, n_c2;
        color line, intro;
        fscanf(F, "%i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i", &a1x, &a1y, &b1x, &b1y, &c1x, &c1y, &a2x, &a2y, &b2x, &b2y, &c2x, &c2y, &t, &lw1, &lw2, &lr, &lg, &lb, &ir, &ig, &ib);
        n_a1.x = a1x;
        n_a1.y = a1y;
        n_b1.x = b1x;
        n_b1.y = b1y;
        n_c1.x = c1x;
        n_c1.y = c1y;
        n_a2.x = a2x;
        n_a2.y = a2y;
        n_b2.x = b2x;
        n_b2.y = b2y;
        n_c2.x = c2x;
        n_c2.y = c2y;
        line.r = lr;
        line.g = lg;
        line.b = lb;
        intro.r = ir;
        intro.g = ig;
        intro.b = ib;
        set_a1(hwnd, n_a1);
        set_b1(hwnd, n_b1);
        set_c1(hwnd, n_c1);
        set_a2(hwnd, n_a2);
        set_b2(hwnd, n_b2);
        set_c2(hwnd, n_c2);
        set_linecol(line);
        set_introcol(intro);
        set_type(t);
        set_l_width1(lw1);
        set_l_width2(lw2);
    }
}
void triangle::fsave(FILE *F){
    if (F == NULL) throw 0;
    else{ fprintf(F, "%i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i", a1.x, a1.y, b1.x, b1.y, c1.x, c1.y, a2.x, a2.y, b2.x, b2.y, c2.x, c2.y, type, l_width1, l_width2, linecol.r, linecol.g, linecol.b, introcol.r, introcol.g, introcol.r); }
}
void triangle::numr(int *n){ *n = num; }
int triangle::reconwindow(HWND hwnd, point a){
    RECT rect;
    GetClientRect(hwnd, &rect);
    if ((a.x > 0) && (a.y > 0) && (a.x < rect.right) && (a.y < rect.bottom)) return 1;
    else return 0;
}
float triangle::init_point(point to[], int t1, int t2, int t3){
    float res;
    res = (to[t3].x - to[t1].x)*(to[t2].y - to[t1].y) - (to[t3].y - to[t1].y)*(to[t2].x - to[t1].x);
    return res;
}
int triangle::checkencl(point to[6]){
    if (((init_point(to, 0, 1, 3)<0) && (init_point(to, 0, 1, 4)<0) && (init_point(to, 0, 1, 5)<0) &&
        (init_point(to, 1, 2, 3)<0) && (init_point(to, 1, 2, 4)<0) && (init_point(to, 1, 2, 5)<0) &&
        (init_point(to, 2, 0, 3)<0) && (init_point(to, 2, 0, 4)<0) && (init_point(to, 2, 0, 5)<0)) ||
        ((init_point(to, 0, 1, 3)>0) && (init_point(to, 0, 1, 4)>0) && (init_point(to, 0, 1, 5)>0) &&
        (init_point(to, 1, 2, 3)>0) && (init_point(to, 1, 2, 4)>0) && (init_point(to, 1, 2, 5)>0) &&
        (init_point(to, 2, 0, 3)>0) && (init_point(to, 2, 0, 4)>0) && (init_point(to, 2, 0, 5)>0)))
        return 1; else return 0;
}
int triangle::checkpoint(point to[3]) { if (((to[1].x - to[0].x) * (to[2].y - to[0].y)) == ((to[1].y - to[0].y) * (to[2].x - to[0].x)))return 0; else return 1; }
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
15.11.2015, 14:02
Что такое VB?
0
15.11.2015, 14:03

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
Что такое VB?
Visual Basic C++

0
0 / 0 / 0
Регистрация: 13.12.2014
Сообщений: 8
15.11.2015, 14:04  [ТС]
triangle.h

Кликните здесь для просмотра всего текста
#ifndef TRIANGLE_H_
#define TRIANGLE_H_
#include <windows.h>
#include <windowsx.h>
#include <stdio.h>
#include <conio.h>
struct point{ int x; int y; };
struct color{ int r; int g; int b; };
class triangle{
private:
point a1, b1, c1, a2, b2, c2;
int type, l_width1, l_width2, num;
color linecol, introcol;
int reconwindow(HWND hwnd, point a);
float init_point(point to[], int t1, int t2, int t3);
int checkencl(point to[6]);
int checkpoint(point to[3]);
public:
void save2();
void load(char *fname, HWND hwnd);
void save(char *fname);
void move(HWND hwnd, int dir, int l);
void paint(HDC hdc);
inline point get_a1(){ return a1; }
inline point get_b1(){ return b1; }
inline point get_c1(){ return c1; }
inline point get_a2(){ return a2; }
inline point get_b2(){ return b2; }
inline point get_c2(){ return c2; }
inline int get_type(){ return type; }
inline int get_l_width1(){ return l_width1; }
inline int get_l_width2(){ return l_width2; }
inline color get_linecol(){ return linecol; }
inline color get_introcol(){ return introcol; }
void set_a1(HWND hwnd, point n_a1);
void set_b1(HWND hwnd, point n_b1);
void set_c1(HWND hwnd, point n_c1);
void set_a2(HWND hwnd, point n_a2);
void set_b2(HWND hwnd, point n_b2);
void set_c2(HWND hwnd, point n_c2);
void set_type(int n_type);
void set_l_width1(int n_l_width1);
void set_l_width2(int n_l_width2);
void set_linecol(color n_linecol);
void set_introcol(color n_introcol);
void setfull(point *n_a1, point *n_b1, point *n_c1, point *n_a2, point *n_b2, point *n_c2, int *n_type, int *n_l_width1, int *n_l_width2, color *n_linecol, color *n_introcol);
void getfull(point *n_a1, point *n_b1, point *n_c1, point *n_a2, point *n_b2, point *n_c2, int *n_type, int *n_l_width1, int *n_l_width2, color *n_linecol, color *n_introcol);
void fload(FILE *F, HWND hwnd);
void fsave(FILE *F);
void numr(int *n);
};

#endif
0
15.11.2015, 14:05

Не по теме:

rikimaru2013, я вот тоже теряюсь в догадках...

0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
15.11.2015, 14:09
Есть такая полезная штука, отладчик, называется
https://www.cyberforum.ru/cpp-... 62479.html
0
0 / 0 / 0
Регистрация: 13.12.2014
Сообщений: 8
15.11.2015, 14:17  [ТС]
я в курсе, как находить ошибку) просто при отладке Visual Studio начинает думать и в итоге ничего не происходит, приходится через диспетчер задач его закрывать

Добавлено через 1 минуту
Ой, VS, да, просто недавно помогал брату с VB, вот и опечатался
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
15.11.2015, 14:18
Выполняйте пошагово начиная с самой первой строки
0
0 / 0 / 0
Регистрация: 13.12.2014
Сообщений: 8
15.11.2015, 14:34  [ТС]
zss, да что-то вообще не то, пробую через f5 и через f11, итог отладчик пишет готово, но больше не подает признаков жизни и память загружает получше хрома
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
15.11.2015, 15:57
Поставьте останов на первую сточку кода в main
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.11.2015, 15:57
Помогаю со студенческими работами здесь

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

Ошибка этапа исполнения: double free or corruption (fasttop):
Доброе времени суток подскажите пожалуйста в чем может быть следующая проблема. Код который выводит программа приведен ниже. Сама...

Ошибка этапа исполнения при преобразовании символов в верхний регистр
Доброго времени суток, уважаемые пользователи CyberForum.ru! По какой то причине падает программа, прощу Вашей помощи :) void main()...

Не могу найти начала исполнения программы
Только только осваиваю python... Но вот не понятны мне некоторые вещи. Есть исполняемый файл bot.py, помимо него куча еще файлов. Вот...

Двумерный массив. Поиск нулей.Не могу найти ошибку ошибку в коде
Вот,например массив 5 5 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 считываются два числа m и n и далее в выходной...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru