Форум программистов, компьютерный форум, киберфорум
Наши страницы

Turbo Pascal

Войти
Регистрация
Восстановить пароль
 
олька вредина
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 16
#1

процедуры и функции модуля GRAPH - Turbo Pascal

16.04.2012, 17:03. Просмотров 1074. Ответов 13
Метки нет (Все метки)

помогите, пожалуйста. есть программа, но она не работает, можете посмотреть и по возможности исправить.

Составьте программу вывода на экран стилизированного велосипедиста.
При нажатии клавиши Enter он начинает движение, вращая ногами педали.

Pascal
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
unit myunit;
interface
uses
    GraphABC, crt;
var
   kod: char;
   i: boolean;
   r: byte;
   x1, y1, x2, y2, j: integer;
procedure Main (kod: char; var i: boolean; var r: byte; var x1, x2, y1, y2: integer);
procedure Ground (i: boolean);
procedure Stop (i: boolean);
procedure Go (i: boolean; j: integer);
procedure Koleso1 (i: boolean; j: integer; var x1, y1: integer; r: byte);
procedure Koleso2 (i: boolean; j: integer; var x2, y2: integer; r: byte);
procedure Rama (i: boolean);
procedure Telo (i: boolean);
procedure Nogi (i: boolean; j: integer);
implementation
procedure Main(kod: char; var i: boolean; var r: byte; var x1, x2, y1, y2: integer);
begin
     x1:=250;
     x2:=400;
     y1:=310;
     y2:=310;
     r:=40;
     Ground (i);
     Stop (i);
     while kod<>#13 do
           begin
                i:=false;
                writeln ('для начала движения нажмите Enter'); {отриковка стоящего велосипеда}
                kod:=readkey;
           end;
     i:=true;
     Go (i, j);   {начать движение}
end;
procedure Ground (i: boolean);
begin
     Line (0, 350, 640, 350);
end;
procedure Stop (i: boolean);
begin
     Koleso1(i, j, x1, y1, r);
     Koleso2 (i, j, x2, y2, r);
     Rama (i);
     Telo (i);
     Nogi (i, j);
end;
procedure Go (i: boolean; j: integer);
begin
     for j:=1 to 1000 do
         begin
              Rama (i);
              Telo (i);
              Nogi (i, j);
              Koleso1(i, j, x1, y1, r);
              Koleso2 (i, j, x2, y2, r);
              delay (300);
         end;
end;
procedure Koleso1 (i: boolean; j: integer; var x1, y1: integer; r: byte);
begin
     if i=false then
        begin
             Circle (x1, y1, r);
             pie (x1, y1, r, 0, 30);
             pie (x1, y1, r, 60, 90);
             pie (x1, y1, r, 120, 150);
             pie (x1, y1, r, 180, 210);
             pie (x1, y1, r, 240, 270);
             pie (x1, y1, r, 300, 330);
        end
     else
         if j mod 2<>0 then
            begin
              FillRect (x1-r, y1-r, x1+r, y1+r);
              Circle (x1, y1, r);
              SetPenColor (black);
              pie (x1, y1, r, 15, 45);
              pie (x1, y1, r, 75, 105);
              pie (x1, y1, r, 135, 165);
              pie (x1, y1, r, 195, 225);
              pie (x1, y1, r, 255, 285);
              pie (x1, y1, r, 315, 345);
            end
         else
             begin
                FillRect (x1-r, y1-r, x1+r, y1+r);
                Circle (x1, y1, r);
                SetPenColor (black);
                pie (x1, y1, r, 0, 30);
                pie (x1, y1, r, 60, 90);
                pie (x1, y1, r, 120, 150);
                pie (x1, y1, r, 180, 210);
                pie (x1, y1, r, 240, 270);
                pie (x1, y1, r, 300, 330);
             end;
end;
procedure Koleso2 (i: boolean; j: integer; var x2, y2: integer; r: byte);
begin
     if i=false then
        begin
             Circle (x2, y2, r);
             pie (x2, y2, r, 0, 30);
             pie (x2, y2, r, 60, 90);
             pie (x2, y2, r, 120, 150);
             pie (x2, y2, r, 180, 210);
             pie (x2, y2, r, 240, 270);
             pie (x2, y2, r, 300, 330);
        end
     else
         if j mod 2<>0 then
            begin
              FillRect (x2-r, y2-r, x2+r, y2+r);
              Circle (x2, y2, r);
              SetPenColor (black);
              pie (x2, y2, r, 15, 45);
              pie (x2, y2, r, 75, 105);
              pie (x2, y2, r, 135, 165);
              pie (x2, y2, r, 195, 225);
              pie (x2, y2, r, 255, 285);
              pie (x2, y2, r, 315, 345);
            end
         else
             begin
                FillRect (x2-r, y2-r, x2+r, y2+r);
                Circle (x2, y2, r);
                SetPenColor (black);
                pie (x2, y2, r, 0, 30);
                pie (x2, y2, r, 60, 90);
                pie (x2, y2, r, 120, 150);
                pie (x2, y2, r, 180, 210);
                pie (x2, y2, r, 240, 270);
                pie (x2, y2, r, 300, 330);
             end;
