Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2010, 11:14   #1
valiaam55
Пользователь
 
Регистрация: 01.06.2010
Сообщений: 16
Печаль Объектно-ориентированное программирование

Программа, в которой реализовать следующую иерархию классов: суперкласс снежинка имеет двух потомков – 1) снежинка падающая и 2) снежинка мерцающая. В суперклассе определить абстрактный виртуальный метод, который затем переопределить в потомках.
valiaam55 вне форума Ответить с цитированием
Старый 08.07.2010, 11:42   #2
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

Покажите ваши наработки.
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 08.07.2010, 11:56   #3
valiaam55
Пользователь
 
Регистрация: 01.06.2010
Сообщений: 16
По умолчанию

Вся проблема в том что я не могу разобраться по этой теме.((((((((а так надо понять как эта программа пишется.
valiaam55 вне форума Ответить с цитированием
Старый 08.07.2010, 12:38   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

http://www.erudition.ru/referat/ref/id.19742_1.html
http://www.ref.by/refs/67/33427/1.html
Тут даже примеры есть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.07.2010, 13:31   #5
valiaam55
Пользователь
 
Регистрация: 01.06.2010
Сообщений: 16
По умолчанию

такой вопрос: Как в программе сделать снежинку, я нашла только рекурсивную программу построения.
valiaam55 вне форума Ответить с цитированием
Старый 08.07.2010, 14:03   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я нашла только рекурсивную программу построения.
Давай сначала:
ты разобралась как объекты описывать и реализовывать?
Сможешь сделать класс, в котором будет один метод - отрисовки той самой снежинки? Покажи то что нашла.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.07.2010, 11:25   #7
valiaam55
Пользователь
 
Регистрация: 01.06.2010
Сообщений: 16
По умолчанию

рекурсивная программа построения снежинки
Код:
program sneg;
uses graph, crt;
var
   x,y,r,d,m:integer;
procedure ris(x,y,r:integer);
var
   x1,y1,t:integer;
begin
   if r<=1 then begin putpixel(x,y,15);exit end;
   for t:=0 to 6 do
   begin
      x1:=x+trunc(r*cos(t*pi/3));
      y1:=y+trunc(r*sin(t*pi/3));
      line(x,y,x1,y1);
      ris(x1,y1,r*2 div 5);
      delay(500);
   end;
end;
begin
   d:=detect;
   initgraph(d,m,'e:\bp\bgi');
   x:=320;
   y:=240;
   r:=80;
   ris(x,y,r);
   readln;
end.
это то что я нашла по снежинке.

Последний раз редактировалось Stilet; 09.07.2010 в 11:46.
valiaam55 вне форума Ответить с цитированием
Старый 09.07.2010, 11:54   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ок.
Вот приблизительная обертка этого кода в класс:
Код:
uses graph;
type
 TSneginka=object
  private
   t:integer;
  public
   r:integer;
   procedure ris(x,y:integer);
   Constructor Create;
   Destructor Free;
 end;

procedure TSneginka.ris;
var
   x1,y1:integer;
begin
   if r<=1 then begin putpixel(x,y,15);exit end;
   while(t<6) do   begin inc(t);
      x1:=x+trunc(r*cos(t*pi/3));
      y1:=y+trunc(r*sin(t*pi/3));
      line(x,y,x1,y1);
      ris(x1,y1);
      r:=r*2 div 5;
      {delay(500);}
   end;
end;

Constructor TSneginka.Create;begin end;
Destructor TSneginka.Free;begin end;

var s:TSneginka;d,m:integer;

begin
   d:=detect;
   initgraph(d,m,'e:\bp\bgi');
   s.r:=80;
   s.ris(100,100);
   s.Free;
   readln;

end.
Приблизительная потому что я паскаль давно не использую и мог забыть что-то указать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.07.2010, 13:42   #9
valiaam55
Пользователь
 
Регистрация: 01.06.2010
Сообщений: 16
По умолчанию

а как сделать так чтоб снежинка падала и снежинка мерцала?
valiaam55 вне форума Ответить с цитированием
Старый 09.07.2010, 14:04   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Создаешь еще один метод в котором в цикле пишешь:
Код:
 while x<640 do begin
  SetColor(White);
  s.ris(x,100);
  delay(100);
  SetColor(White);
  s.ris(x,100);
  x:=x+1;
 end;
т.е. вывод снежинки на экран, ожидание, затирание снежинки, и переход к другим координатам

Для мерцания можно вместо SetColor(White); поставить SetColor(random(16));
Чтоб она выводилась разными цветами.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объектно-ориентированное программирование Solnze2 Помощь студентам 4 14.06.2010 15:32
Объектно-ориентированное программирование Solnze2 Паскаль, Turbo Pascal, PascalABC.NET 2 14.06.2010 13:42
Объектно-ориентированное программирование 4ika Помощь студентам 2 04.04.2010 20:27
Объектно -ориентированное программирование Asira Помощь студентам 3 05.03.2010 17:52
Объектно-ориентированное программирование dzhI Помощь студентам 8 19.03.2009 13:38