Помощь - Поиск - Пользователи - Календарь
Полная версия: множества!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Ostin
всем привет!
есть 4 авто салона и всего 20 марок автомобилей!
надо сделать чтоб показывались марки (набор авто) которые есть сейчас в каждом из салонов! чтобы можно было добовлять удалять марку, какие из тех 20 марок отсутствуют везде, какие есть во всех салонах и выводить которые есть только в данном салоне И СДЕЛАТЬ ВЫБОРКУ АВТОМОБиЛЕЙ КОТОРЫЕ ЕСТЬ В САЛОНЕ (я не совсем понил что значит и что надо сделать в последнем пункте!)

помогите пожалуйста!))))
volvo
Ну, здесь насколько я понимаю, задача именно в отработке операций над множествами? Что есть "сложение" множеств знаешь? "Умножение"? "Вычитание"?

Здесь: FAQ: Множества
я об этом рассказывал. А программы, реализующие все эти операции, есть здесь:
Работа с множествами
Множества (магазины)

(тебе нужно только разобраться, как это работает, и сделать программу по своему условию...)
Ostin
запутался я окончательно!

program mnojestvo;
digits = set of 0..20;
var
A:set of digits;
B:set of digits;
c: set of digits;
d:set of digits;

так задавать множество!?
как мне их саполнить!? и как сделать чтоб они сравнивались!?
volvo
Type TMySet = set of 0 .. 19; { 20 марок автомобилей }
Var
saloon: array[1 .. 4] of TMySet; { 4 салона }
InAll: TMySet;
i: integer;
Begin
{ в первом салоне есть автомобили марок 1, 3, 6, 7, 8, 9, 10, 11 и 15 }
saloon[1] := [1, 3, 6 .. 11, 15];
...
{ аналогично заполняешь остальные салоны }

{ найдем автомобили, содержащиеся во ВСЕХ салонах: }
InAll := [0 .. 19]; { все возможные марки }
For i := 1 to 4 do InAll := InAll * saloon[i];
{ теперь в InAll перечислены только те марки, которые есть везде }

End.

Я же дал ссылку на решенные задачи. Второй раз переписывать все подряд я не собираюсь.
Ostin
Type TMySet = set of 0 .. 19; { 20  }
Var
saloon: array[1 .. 4] of TMySet; { 4 }
InAll: TMySet;
i: integer;
Begin

saloon[1] := [1, 3, 6 .. 11, 15];
saloon[2] := [2, 4, 6 .. 13, 19];
saloon[3] := [1, 4, 8 .. 11, 18];
saloon[4] := [1, 7, 9 .. 15, 16];

InAll := [0 .. 19];
For i := 1 to 4 do InAll := InAll * saloon[i];

End.
а как вывести результат!?
volvo
Ты по ссылке во втором посте ходил? Там написано, что множества выводятся только через полный перебор возможных значений... В цикле, короче...

For i := 0 to 19 do
if i in InAll Then Write(i:3);
Ostin
program mnoj;
Type TMySet = set of 0 .. 19; { 20 }

Var
saloon: array[1 .. 4] of TMySet; { 4 }
InAll: TMySet;
i: integer;
Begin

saloon[1] := [1, 3, 6 .. 11, 15];
saloon[2] := [2, 4, 6 .. 13, 19];
saloon[3] := [1, 4, 8 .. 11, 18];
saloon[4] := [1, 7, 9 .. 15, 16];

InAll := [0 .. 19];
For i := 1 to 4 do InAll := InAll * saloon[i];

For i := 0 to 19 do
if i in InAll Then Write(i:3);
End.


так получается!? потом тоже самое только * заменяется + и -!?
что-то неработает!((((

хелп ми пиззззззззз!))) мне позарес надо до субботы с этой задачей что нибуть сообразить! помаги пожалуйста!!!))))
volvo
Цитата(Ostin @ 26.04.2006 18:54)
потом тоже самое только * заменяется + и -!?

smile.gif Если бы все было так просто...

Я больше ничего тебе отвечать не буду. Ты упорно игнорируешь мои предыдущие посты. Я привел ВСЕ ссылки, которые тебе нужны. Больше добавить нечего. Повторяю еще раз - я опять все переписывать не буду!!! Причем, заметь, переписывать из тех постов, на которые приведены ссылки! И переписывать практически один в один.
Ostin
я все прочитал!(((
я чет ни как не пойму!(((( у меня ни это часть не работает не чего не выводится ни та программа про магазин не работает!((((
volvo
Не понял... Что у тебя не выводится? В программе из твоего же 7-го поста не печатается ответ:
9 10 11
?
blink.gif Значит у тебя что-то с Паскалем... У меня вот эта программа откомпилировалась тремя разными компиляторами, и отработала после этого...
program mnoj;
Type TMySet = set of 0 .. 19; { 20 }

Var
saloon: array[1 .. 4] of TMySet; { 4 }
InAll, InNone: TMySet;
i: integer;
Begin

saloon[1] := [1, 3, 6 .. 11, 15];
saloon[2] := [2, 4, 6 .. 13, 19];
saloon[3] := [1, 4, 8 .. 11, 18];
saloon[4] := [1, 7, 9 .. 15, 16];

InAll := [0 .. 19]; InNone := [0 .. 19];

For i := 1 to 4 do begin
InAll := InAll * saloon[i];
InNone := InNone - saloon[i];
end;

Write('in all: ');
For i := 0 to 19 do
if i in InAll Then Write(i:3);
Writeln;

Write('in none: ');
For i := 0 to 19 do
if i in InNone Then Write(i:3);
Writeln;
readln;
End.
Ostin
program mnoj;
uses crt;
Type TMySet = set of 0 .. 19; { 20 }

Var
saloon: array[1 .. 4] of TMySet; { 4 }
InAll, InNone: TMySet;
i: integer;
Begin
clrscr;
saloon[1] := [1, 3, 6 .. 11, 15];
saloon[2] := [1,2, 4, 6 .. 13, 19];
saloon[3] := [1, 4, 8 .. 11, 18];
saloon[4] := [1, 7, 9 .. 15, 16];

InAll := [0 .. 19]; InNone := [0 .. 19];

For i := 1 to 4 do begin
InAll := InAll * saloon[i];
InNone := InNone - saloon[i];
end;

Write('saloon[1]: ');
For i := 0 to 19 do
if i in saloon[1] Then Write(i:3);
Writeln;

Write('saloon[2]: ');
For i := 0 to 19 do
if i in saloon[2] Then Write(i:3);
Writeln;

Write('saloon[3]: ');
For i := 0 to 19 do
if i in saloon[3] Then Write(i:3);
Writeln;

Write('saloon[4]: ');
For i := 0 to 19 do
if i in saloon[4] Then Write(i:3);
Writeln;

writeln(' ');

Write('in all: ');
For i := 0 to 19 do
if i in InAll Then Write(i:3);
Writeln;



Write('in none: ');
For i := 0 to 19 do
if i in InNone Then Write(i:3);
Writeln;
readln;

End.
Ostin
это не задача а сплошное мучение unsure.gif
как мне сделать чтоб можно было добавлять марки и удалять!? пожалуйста подскажите! !mol1.gif
Ostin
в задаче про магазины нет добавления и удаления продуктов! подскажите и обьедините эти 3 сообшения в одно пизззззззззззззз!)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.