Создать класс Point - Pascal ABC
Формулировка задачи:
Создать класс Point, разработав следующие элементы класса:
a. Поля:
• int x, y;
b. Конструкторы, позволяющие создать экземпляр класса:
• с нулевыми координатами;
• с заданными координатами.
c. Методы, позволяющие:
• вывести координаты точки на экран;
• рассчитать расстояние от начала координат до точки;
• переместить точку на плоскости на вектор (a, b).
d. Свойства:
• получить-установить координаты точки (доступное для чтений и записи);
• позволяющие умножить координаты точки на скаляр (доступное только для записи).
Решение задачи: «Создать класс Point»
textual
Листинг программы
program pr;
type
point = class
private
x, y: integer;
public
constructor create(); overload;
begin
x := 0;
y := 0;
end;
constructor create(ax: integer; ay: integer); overload;
begin
x := ax;
y := ay;
end;
procedure show(); virtual;
begin
writeln('( ', x, ',', y, ' )');
end;
procedure ras(x, y: integer; var r: real);
begin
r := sqrt((x * x) + (y * y));
end;
procedure ve(x, y: integer; a, b: integer);
var
n, m: integer;
begin
n := x + a;
m := y + b;
write('Точка на векторе (', a, ',', b, ') :( ', n, ',', m, ' )')
end;
end;
var
p: point;
a, b: integer;
g: real;
begin
p := new point();
p.show;
p := new point(1, 3);
p.show;
p.ras(1, 3, g);
writeln('Расстояние: ', g);
p.ve(1, 3, 2, 2);
end.
Объяснение кода листинга программы
- В программе определен класс
Pointс двумя конструкторамиcreateиcreate(ax: integer; ay: integer). Конструкторcreateустанавливает значения переменныхxиyв 0, а конструкторcreate(ax: integer; ay: integer)устанавливает значения переменныхxиyвaxиayсоответственно. - В классе
Pointопределен методshow, который выводит координаты точки в виде(x, y). - В классе
Pointопределен методras, который вычисляет расстояние от точки до начала координат по формулеsqrt((x * x) + (y * y)). Этот метод вызывается в строкеp.ras(1, 3, g);с результатом вычисления расстояния сохраняемым в переменнойg. - В классе
Pointопределен методve, который выводит точку на векторе(a, b)с помощью вызова методаwriteс соответствующими аргументами. Этот метод вызывается в строкеp.ve(1, 3, 2, 2);с аргументамиa=2иb=2. - В основной части программы создается объект
pклассаPointи вызываются методыshowиrasдля этого объекта. Затем вызывается методveдля другого объектаpс другими аргументами.