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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2008, 22:51   #1
sergey31
Пользователь
 
Аватар для sergey31
 
Регистрация: 27.04.2008
Сообщений: 24
Вопрос Работа с множествами. Вынести процедуры о отдельный Unit. [Delphi]

Добрый вечер уважаемый программисты!
Необходимо создать класс для работы с множествами. Посмотрел поиском на форуме, что есть похожего - нашел только два варианта - не разобрался ни в одном. Начал писать сам и столкнулся с проблемой: при запуске программы выводится сообщение: "Project Project1.exe raised exception class EAccessViolation with message 'Access violation at adress 00403441 in module 'Project1.exe'. Read of adress 00000000. Process stopped.

Множество должно задаваться последовательностью на интервале [x,y].

Вот код моей главной программы:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Unit2;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  A:TSets;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  A.Create;
  A.FillSet(StrToInt(Edit1.Text),StrToInt(Edit2.Text));
end;

end.
Вот код моего модуля:
Код:
unit Unit2;

interface

type
  TSets = class
    private
      FSet:set of byte;
    public
      constructor Create;
      procedure FillSet(left,right:byte);
  end;


implementation

uses Unit1;

constructor TSets.Create;
begin
  inherited Create;
end;

procedure TSets.FillSet(left, right: byte);
var
  i:byte;
begin
  for i:=Left to Right do
    include(FSet,i);
end;

end.
Надеюсь вы укажете мне на мою ошибку...
sergey31 вне форума Ответить с цитированием
Старый 13.12.2008, 00:07   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Проверяй перед созданием
if not Assigned(A) then A.Create;

А деструктора почему нет?

Также добавь к объявлению конструктора override.
constructor Create; override;

Почитай про классы здесь
http://rsdn.ru/?article/Delphi/Delphi_7_03.xml
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 13.12.2008 в 00:16.
mutabor вне форума Ответить с цитированием
Старый 13.12.2008, 00:31   #3
sergey31
Пользователь
 
Аватар для sergey31
 
Регистрация: 27.04.2008
Сообщений: 24
По умолчанию

Деструктора нет, потому что только начал писать модуль - все делаю небольшими подходами - если работает, то продвигаюсь дальше.
Добавил директиву override - пишет "Cannot override a static method"
Спасибо за ссылку - сейчас буду читать.
sergey31 вне форума Ответить с цитированием
Старый 13.12.2008, 10:53   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

сравни две строки
A:=Tsets.Create; //создать объект типа Tsets и и сохранить в переменной A
A.Create; // создать объект такого же типа как A
вывод надо читать учебники
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 13.12.2008, 12:39   #5
sergey31
Пользователь
 
Аватар для sergey31
 
Регистрация: 27.04.2008
Сообщений: 24
По умолчанию

Спасибо большое, все работает!
sergey31 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с "множествами" Дамир Паскаль, Turbo Pascal, PascalABC.NET 2 07.11.2008 16:59
Модуль для работы с множествами [Pascal] iFool Помощь студентам 2 20.10.2008 22:04
Программа на массивы и процедуры. Delphi Alex_2017 Помощь студентам 0 29.05.2008 12:48
Работа с Unit SunKnight Общие вопросы Delphi 2 16.02.2008 15:45
перезагружаемые процедуры и функции в delphi alex9090 Помощь студентам 4 16.11.2007 16:51