Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 14

ООП: движение закрашенного квадрата по окружности

16.12.2009, 21:47. Показов 2707. Ответов 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
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
Program Graphworld;
  Uses Graph;
  Type
    Location = object
            x,y :integer;
            constructor Init (initX, initY :integer);
            destructor Done;
            function GetX :integer;
            function GetY :integer;
           end;
 
  Constructor Location.Init (initX, initY :integer);
    Begin
      X:=InitX;
      Y:=InitY
    End;
 
  Destructor Location.Done;
    Begin
    End;
 
  Function Location.GetX:integer;
    Begin
      GetX:=x;
    End;
 
  Function Location.GetY:integer; 
    Begin
      GetY:=y;
    End;
 
{=======================================================================}
 
  Type Point = object (Location)
visible:boolean;
            Procedure Show; virtual;
            Procedure Hide; virtual;
            Procedure Moveto (newX, newY :integer);
           End;
 
  Procedure Point.Show;
    Begin
      Putpixel(x, y, Getcolor);
      Visible:=TRUE
    End;
 
  Procedure Point.Hide;
    Begin
      Putpixel(x, y, GetBkColor);
      Visible:=FALSE
    End;
 
  Procedure Point.Moveto;
        Var TempVisible:boolean;
    Begin
          TempVisible:=visible;
      If TempVisible then Hide;
      X:=newX;
      Y:=newY;
      If TempVisible then Show;
    End;
 
 
 
{=======================================================================}
 
  Type Circle = object (Point)
            Radius :integer;
            Constructor Init (initX, initY, initR :integer);
            Procedure Show; virtual;
            Procedure Hide; virtual;
            Function Getradius :integer;
            end;
 
  Constructor Circle.Init;
    Begin
      X:=initX;
      Y:=initY;
      Radius:=initR
    End;
 
  Procedure Circle.Show;
    Begin
      Graph.circle(x, y, radius);
      Visible:=TRUE
    End;
 
  Procedure Circle.Hide;
    Var tempcolor :word;
        Begin
      Tempcolor:=Getcolor;
      Setcolor(Getbkcolor);
      Graph.Circle(x, y, radius);
      Setcolor(Tempcolor);
      Visible:=FALSE
    End;
 
 
  Function Circle.Getradius;
    Begin
      Getradius:=radius;
    End;
 
{=============================================================================}
 
  Type World = object
            Mode :integer; 
            Driver :integer;
            Procedure Initworld(gdr, gmode :integer; path :string);
            Procedure Endworld;
           End;
 
  Procedure World.Initworld;
    Var rez :integer;
    Begin
      Driver:=gdr;
      Mode:=gmode;
      Initgraph(driver, mode, path);
      Rez:=Graphresult;
      If rez<>GrOK then
        Begin
          Writeln(GraphErrorMsg(rez));
          Halt(1);
        End;
    End;
 
  Procedure World.Endworld;
    Begin
      Closegraph;
      Writeln('The end of the world.');
    End;
 
  Type ppoint = ^point;
       pcircle = ^circle;
 
  Var namepathdriver :string;
    W  :world;
    Pt  :ppoint;
    Pc  :pcircle;
  
  Begin
    { инициализация мира }
    writeln('Путь к драйверу');
    readln(namepathdriver);
    w.initworld(detect, detect, namepathdriver);
 
    { рождение объектов }
    pt:=new(ppoint,init(100,100));
    pc:=new(pcircle,init(200,200,100));
 
    { развитие объектов }
    pt^.show;
    pc^.show;
    readln;
    pt^.moveto(50, 50);
    pc^.moveto(390, 390);
    readln;
 
    { смерть объектов }
    dispose(pt,done);
    dispose(pc,done);
 
    { конец мира }
    w.endworld;
    readln;
 End.
Добавлено через 2 минуты
Вместо смайликов, там стоит двоеточие. Я не могу их убрать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2009, 21:47
Ответы с готовыми решениями:

Движение закрашенного квадрата по окружности
Движение закрашенного квадрата по окружностию Как сделать данное задание? Уже давно не использовал...

Изобразить движение квадрата по окружности (так, чтобы центр квадрата двигался по окружности)
Изобразить движение квадрата по окружности (так, чтобы центр квадрата двигался по окружности)...

Площадь квадрата равна S. Вычислить сторону квадрата а, диагональ d и площадь S1 описанного около этого квадрата круга
Напишите, пожалуйста, программу, через процедуру, максимально просто в PascalABC.net.

2
 Аватар для lexus_ilia
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
17.12.2009, 00:43
Цитата Сообщение от Lion88 Посмотреть сообщение
Вместо смайликов, там стоит двоеточие. Я не могу их убрать.
Вам бы и не пришлось бы их убирать, если бы Вы использовали Тэги.
0
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 14
17.12.2009, 10:36  [ТС]
я написал на счёт смайликов, чтобы не подумали, что я прикалываюсь. Помогите пожалуйста разобраться с заданием.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.12.2009, 10:36
Помогаю со студенческими работами здесь

Движение закрашенного правильного шестиугольника с заданной с клавиатуры стороной по экрану
Движение закрашенного правильного шестиугольника с заданной с клавиатуры стороной по экрану,...

Движение закрашенного эллипса с заданными с клавиатуры радиусами по экрану
Движение закрашенного эллипса с заданными с клавиатуры радиусами по экрану, заполненному сеткой...

Движение закрашенного правильного пятиугольника по экрану
Движение закрашенного правильного пятиугольника с заданной с клавиатуры стороной по экрану,...

Анимация Движение закрашенного креста
Задание: Движение закрашенного креста по экрану заполненому сеткой из случайно закрашенных кругов....

Движение закрашенного круга по экрану содержащему изображение
Помогите написать программу в турбо паскале Движение закрашенного круга по экрану содержащему...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru