С Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/39: Рейтинг темы: голосов - 39, средняя оценка - 4.79
 Аватар для Dimonick
2210 / 755 / 208
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2

Составить программу изображения движущегося объекта

22.03.2012, 21:55. Показов 7895. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить программу изображения движущегося объекта. Предусмотреть звуковые эффекты во время выполнения программы.

Спуск лыжника с горы
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
uses crt, graph;
var driver, mode : integer;                   
begin 
   driver:= detect;                                  
   initgraph (driver, mode, '');               
   if graphresult <> 0 then 
      begin 
      writeln('графічний режим задати не вдалося'); 
      halt                                                 {Стоп} 
      end; 
 
line (13, 25, 14, 75)
 
end.
Кто доработает?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2012, 21:55
Ответы с готовыми решениями:

Формирование движущегося изображения
Помогите пожалуйста,разработать программу для формирования движущегося изображения которая должна: 1. использовать модуль с процедурами...

Преобразование движущегося графического изображения
Создайте программу преобразования движущегося графического изображения сектора из позитивной формы (серым цветом на синем фоне) в...

Прорисовка движущегося объекта
Я в этом деле новичок,и возможно для вас проблемы будут глупыми,но я сам справиться не могу.. У меня возникла проблема.. нарисовав...

14
 Аватар для Takeshi80
17 / 15 / 10
Регистрация: 08.03.2012
Сообщений: 126
23.03.2012, 02:35
От балды набросал, как-то так получилось:
Delphi
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
uses Crt, graph;
var i,driver,mode,y1,y2,x1,x2,x3,x4,y3,y4:integer;
begin
y1:=25; y2:=75;
x1:=13; x2:=15;
x3:=39; y3:=25;
x4:=35; y4:=75;
driver:=detect;
initgraph(driver,mode,'');
if graphresult<>0 then
begin
writeln('ne wislo');
halt
end;
line(13,25,15,75);
line(39,25,35,75);
for i:=1 to 10 do
begin
line(x1,y1+60,x2,y2+60);
line(x3,y3+60,x4,y4+60);
y1:=y1+60; y2:=y2+60;
y3:=y3+60; y4:=y4+60;
end;
readln;
end.
Можно сделать намного проще, просто ночь, думать не хочется)
0
 Аватар для Dimonick
2210 / 755 / 208
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
23.03.2012, 11:53  [ТС]
трохи не то
0
 Аватар для Takeshi80
17 / 15 / 10
Регистрация: 08.03.2012
Сообщений: 126
23.03.2012, 18:49
Что именно не устраивает?)
Надо сделать чтобы движения лыжника менялись с каждым шагом? или должна быть одна, точнее, две, кривых линих: траектории его движения?
0
 Аватар для Dimonick
2210 / 755 / 208
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
24.03.2012, 16:50  [ТС]
Главное чтобы был человечек на лыжах, который спучкаеться с горы, тоисть гора изображена в виде двух линий (это дорога) и между этими двумя линиями спускается лыжник слева направо вниз

здесь только с права на лево:




Добавлено через 20 часов 55 минут
ребята, очень нужно решить.
0
 Аватар для Dimonick
