Использование типа данных «объект» - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Составить программу для решения этого кода с использованием типа данных «объект».

Решение задачи: «Использование типа данных «объект»»

textual
Листинг программы
uses crt,graph;
var x0,a:integer;
type trg=object
         x,y,r,c:integer;
         procedure init(ax,ay,ar,ac:integer);
         procedure postr;
         procedure show;
         procedure hide;
         procedure move(dy:integer);
         end;
procedure trg.init;
begin
x:=ax;
y:=ay;
r:=ar;
c:=ac;
end;
procedure trg.postr;
var ax,ay,bx,by,cx,cy:integer;
begin
ax:=x;ay:=y-r;
bx:=x-round(r*cos(pi/6));by:=y+round(r*sin(pi/6));
cx:=x+round(r*cos(pi/6));cy:=y+round(r*sin(pi/6));
line(ax,ay,bx,by);
line(bx,by,cx,cy);
line(cx,cy,ax,ay);
end;
procedure trg.show;
begin
setcolor(c);
postr;
end;
procedure trg.hide;
begin
setcolor(getbkcolor);
postr;
end;
procedure trg.move;
begin
hide;
y:=y+dy;
x:=x0-round(sin(y*pi/180)*a);
show;
delay(10);
end;
var t:trg;
    x,y,r,dy:integer;
begin
x:=0;
initgraph(x,y,'');
x0:=getmaxX div 2;
a:=100;
r:=10;
t.x:=getmaxX div 2;
t.y:=r;
t.init(x,y,r,14);
while t.y+r<getmaxY do
t.move(1);
while t.y-r>0 do
t.move(-1);
readln
end.

Объяснение кода листинга программы

  1. В начале кода используются необходимые библиотеки crt и graph.
  2. Объявляются переменные x0, a, trg типа object и сами переменные x, y, r, c типа integer.
  3. В типе trg определяются методы init, postr, show, hide, move.
  4. В методе init переменные x, y, r, c инициализируются значениями ax, ay, ar, ac соответственно.
  5. Метод postr не делает ничего, он предназначен для использования в методе move.
  6. Метод show просто устанавливает цвет фона с помощью функции setcolor и вызывает метод postr.
  7. Метод hide также устанавливает цвет фона, но вместо postr вызывает метод hide.
  8. Метод move принимает параметр dy и выполняет следующие действия:
    • скрывает текущую фигуру
    • создает новые координаты для точек x, y, x0, y0
    • вычисляет новые координаты для точек x, y, x0, y0 с помощью формул из задачи
    • рисует линии между новыми точками
    • вызывает метод move снова через 10 миллисекунд.
  9. Создается объект t типа trg с начальными значениями x, y, r, 14.
  10. Вычисляется максимальное значение x и y с помощью функции getmaxX и getmaxY.
  11. Переменные x0 и a инициализируются значениями x и y соответственно.
  12. Переменная r инициализируется значением 10.
  13. Переменная t.x и t.y инициализируются значениями x0 и r соответственно.
  14. Вызывается метод init для объекта t с аргументами x, y, r, 14.
  15. Запускается цикл while, который выполняется до тех пор, пока y + r меньше максимального значения y.
  16. Внутри цикла вызывается метод move для объекта t с аргументом 1.
  17. После завершения цикла вызывается метод readln для остановки программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы