Помощь - Поиск - Пользователи - Календарь
Полная версия: множества!
Форум «Всё о Паскале» > 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 сообшения в одно пизззззззззззззз!)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.