2210 / 755 / 208
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
25.03.2012, 19:36  [ТС]
фону не должно бить, проста прога
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
25.03.2012, 20:20
Без звуковых эфектов. Просто лыжник

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
uses Crt, graph;
var i,driver,mode,y1,y2,x1,x2,x3,x4,y3,y4:integer;
 
          Type
           TPoint=Record
            x:Integer;
            y:Integer;
           end;
           Doroga1=Record
           x1,x2,y1,y2:integer;
          end;
           Doroga2=Record
           x1,x2,y1,y2:Integer;
          end;
           TLiznik1=Record
             Golova:TPoint;
             R:Integer;
             Tulo:Doroga1;
             Ruka1,Ruka2:Doroga1;
             Noga1,Noga2:Doroga1;
             Liza1,Liza2:TPoint;
          end;
 
 
 
 
     Var  Sklon1:Doroga1;
          Sklon2:Doroga2;
          Golova:TPoint;
 
          Liznik:TLiznik1;
 
          procedure GetLizi;
           Var
             a,b,c:Integer;
             l1:Integer;  
             l2:Integer;   
          Begin
              l1:=20;
              l2:=7;
 
              Line(Liznik.Noga1.x2-l1+5,Liznik.Noga1.y2-l2,Liznik.Noga1.x2+l1+15,Liznik.Noga1.y2+l2);
              Line(Liznik.Noga2.x2-l1+5,Liznik.Noga2.y2-l2,Liznik.Noga2.x2+l1+15,Liznik.Noga2.y2+l2);
 
 
          end;
 
          procedure Liznik_edet(sdvigX,sdvig2:Integer);
           var ii:Integer;
          Begin
 
 
            sdvigX:=sdvigX+5;
            sdvig2:=sdvig2+5;
            Golova.X:=SdvigX;
            Golova.Y:=Sdvig2;
 
          end;
 
          procedure Liznik_One;
          Var ii:Integer;
          Begin
 
 
              Circle(Liznik.Golova.x,Liznik.Golova.y-Liznik.R,Liznik.R);
 
              With Liznik.Tulo do Begin
                x1:=Liznik.Golova.X;
                y1:=Liznik.Golova.y;
                x2:=Liznik.Golova.x-30;
                y2:=Liznik.Golova.y+30;
                Line(x1-10,y1,x2,y2);
              end;
 
              With Liznik.Ruka1 do Begin
                x1:=Liznik.Tulo.x1-10;
                y1:=Liznik.Tulo.y1;
                x2:=Liznik.Tulo.X1-45;
                y2:=Liznik.Tulo.Y1;
                Line(x1,y1,x2,y2);
              end;
 
              With Liznik.Ruka2 do Begin
                x1:=Liznik.Ruka1.x1;
                y1:=Liznik.Ruka1.y1;
                x2:=Liznik.Ruka1.x2+5;
                y2:=Liznik.Ruka1.y2-30;
                Line(x1,y1,x2,y2);
              end;
 
              With Liznik.Noga1 do Begin
                  x1:=Liznik.Tulo.x2;
                  y1:=Liznik.Tulo.y2;
                  x2:=x1-30;
                  y2:=y1+20;
                  Line(x1,y1,x2,y2);
              end;
 
              With Liznik.Noga2 do Begin
                  x1:=Liznik.Noga1.x1;
                  y1:=Liznik.Noga1.y1;
                  x2:=x1+5;
                  y2:=Liznik.Noga1.y2+20;
                  Line(x1,y1,x2,y2);
              end;
 
              GetLizi;
 
 
 
                   Liznik_edet(Liznik.Golova.X,Liznik.Golova.Y);
 
 
          end;
 
 procedure Gora;
  const
      Nakl1=50;
      Nakl2=100;
 Begin
      Sklon1.x1:=20;   Sklon2.x1:=Sklon1.x1+Nakl1;
      Sklon1.y1:=300;  Sklon2.y1:=Sklon1.y1-Nakl2;
      Sklon1.x2:=700;  Sklon2.x2:=Sklon1.x2+Nakl1;
      Sklon1.y2:=500;  Sklon2.y2:=Sklon1.y2-Nakl2;
 
      Line(Sklon1.x1,Sklon1.y1,Sklon1.x2,Sklon1.y2);
      Line(Sklon2.x1,Sklon2.y1,Sklon2.x2,Sklon2.y2);
 end;
 
 var ii:Integer;
 
 
 
begin
 
  driver:=detect;
    initgraph(driver,mode,'');
     if graphresult<>0 then
       begin
        writeln('ne wislo');
        halt
     end;
       Gora;
 
 
 
       i:=0;
 
       Liznik.Golova.x:=Sklon2.x1+Liznik.Golova.x*5;
              Liznik.Golova.y:=Sklon2.y1;
              Liznik.R:=15;
 
 
     for ii:=0 to 50 do Begin
       Liznik_One;
       Liznik.Golova.y:=Liznik.Golova.y+3;
       Liznik.Golova.x:=Liznik.Golova.x+10;
       delay(100);
       ClearDevice;
       Gora;
     end;
 
 
 
readln;
end.
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
25.03.2012, 20:29
Я надеюсь вы знаете, что записи тут использованы не совсем корректно?
Pascal
1
2
3
4
5
6
   Doroga1=Record
           x1,x2,y1,y2:integer;
          end;
           Doroga2=Record
           x1,x2,y1,y2:Integer;
          end;
Ржал ^

