Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 16
1

Код, написанный на Borland C++ не работает в Dev C++

14.01.2013, 18:17. Показов 2686. Ответов 16
Метки нет (Все метки)

программа на Си++
пользуюсь DEV-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
#include <conio.h>
#include <graphics.h>
#include <process.h>
#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
 
void solar(double k)
{
    setcolor(YELLOW);
    setfillstyle(1,YELLOW);
    fillellipse(90,50,30,30);
    if(k<1) 
    {
        line(130,50, 155,50);
        line(50,50, 25,50);
        line(90,90, 90,115);
        line(120,80, 135,95);
        line(60,20, 45,5);
        line(60,80, 45,95);
        line(120,20, 135,5);
        line(90,10, 90,2);
    }
    else
    {
        line(130,50, 165,50);
        line(50,50, 15,50);
        line(90,90, 90,125);
        line(120,80, 138,98);
        line(60,20, 42,2);
        line(60,80, 42,98);
        line(120,20, 138,2);
        line(90,10, 90,0);
    }
}
 
void nebo()
{
    setcolor(CYAN);
    setfillstyle(1,CYAN);
    bar(0,0,540,250);
}
 
void zemlya()
{
    setcolor(GREEN);
    setfillstyle(1,GREEN);
    bar(0,200,540,250);
    line(250,200, 539,140);
    line(539,140, 539,200);
    line(539,200, 250,200);
    floodfill(500,180,GREEN);
}
 
void flower(int x, int y, double r)
{
    setcolor(BROWN);
    setfillstyle(1,BROWN);
    line(x,y, x,y+20);
    fillellipse(x+5,y+10,5,3);
    fillellipse(x-5,y+12,5,2);
    setcolor(YELLOW);
    setfillstyle(1,YELLOW);
    fillellipse(x,y, r,r);
}
 
void oblako1(int x, int y)
{
    setcolor(WHITE);
    setfillstyle(1,WHITE);
    fillellipse(x,y, 40,25);
    fillellipse(x+30,y+20,30,15);
}
 
void oblako2(int x, int y)
{
    setcolor(WHITE);
    setfillstyle(1,WHITE);
    fillellipse(x,y, 40,25);
    fillellipse(x+20,y-20,30,15);
}
 
void water(int x, int y, int  r)
{
    setcolor(8);
    setfillstyle(1,8);
    fillellipse(x,y, r, r-30);
    setcolor(BLUE);
    setfillstyle(1,BLUE);
    fillellipse(x,y, r-2, r-32);
}
 
 
void zmeya(int x,int y)
{
    setcolor(8);
    setfillstyle(1,8);
    bar(x,y, x+60,y-10);
}
 
