Множества в B.Pascal
Множества в B.Pascal
Всем добрый день! Хочу обратиться за помощью к добрым людям. Кто поможет реализовать задание??
Создать класс типа – множество (SET). Определить функции добавления элемента в множество, проверку на принадлежность элемента множеству; определить методы сложения, вычитания и пересечения двух множеств. Определить конструкторы и деструктор для данного класса.
Заранее благодарен!
Создать класс типа – множество (SET). Определить функции добавления элемента в множество, проверку на принадлежность элемента множеству; определить методы сложения, вычитания и пересечения двух множеств. Определить конструкторы и деструктор для данного класса.
Заранее благодарен!
- Andrey
- Администратор
- Сообщения: 2345
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Ладно, попробую два варианта: класс и с двумя множествами. Что такое бинарные сдвиги известно? Или лучше не использовать?
Предупреждение: из-за ошибки хостера сайт может в течение нескольких минут (а может и больше) не работать (dns-сервер отвалился, доступ только благодаря кешу). Поэтому если открыть не удастся, то придётся подождать.
Предупреждение: из-за ошибки хостера сайт может в течение нескольких минут (а может и больше) не работать (dns-сервер отвалился, доступ только благодаря кешу). Поэтому если открыть не удастся, то придётся подождать.
У меня есть такой класс, но выложить могу только завтра во второй половине дня, а это наверно слишком долго (не дома). А переписывать сейчас лень, он не маленький, т.к. нюансов в этой задачке много (всякие перегрузки операторов, индексаторы и прочее).
Ну это просто, поэтому наверно нетalextard писал(а):Как я понял , мне нужно создать два множества через set of ... и затем выполнить опред. операции над ними...
- Andrey
- Администратор
- Сообщения: 2345
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Пока не успеваю дописать из-за этих самых нюансов.
Ну а про использование set of - это просто операции с обычными множествами
Ну а про использование set of - это просто операции с обычными множествами
var
a,b,c,d,e: set of byte;
begin
a := [1,4,6,8];
b := [1,2,3,6];
c := a+b; //объединение - элементы обоих множеств (1,2,3,4,6,8)
d := a-b; //вычитание - элементы множества A без повторяющихся в B (4,8)
e := a*b; //пересечение - одинаковые элементы множеств (1,6)
end;
Хорошо. спасибо . подожду тогда до завтра . так вот как раз такую структуру типа set of и нужно реализовать только используя конструкторы , функции и тд. что там требуется. давайте я вам скину что у меня было
Program P1;
uses crt;
var x:byte;
type Complex = object
{private}
a:set of byte;
public
constructor Init;
destructor destroy;
procedure Incl(x:byte);
function prov(x:byte):byte;
procedure Sum(b,c:Complex);
procedure Min(b,c:Complex);
procedure Per(b,c:Complex);
procedure Vivod;
end;
constructor Complex.Init;
begin
(* type a=array[1..5] of integer;
var b:a; i: byte;
begin
writeln('Vvedite znecenie elementov massiva: ');
for i:=1 to 5 do begin *)
a:=[1];
end;
procedure Complex.Incl( x:byte);
begin
a:=a+[1];
end;
function Complex.prov(x:byte):byte;
begin
if x in a then
prov:=1
else
prov:=0;
end;
procedure Complex.Sum(b,c:Complex);
begin
for x:=0 to 200 do
if x in b then
a:=a+[x];
if x:=0 in c then
a:=a+[x];
end;
procedure Complex.Min(b,c:Complex);
begin
a:=b-c;
end;
procedure Complex.Per(b,c:Complex);
begin
a:=b*c;
end;
destructor Complex.destroy;
begin
a:=[];
end;
procedure Complex.Vivod;
begin
for i:=0 to 3200 then
if i in a then
writeln(i);
end;
var b,c,m1,m2,m3,m4,m5: Complex;
begin
m1.Init;
m1.Incl(6);
m2.Init;
m3.Sum(m1,m2);
m3.Vivod;
readkey;
end.
Последний раз редактировалось alextard 21 фев 2013, 21:53, всего редактировалось 3 раза.
Причина: Оформление кода (для читабельности)
Причина: Оформление кода (для читабельности)
Прошу прощения за задержку с ответом, меня не было в городе. К огромному сожалению класс который был у меня предназначен для delphi и он совершенно не подходит к старому Borland Pascal (как минимум из-за динамических массивов).
При написании своего класса столкнулся с проблемой - не смог решить в каком формате сделать вывод, т.к. если это учебная задача то set of использовать нельзя.
При написании своего класса столкнулся с проблемой - не смог решить в каком формате сделать вывод, т.к. если это учебная задача то set of использовать нельзя.