IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> PascalABC.NET - Рассмотреть класс геометрических фигур.
Niv
сообщение 20.06.2015 13:26
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской
Реальное имя: Петя

Репутация: -  0  +


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;



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.09.2019 6:14
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"