int main()
{
    char ch;
    printf("\n ‚ўҐ¤ЁвҐ бЄ®а®бвм §¬Ґ©ЄЁ(1/2)\n>");
    ch = getch();
    if(ch==49)  ch = 3;
    else        ch = 6;
    double x, y, i, j, k, h;
 
    int gdriver = VGA, gmode = VGAMED, errorcode;
    initgraph(&gdriver, &gmode, "C:\Borland\BORLANDC\BGI" );
 
    errorcode = graphresult();
    if (errorcode != grOk)
    {
        printf("Graphics error: %s\n", grapherrormsg(errorcode));
        printf("Press any key to halt:");
        getch();
        exit(1);
    }
 
    x = 5;
    y = 203;    //начальные координаты змейки
 
    setviewport(50, 50, getmaxx()-50, getmaxy()-50, 1);
 
    i=0;
    j=0;
    k=0;
 
    while(!kbhit()) // пока не нажата кнопка любая
    {
        if(i == 1)  i=0;    //смена активной страницы
        else        i=1;
        setactivepage(i);
        clearviewport();
        nebo();
        zemlya();
        solar(k);
        if(k<=1)
             k = k + 0.3;
        else k = 0;
 
        oblako1(100+j,50);oblako2(250+j+0.5,60);
        oblako2(10+j+0.7,30) ;oblako1(380+j+0.3,30);
        oblako1(520+j+0.2,20);
 
        j = j+0.5;
 
        if(x<190)
        {   zmeya(x,y);
            x += ch;
 
            goto f1;
        }
 
        if(x>=190 && x<250) //змейка рисуется на прямой
        {
            //x = 250;
 
            setcolor(8);
            setfillstyle(1,8);
 
            line(x,y, x+59,y-3);
            line(x+59,y-3, x+59,y-3-10);
            line(x+59,y-3-10, x,y-10);
            line(x,y-10, x,y);
            floodfill(x+30,y-5,8);
            //if(x>)
 
            x += ch-1;
            y -= 0.08;
 
            goto f1;
            //delay(1500);
        }
 
        if(x>=250 && x<539) //змейка рисуется на подъеме
        {
            setcolor(8);
            setfillstyle(1,8);
 
            line(x,y, x+59,y-12);
            line(x+59,y-12, x+59,y-12-10);
            line(x+59,y-12-10, x,y-10);
            line(x,y-10, x,y);
            floodfill(x+5,y-5,8);
 
            x += 1;
            y -= 0.2;
        }
if(x>439)goto exit;        //останавливаем змейку
 
f1:     flower( 40,205,5+h);flower(100,215,5+h);
        flower( 80,205,5+h);flower( 80,230,5+h);
        flower(450,230,5+h);flower(500,220,5+h);
        flower(300,180,5+h);flower(260,175,5+h);
        flower(350,190,5+h);
        if(h<1)
             h = h + 0.3;
        else h = 0;
 
        water(420,195,50);
        
        setvisualpage(i);
    }
exit:
getch();
    closegraph();
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2013, 18:17
Ответы с готовыми решениями:

Написал код в Full Debug, потом переделал в Release - и написанный код не работает
Кто сталкивался с проблемой, написал код в Full Debug потом переделал в Release и написанный код не...

Код, написанный на ABC, не работает в Turbo
Ребят скажите в чем может быть проблема. Писал долго и упорно калькулятор на pascal ABC. В нем все...

Не работает написанный JavaScript код в Google Chrome
JavaScript код не работает в Google Chrome, а во всех остальных браузерах все нормально работает....

Не работает код программы, написанный в другой версии Паскаля
Подскажите пожалуйста, почему код не работает в турбо паскале? program graph_paskal; Uses ...

16
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
14.01.2013, 18:27 2
Так это ж устаревшие функции.. Используйте WinAPI, если на C++..
p.s Теги оформления смените. Да и программка не до конца

Добавлено через 6 минут
Упустил то, что код для dev-cpp.. Тогда не знаю. Может у вас там и правда используются такие функции для рисования..
0
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 16
14.01.2013, 18:48  [ТС] 3
Дело в том что программа написана на Borlande и работала
а теперь не могу открыть ее в Dev-Cpp
не могу найти проблему

Добавлено через 18 минут
выдает ошибки

Кликните здесь для просмотра всего текста

Код
C:\Users\сергей\Downloads\5 (1).cpp: In function `void flower(int, int, double)':
C:\Users\сергей\Downloads\5 (1).cpp:64: warning: passing `double' for converting 3 of `void fillellipse(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:64: warning: passing `double' for converting 4 of `void fillellipse(int, int, int, int)'

C:\Users\сергей\Downloads\5 (1).cpp:111:30: warning: unknown escape sequence '\B'
C:\Users\сергей\Downloads\5 (1).cpp:111:30: warning: unknown escape sequence '\B'
C:\Users\сергей\Downloads\5 (1).cpp:111:30: warning: unknown escape sequence '\B'
C:\Users\сергей\Downloads\5 (1).cpp: In function `int main()':
C:\Users\сергей\Downloads\5 (1).cpp:135: warning: passing `double' for converting 1 of `void setactivepage(int)'

C:\Users\сергей\Downloads\5 (1).cpp:144: warning: passing `double' for converting 1 of `void oblako1(int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:144: warning: passing `double' for converting 1 of `void oblako2(int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:145: warning: passing `double' for converting 1 of `void oblako2(int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:145: warning: passing `double' for converting 1 of `void oblako1(int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:146: warning: passing `double' for converting 1 of `void oblako1(int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:151: warning: passing `double' for converting 1 of `void zmeya(int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:151: warning: passing `double' for converting 2 of `void zmeya(int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:164: warning: passing `double' for converting 1 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:164: warning: passing `double' for converting 2 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:164: warning: passing `double' for converting 3 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:164: warning: passing `double' for converting 4 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:165: warning: passing `double' for converting 1 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:165: warning: passing `double' for converting 2 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:165: warning: passing `double' for converting 3 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:165: warning: passing `double' for converting 4 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:166: warning: passing `double' for converting 1 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:166: warning: passing `double' for converting 2 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:166: warning: passing `double' for converting 3 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:166: warning: passing `double' for converting 4 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:167: warning: passing `double' for converting 1 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:167: warning: passing `double' for converting 2 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:167: warning: passing `double' for converting 3 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:167: warning: passing `double' for converting 4 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:168: warning: passing `double' for converting 1 of `void floodfill(int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:168: warning: passing `double' for converting 2 of `void floodfill(int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:183: warning: passing `double' for converting 1 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:183: warning: passing `double' for converting 2 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:183: warning: passing `double' for converting 3 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:183: warning: passing `double' for converting 4 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:184: warning: passing `double' for converting 1 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:184: warning: passing `double' for converting 2 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:184: warning: passing `double' for converting 3 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:184: warning: passing `double' for converting 4 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:185: warning: passing `double' for converting 1 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:185: warning: passing `double' for converting 2 of `void line(int, int, int, int)'

C:\Users\сергей\Downloads\5 (1).cpp:185: warning: passing `double' for converting 3 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:185: warning: passing `double' for converting 4 of `void line(int, int, int, int)'

C:\Users\сергей\Downloads\5 (1).cpp:186: warning: passing `double' for converting 1 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:186: warning: passing `double' for converting 2 of `void line(int, int, int, int)'

C:\Users\сергей\Downloads\5 (1).cpp:186: warning: passing `double' for converting 3 of `void line(int, int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:186: warning: passing `double' for converting 4 of `void line(int, int, int, int)'

C:\Users\сергей\Downloads\5 (1).cpp:187: warning: passing `double' for converting 1 of `void floodfill(int, int, int)'
C:\Users\сергей\Downloads\5 (1).cpp:187: warning: passing `double' for converting 2 of `void floodfill(int, int, int)'

C:\Users\сергей\Downloads\5 (1).cpp:205: warning: passing `double' for converting 1 of `void setvisualpage(int)'
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
14.01.2013, 19:00 4
Ну это не ошибки, а предупреждения. Хотя их, насколько я могу судить, можно игнорировать.
0
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 16
14.01.2013, 19:18  [ТС] 5
игнорировать то можно
вот только прога не компилится
0
4295 / 1417 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
14.01.2013, 19:26 6
Я б сказал, что она не компилируется только потому, что там используется библиотека graphics. Такая есть в borland c++ 3.1 (или что-то вроде). Там довольно старый компилятор. C/C++ вообще как бы не предназначались для рисования в консоли.
0
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 16
14.01.2013, 19:36  [ТС] 7
да я понимаю но по лабораторной я должен написать именно на С++
0
погромист
413 / 249 / 30
Регистрация: 27.08.2012
Сообщений: 550
14.01.2013, 20:46 8
Вот, эмулятор BGI графики под винду MinGW + Graphics.h It's work)
1
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 16
14.01.2013, 21:35  [ТС] 9
пробовал не помогло
0
Don't worry, be happy
17143 / 10026 / 1933
Регистрация: 27.09.2012
Сообщений: 24,956
Записей в блоге: 1
14.01.2013, 21:38 10
Цитата Сообщение от grey6 Посмотреть сообщение
я должен написать именно на С++
тогда зачем Си'шные хедеры и функции?

Цитата Сообщение от grey6 Посмотреть сообщение
пробовал не помогло
делайте на API и всё!
0
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 16
14.01.2013, 22:16  [ТС] 11
вопрос могу ли я исправить эту программу что бы она заработала?

Добавлено через 1 минуту
можно ли исправить эту программу что бы она заработала и как это сделать
0
погромист
413 / 249 / 30
Регистрация: 27.08.2012
Сообщений: 550
14.01.2013, 22:52 12
Все нормально компилируется, у меня тоже DevC++, просто сделайте операции приведения типов. (функции graphic.h принимают значение int а не double)
0
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 16
14.01.2013, 23:43  [ТС] 13
простите но я не понимаю можно как для тупых объяснить

Добавлено через 1 минуту
везде double поменять на int?
0
погромист
413 / 249 / 30
Регистрация: 27.08.2012
Сообщений: 550
14.01.2013, 23:45 14
можно просто поменять а можно например
C++
1
fillellipse((int)x,(int)y, (int)r,(int)r); //аргументы функции fillellipse int
0
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 16
14.01.2013, 23:54  [ТС] 15
я так тоже делал и у меня не компилиться
0
1 / 1 / 2
Регистрация: 12.01.2013
Сообщений: 45
15.01.2013, 00:24 16
1.Не понимаю почему вам лабы надо выполнить в Dev C++. Ведь Borland C++ это тоже будет язык С++ просто разная среда разработки
2.Как я знаю вроде))) программный код немного меняется в зависимости от того в какой среде программировать
0
Эксперт С++
8372 / 6108 / 613
Регистрация: 10.12.2010
Сообщений: 28,516
Записей в блоге: 30
15.01.2013, 00:28 17
Все проблемы от graphics.h ...
( она то и на современном Builder тоже не пойдет )

Добавлено через 1 минуту
Цитата Сообщение от НиколайСД Посмотреть сообщение
2.Как я знаю вроде))) программный код меняется в зависимости от того в какой среде программировать
Теоретически нет, т.е. можно использовать переносимые конструкции... но это теоретически...
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2013, 00:28

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Код написан в Dev C. Не работает в Visual. Как нужно переделать код?
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт...

Код для консоли, написанный в RAD XE7, не работает на VS2013
Программа создает односвязный список структур. Данные в структуру считываются из текстового файла....

Почему код, написанный на С++, в разы быстрее работает с большим объемом памяти, чем с маленьким?
Привет! Понадобилось мне сравнить скорость работы идентичных алгоритмов на Fortran и C++. Алгоритм...

В Dev-C++ код не работает
Здравствуйте! Помогите пожалуйста c кодом, в консоле всё идёт, но работу надо сдавать в Dev-c++, но...


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

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

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