Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ PascalABC.NET - Рассмотреть класс геометрических фигур.

Автор: Niv 20.06.2015 13:26

PascalABC.NET - Рассмотреть класс геометрических фигур, квадрат, круг, треугольник (наследование, полиморфизм, инкапсуляция.)
Помогите пожалуйста. В программирование не силен.
Как работать с классами не знаю.

Нужно, что бы выглядело так:

Меню программы:
1. Треугольник
2. Круг
3. Квадрат
Выбираем нужную геометрическую фигуру (вводим с клавиатуры например 2).
Программа просит, задать размер фигуры, в даном случае размер круга (его радиус).
Вводим с клавиатуры например 7.
Программа просит выбрать цвет фигуры.
1. Красный
2. Оранжевый
3. Желтый
4. Зеленый
5. Голубой
6. Синий
7. Фиолетовый
Выбираем нужный цвет например 4.
Программа выводит графическое окно, в которой нарисован зеленый круг радиусом 7.
И для всего этого добра нужно рассмотреть класс геометрических фигур.

Есть мой код выглядит так, его надо доделывать сильно.


Program classfigur;
Uses graphabc;
Var
n: Byte;

procedure krug;
begin
Circle(500,200,100);
FLOODFILL(500,200,clred);
end;

procedure kvadr;
begin
line(200,1,440,1);
line(440,1,440,240);
line(440,240,200,240);
line(200,240,200,1);
FLOODFILL(240,200,clblue);
end;

procedure treug;
begin
line(300,100,500,300);
line(500,300,100,300);
line(100,300,300,100);
FLOODFILL(300,200,clgreen);
end;

begin
repeat
WriteLn('1-Круг');
WriteLn('2-Квадрат');
WriteLn('3-Треугольник');
WriteLn('4-Выход');
Write('5-Следующая фигура: ');
ReadLn(n);
Case n of
1: krug;
2: kvadr;
3: treug;
end;
until n <> 0;
end.



Предусмотреть методы для создания объектов, изменения размеров и цвета.
Спасибо.

Есть еще такие коды уже не мои, но вдруг пригодятся

uses GraphAbc;
var w:char;
j:integer;
begin
repeat
ClearWindow;
textout(1,10,'Выберите действие');
textout(1,30,'1-нарисовать квадрат');
textout(1,50,'2-нарисовать круг');
textout(1,70,'другое выход');
readln(w);
case w of
'1':begin
textout(1,90,'Сторона:');
readln(j);
ClearWindow;
Rectangle(WindowWidth div 2-j div 2,WindowHeight div 2-j div 2,WindowWidth div 2+j div 2,WindowHeight div 2+ j div 2);
textout(WindowWidth div 2-50,10,'Нажмите Enter');
readln;
end;
'2':begin
textout(1,90,'радиус:');
readln(j);
ClearWindow;
Circle(WindowWidth div 2,WindowHeight div 2,j);
textout(WindowWidth div 2-50,10,'Нажмите Enter');
readln;
end;
else exit;
end;
until not (w in ['1','2']);
end.



и вот такой

type
Shape = auto class
x, y: integer;
color: GraphABC.Color;
end;

Square = class(Shape)
x1, y1: integer;

constructor Create(x, y, x1, y1: integer; color: GraphABC.Color);
begin
self.x := x;
self.x1 := x1;
self.y := y;
self.y1 := y1;
self.color := color;
end;

procedure Draw();
begin
brush.Color := color;
GraphABC.Rectangle(x, y, x1, y1);

brush.Color := GraphABC.Color.Transparent;
end;
end;