Цитата Сообщение от daslex Посмотреть сообщение
Без звуковых эфектов. Просто лыжник

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
uses Crt, graph;
var i,driver,mode,y1,y2,x1,x2,x3,x4,y3,y4:integer;
 
          Type
           TPoint=Record
            x:Integer;
            y:Integer;
           end;
           Doroga1=Record
           x1,x2,y1,y2:integer;
          end;
           Doroga2=Record
           x1,x2,y1,y2:Integer;
          end;
           TLiznik1=Record
             Golova:TPoint;
             R:Integer;
             Tulo:Doroga1;
             Ruka1,Ruka2:Doroga1;
             Noga1,Noga2:Doroga1;
             Liza1,Liza2:TPoint;
          end;
 
 
 
 
     Var  Sklon1:Doroga1;
          Sklon2:Doroga2;
          Golova:TPoint;
 
          Liznik:TLiznik1;
 
          procedure GetLizi;
           Var
             a,b,c:Integer;
             l1:Integer;  
             l2:Integer;   
          Begin
              l1:=20;
              l2:=7;
 
              Line(Liznik.Noga1.x2-l1+5,Liznik.Noga1.y2-l2,Liznik.Noga1.x2+l1+15,Liznik.Noga1.y2+l2);
              Line(Liznik.Noga2.x2-l1+5,Liznik.Noga2.y2-l2,Liznik.Noga2.x2+l1+15,Liznik.Noga2.y2+l2);
 
 
          end;
 
          procedure Liznik_edet(sdvigX,sdvig2:Integer);
           var ii:Integer;
          Begin
 
 
            sdvigX:=sdvigX+5;
            sdvig2:=sdvig2+5;
            Golova.X:=SdvigX;
            Golova.Y:=Sdvig2;
 
          end;
 
          procedure Liznik_One;
          Var ii:Integer;
          Begin
 
 
              Circle(Liznik.Golova.x,Liznik.Golova.y-Liznik.R,Liznik.R);
 
              With Liznik.Tulo do Begin
                x1:=Liznik.Golova.X;
                y1:=Liznik.Golova.y;
                x2:=Liznik.Golova.x-30;
                y2:=Liznik.Golova.y+30;
                Line(x1-10,y1,x2,y2);
              end;
 
              With Liznik.Ruka1 do Begin
                x1:=Liznik.Tulo.x1-10;
                y1:=Liznik.Tulo.y1;
                x2:=Liznik.Tulo.X1-45;
                y2:=Liznik.Tulo.Y1;
                Line(x1,y1,x2,y2);
              end;
 
              With Liznik.Ruka2 do Begin
                x1:=Liznik.Ruka1.x1;
                y1:=Liznik.Ruka1.y1;
                x2:=Liznik.Ruka1.x2+5;
                y2:=Liznik.Ruka1.y2-30;
                Line(x1,y1,x2,y2);
              end;
 
              With Liznik.Noga1 do Begin
                  x1:=Liznik.Tulo.x2;
                  y1:=Liznik.Tulo.y2;
                  x2:=x1-30;
                  y2:=y1+20;
                  Line(x1,y1,x2,y2);
              end;
 
              With Liznik.Noga2 do Begin
                  x1:=Liznik.Noga1.x1;
                  y1:=Liznik.Noga1.y1;
                  x2:=x1+5;
                  y2:=Liznik.Noga1.y2+20;
                  Line(x1,y1,x2,y2);
              end;
 
              GetLizi;
 
 
 
                   Liznik_edet(Liznik.Golova.X,Liznik.Golova.Y);
 
 
          end;
 
 procedure Gora;
  const
      Nakl1=50;
      Nakl2=100;
 Begin
      Sklon1.x1:=20;   Sklon2.x1:=Sklon1.x1+Nakl1;
      Sklon1.y1:=300;  Sklon2.y1:=Sklon1.y1-Nakl2;
      Sklon1.x2:=700;  Sklon2.x2:=Sklon1.x2+Nakl1;
      Sklon1.y2:=500;  Sklon2.y2:=Sklon1.y2-Nakl2;
 
      Line(Sklon1.x1,Sklon1.y1,Sklon1.x2,Sklon1.y2);
      Line(Sklon2.x1,Sklon2.y1,Sklon2.x2,Sklon2.y2);
 end;
 
 var ii:Integer;
 
 
 