end;
procedure Rama (i: boolean);
begin
     Line (250, 240, 380, 250);
     Line (250, 240, 325, 310);
     Line (380, 250, 325, 310);
     Line (250, 310, 250, 240);
     Line (250, 240, 240, 230);
end;
procedure Telo (i: boolean);
begin
     Line (290, 180, 370, 240);
     Line (290, 180, 280, 220);
     Line (280, 220, 240, 230);
     Circle (290, 160, 20);
end;
procedure Nogi (i: boolean; j: integer);
begin
     if i=false then
        begin
             Line (370, 240, 310, 250);
             Line (310, 250, 330, 290);
             Line (330, 290, 315, 290);
             Line (325, 290, 325, 330);
             Line (370, 240, 330, 330);
             Line (330, 330, 320, 330);
        end
     else
         if j mod 2<>0 then
            begin
                 FillRect (240, 240, 380, 330);
                 Line (370, 240, 310, 250);
                 Line (310, 250, 330, 290);
                 Line (330, 290, 315, 290);
                 Line (325, 290, 325, 330);
                 Line (370, 240, 330, 330);
                 Line (330, 330, 320, 330);
                 Line (250, 240, 380, 250);
                 Line (250, 240, 325, 310);
                 Line (380, 250, 325, 310);
                 Line (250, 310, 250, 240);
                 Line (250, 240, 240, 230);
            end
         else
             begin
                  FillRect (240, 240, 380, 340);
                  Line (370, 240, 305, 310);
                  Line (305, 310, 295, 310);
                  Line (370, 240, 330, 275);
                  Line (330, 275, 340, 310);
                  Line (340, 310, 330, 310);
                  Line (305, 310, 340, 310);
                  Line (250, 240, 380, 250);
                  Line (250, 240, 325, 310);
                  Line (380, 250, 325, 310);
                  Line (250, 310, 250, 240);
                  Line (250, 240, 240, 230);
             end;
end;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2012, 17:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос процедуры и функции модуля GRAPH (Turbo Pascal):

Процедуры и функции модуля GRAPH - Turbo Pascal
Составьте программу вывода на экран стилизованной бабочки. При нажатии клавиши Enter она начинает полет, взмахивая крыльями.

Процедуры и функции модуля graph - Turbo Pascal
Нарисовать флаг Финляндии

Процедуры и функции модуля GRAPH. Составить программу вывода на экран стилизованного "человека" - Turbo Pascal
Составить программу вывода на экран стилизованного &quot;человека&quot;. При нажатии клавиши &quot;Ввод&quot; человек начинает идти, размахивая в такт...

Процедуры и функции модуля CRT - Turbo Pascal
Составьте программу вывода на экран горизонтального меню, состоящего из четырех пунктов и Выход. Название пунктов считывайте из файла при...

Процедуры и функции. Создание пользовательского модуля - Turbo Pascal
Вычислить Z = (Xm1 + Xm2)/2, где Xm1 и Xm2 – наименьшие элементы массивов X1(50) и X2(50) соответственно. помогите пожалуйста.

Составить программу, вызывающую процедуры и функции созданного модуля - Turbo Pascal
Составить программу, вызывающую процедуры и функции созданного модуля. Пользоваться информацией из файла «Стандартные функции и...

13
Sturmf
0 / 0 / 0
Регистрация: 05.11.2011
Сообщений: 11
16.04.2012, 17:13 #2
Как вариант, просто велосипед.
Pascal
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
uses Graph,crt;
 
var
  grDriver : Integer;
  grMode   : Integer;
  ErrCode  : Integer;
 procedure mal;
    var x:integer;
  begin
 repeat
setcolor(15);
 {zadni kolesa}
circle(0+x,150,30);
circle(0+x,150,23);
{peredni kolesa}
circle(130+x,150,30);
circle(130+x,150,23);
{kriplenia do pedaliv}
line(0+x,150,80+x,150);
{pohula}
line(70+x,150,120+x,110);
{rama}
line(120+x,110,10+x,110);
{pohula}
line(10+x,110,70+x,150);
{do kolesa}
line(0+x,150,10+x,110);
{pedali kr}
circle(0+x,150,5);
circle(70+x,150,10);
{pedal}
line(70+x,150,70+x,170);
line(65+x,170,75+x,170);
{cep}
line(0+x,145,70+x,140);
line(0+x,155,70+x,160);
{do kolesa}
line(130+x,150,120+x,110);
{pedali}
line(120+x,110,120+x,78);
line(120+x,78,100+x,88);
line(10+x,110,10+x,100);
{/}
line(0+x,100,30+x,100);
line(70+x,150,70+x,130);
line(65+x,130,75+x,130);
 
settextstyle(3,0,4);
delay(40);
 
setcolor(1);
circle(0+x,150,30);
circle(0+x,150,23);
circle(130+x,150,30);
circle(130+x,150,23);
line(0+x,150,80+x,250);
line(70+x,150,120+x,110);
line(120+x,110,10+x,110);
line(10+x,110,70+x,150);
line(0+x,150,10+x,110);
circle(0+x,150,5);
circle(70+x,150,10);
line(70+x,150,70+x,170);
line(65+x,170,75+x,170);
line(0+x,145,70+x,140);
line(0+x,155,70+x,160);
line(130+x,150,120+x,110);
line(120+x,110,120+x,78);
line(120+x,78,100+x,88);
line(10+x,110,10+x,100);
line(0+x,100,30+x,100) ;
line(70+x,150,70+x,130);
line(65+x,130,75+x,130);
settextstyle(3,0,4);
if x>649 then x:=10;
 x:=x+1;
until keypressed;
end;
 
begin
 
  grDriver := Detect;
  InitGraph(grDriver, grMode, 'X:\BP');
  ErrCode := GraphResult;
  if ErrCode = grOk then
  begin
   setbkcolor(1);
mal;
    ReadLn;
    CloseGraph;
  End
else WriteLn('ошибка’) GraphErrorMsg(ErrCode));
end.
0
олька вредина
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 16
16.04.2012, 17:30  [ТС] #3
а не подскажите что делать, пишет что GRAPH не найден???
0
Kodzaev
3002 / 1891 / 611
Регистрация: 30.04.2011
Сообщений: 3,054
16.04.2012, 17:53 #4
Добавлено через 35 секунд
Цитата Сообщение от олька вредина Посмотреть сообщение
а не подскажите что делать, пишет что GRAPH не найден???
Если вы пишете в PascalABC, то вместо Graph напишите GraphABC
1
олька вредина
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 16
16.04.2012, 18:02  [ТС] #5
А если в турбо паскале????
0
Pacan1
50 / 50 / 13
Регистрация: 06.12.2011
Сообщений: 231
16.04.2012, 18:21 #6
Цитата Сообщение от олька вредина Посмотреть сообщение
А если в турбо паскале????
вот этот файл кинь в папку с программой и вроде еще надо кинуть в папку с самим кодом программы
0
Вложения
Тип файла: rar GRAPH.rar (15.6 Кб, 16 просмотров)
олька вредина
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 16
16.04.2012, 18:26  [ТС] #7
это не открывается))))
0
Pacan1
50 / 50 / 13
Регистрация: 06.12.2011
Сообщений: 231
16.04.2012, 18:28 #8
Цитата Сообщение от олька вредина Посмотреть сообщение
это не открывается))))
Всмысле не открывается? Может у тебя архиватора нету?)
0
олька вредина
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 16
16.04.2012, 18:35  [ТС] #9
сжатая zip папка имеет другой формат)))
0
Kodzaev
3002 / 1891 / 611
Регистрация: 30.04.2011
Сообщений: 3,054
16.04.2012, 19:12 #10
Скачать Турбо Паскаль можно тут
Скачать Паскаль
А архиватор в нете поищите, если нету у вас (7zip, WinRAR)
0
олька вредина
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 16
16.04.2012, 19:21  [ТС] #11
архиватор есть, турбо паскаль тоже есть. но это не открывается)))) что сделать?,
0
Kodzaev
3002 / 1891 / 611
Регистрация: 30.04.2011
Сообщений: 3,054
16.04.2012, 19:42 #12
Sturmf немного ошибся. В 93 строчке забыл апостроф, поэтому не запускается
Цитата Сообщение от Sturmf Посмотреть сообщение
else WriteLn('ошибка’) GraphErrorMsg(ErrCode)');
1
олька вредина
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 16
16.04.2012, 19:53  [ТС] #13
а что с эти GRAPH, все ровно пишет, что не найден...
0
Kodzaev
3002 / 1891 / 611
Регистрация: 30.04.2011
Сообщений: 3,054
16.04.2012, 22:30 #14
У вас нету модуля GRAPH. Скачайте паскаль по ссылке, которую я давал ранее
1
16.04.2012, 22:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2012, 22:30
Привет! Вот еще темы с ответами:

Составить программу, вызывающую процедуры и функции созданного модуля. - Turbo Pascal
Составить программу, вызывающую процедуры и функции созданного модуля. Разработать библиотечный модуль программы program...

Составить программу, вызывающую процедуры и функции созданного модуля. - Turbo Pascal
Подскажите пожалуйста, как разработать библиотечный модуль. program abc; uses crt; var num:integer; recieve:char; function...

Составить программу, вызывающую процедуры и функции созданного модуля. - Turbo Pascal
Разработать библиотечный модуль program fds; var j,l:string;{peremenna9 tipa stroka} a,b,c,k:array of integer;{obi9vlenie...

Разработать библиотечный модуль вызывающую процедуры и функции созданного модуля - Turbo Pascal
Разработать библиотечный модуль вызывающую процедуры и функции созданного модуля. Пользоваться информацией из файла «Стандартные функции и...


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

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

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