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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2014, 13:19   #1
azalia
Пользователь
 
Регистрация: 24.11.2013
Сообщений: 21
По умолчанию Pascal. Graph. Классы.

На плоскости задано n множеств по m точек в каждом. Среди точек первого
множества найти такую, которая принадлежит наибольшему количеству множеств.
Решить поставленную задачу с выделением отдельных объектов и реализацией методов над ними. Иерархия объектов должна включать в
себя как минимум одного объекта-наследника. Программа должна графически иллюстрировать как ответ задачи, так и само её решение (в динамике).
Помогите, пожалуйста, у меня пока получилось вывести кучу точек на экран, а как дальше с ними работать без понятия.
Код:
uses
  GraphABC;

type
  T_Point = class
    x, y: word;   // Координаты точки
    
                  /// Создание объекта через конструктор
    constructor Create(x, y: word);
    begin
      self.x := x;
      self.y := y
    end;
    
                  /// Вывод точки
    procedure print;
    begin
      SetPixel(x, y, clBlack)
    end;
  end;
  
  T_Object = class (T_Point)
    col: Color;  // Цвет точки
    Width: byte; // Толщина точки
    
                  /// Создание объекта через конструктор
    constructor Create(x, y: word; col: Color; Width: byte);
    begin
      inherited Create(x, y);
      self.col := col;
      self.Width := Width
    end;
    
                  /// Вывод точки
    procedure print;
    begin
      pen.Color := col;
      pen.Width := width;
      DrawCircle(x, y, 3)
    end;
  end;
  
  TPoints = array of T_Object;// Массив точек

var
  Set_n: array of TPoints; //массив n множеств точек
  Points: TPoints;  
  rez: T_Object;
  n, m: word;

 /// Инициализация графического режима
procedure Init_Graph;
begin
  window.SetSize(550, 550);
  window.Caption := 'ООП при решении геометрических задач';
  window.CenterOnScreen; 
end;

 /// Формирование случайных точек и вывод их на экран
procedure Input(var Set_n: array of TPoints; var n,m:word);
begin
  writeln('Введите количество множеств');
  readln(n);
  writeln('Введите количество точек во множестве'); readln(m);
  window.clear;
  
    setLength(Set_n, n);
  for var i := 0 to n-1 do
  SetLength(Set_n[i], m);
  
  for var i := 0 to n-1 do
    for var j := 0 to m-1 do
    begin
      Set_n[i][j] := new T_Object(random(1, 500), random(1, 500), rgb(random(0, 200), random(0, 200), random(0, 200)), 2);
      Set_n[i][j].Print;
    end;
end;

begin
  Init_Graph;
  Input(Set_n,n,m);
  Sleep(1000);
end.
azalia вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
graph pascal konstantin_ Помощь студентам 5 01.05.2010 22:12
Pascal graph Dartchuwak Паскаль, Turbo Pascal, PascalABC.NET 2 13.11.2009 10:23
Graph Pascal Petr1K Помощь студентам 11 17.05.2009 20:39
Graph Pascal xBaGx Помощь студентам 4 17.05.2009 18:56