begin
 
  driver:=detect;
    initgraph(driver,mode,'');
     if graphresult<>0 then
       begin
        writeln('ne wislo');
        halt
     end;
       Gora;
 
 
 
       i:=0;
 
       Liznik.Golova.x:=Sklon2.x1+Liznik.Golova.x*5;
              Liznik.Golova.y:=Sklon2.y1;
              Liznik.R:=15;
 
 
     for ii:=0 to 50 do Begin
       Liznik_One;
       Liznik.Golova.y:=Liznik.Golova.y+3;
       Liznik.Golova.x:=Liznik.Golova.x+10;
       delay(100);
       ClearDevice;
       Gora;
     end;
 
 
 
readln;
end.
0
 Аватар для Dimonick
2210 / 755 / 208
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
25.03.2012, 20:50  [ТС]
ти б так сделал?!!! Ну что, "если ноги вилезли за лыжы", исправилбы....
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
25.03.2012, 21:33
человек спросил, я ему помог. какая разница как я обзываю переменные и записи?

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ржал ^
когда досмеетесь, оптимизируйте товарищу код.

Цитата Сообщение от Dimonick Посмотреть сообщение
ноги вилезли за лыжы
Pascal
1
2
              Line(Liznik.Noga1.x2-l1+5,Liznik.Noga1.y2-l2+3,Liznik.Noga1.x2+l1+15,Liznik.Noga1.y2+l2);
              Line(Liznik.Noga2.x2-l1+5,Liznik.Noga2.y2-l2+3,Liznik.Noga2.x2+l1+15,Liznik.Noga2.y2+l2);
Noga1.y2-l2+3 это тут добавить там в обоих строчках
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
25.03.2012, 22:03
Цитата Сообщение от daslex Посмотреть сообщение
когда досмеетесь, оптимизируйте товарищу код.
Я всего лишь очень вежливо и тактично намекнул на следующее.
Товарищ не понимает, что записи объявляют по сути новый тип данных, и если мы объявили запись "Линия" как
Pascal
1
2
3
4
5
6
7
TLine=Record
      x1,x2,y1,y2:integer;
 end;
Var 
             l1,l2:TLine;
             Ruka1,Ruka2:TLine;
             Doroga1,Doroga2:TLine;
То все объекты являющиеся линиями можно создавать как объекты типа TLine, а не плодить новые типы Doroga1, Doroga2!
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
25.03.2012, 23:35
Вот файл. тут убран лишний код и немного изменено. Добавлены комментарии.
Вложения
Тип файла: rar Liznik.rar (1.5 Кб, 49 просмотров)
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
26.03.2012, 00:25
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Товарищ не понимает, что
Безусловно я тупой - вы умный. Но слово вежливость, и что значит тактичность - вам однозначно не знакомо.

То, понимаю я или не понимаю что такое Записи, как их можно использовать, как нужно к ним обращаться и зачем вообще они нужны говорит работающая программа, отвечающая запросу пользователя, а не ваши намеки.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
26.03.2012, 00:48
Цитата Сообщение от daslex Посмотреть сообщение
Безусловно я тупой - вы умный. Но слово вежливость, и что значит тактичность - вам однозначно не знакомо.

То, понимаю я или не понимаю что такое Записи, как их можно использовать, как нужно к ним обращаться и зачем вообще они нужны говорит работающая программа, отвечающая запросу пользователя, а не ваши намеки.
А, так мы твой код обсуждаем?!
Я думал топикстартера...
0
 Аватар для Dimonick
2210 / 755 / 208
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
26.03.2012, 18:40  [ТС]
говороим спасиба - daslex.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2012, 18:40
Помогаю со студенческими работами здесь

Алгоритм поиска движущегося объекта
Надо на видео, которое имеет не движущийся фон, найти координаты объектов во время движения, а объекты выделить в рамку!

Создание движущегося объекта (open gl)
Недавно начал писать живые обои. Нужно создать несколько падающих звезд, каждая из которых рандомно исчезает в точке. Скажите, пожалуйста,...

Моделирование движущегося объекта, издаваемого звук
В общем программе задаются координаты материальной точки, вектора скорости и звуковой файл. Нужно смоделировать эффекты доплера и...

Простая анимация движущегося объекта во флэше
Доброе утро, форумчане. Помогите решить проблему. Есть большая фотография 1.jpg, и на ее фоне проносится png-рисунок 2.png (с...

Отталкивание движущегося объекта от границ формы
У меня на форме при нажатии на F1 нажинает двигаться картинка: Мяч.Left += МячХ Мяч.Top -= МячУ Объект потом...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru