IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Множества
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Женский

Репутация: -  0  +


type food = ( broad,butter,milk,meat,fish,salt,cheese,saucers,sugar,tea,cafe);
assort = set of food;
shop = array[1..20] of assort;
Описать процедуру Nal(sh, A), которая по информации из массива Sh типа shop (Sh(i) – это множество продуктов, имеющихся в i-м магазине) присваивает параметру А типа assort множество всех продуктов, которые есть во всех магазинах.

начала делать так:

uses crt;
type food = ( broad,butter,milk,meat,fish,salt,cheese,saucers,sugar,tea,cafe);
assort = set of food;
shop = array[1..20] of assort;
procedure nal(sh:shop; a:assort);
var i,m,p,j:integer;
begin
writeln('vvedite kol-va magazinov');
readln(m);
for j:=1 to m do begin
writeln('vvedite kol-vo productov');
readln(p);
writeln('vvedite productu,imeushiesya v magazine: broad,butter,milk,meat,fish,salt,cheese,saucers,sugar,tea,cafe');
for i:=1 to p do readln(sh[i]);
for i:=1 to p do
if sh[i] in shop then


readln;
End.



че-то теперь ступор какой-то... наверн за лето забыла все wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 9)
сообщение
Сообщение #2


Гость






Вот пример решения подобной задачи:
Примеры решения задач с использованием множеств
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Женский

Репутация: -  0  +


сделала как в примере, но почему-то не пашет.... unsure.gif

uses crt;
const n=3;
type food = ( broad,butter,milk,meat,fish,salt,cheese,saucers,sugar,tea,cafe);
assort = set of food;
shop = array[1..3] of assort;
const
s:array[food] of string =('broad','butter','milk','meat','fish','salt','cheese','saucers','sugar','tea','cafe');
stores: shop = (
[broad,butter,milk,meat,fish], {1 magazin}
[broad,butter,fish,salt,cheese,saucers,sugar,tea], {2 magazin}
[fish,salt,cheese,saucers,sugar,cafe] {3 magazin}
);
procedure nal(sh:shop; a:assort);
var i:integer; j:food;
begin
a:=sh[1]; {vubiraem assortiment 1-go magazina}
for i:=1 to n do
a:=a*sh[i]; {peresechenie mnojestv dlya poiska "est vezde"}
end;
procedure write_set(x:assort); {procedura raspechatuvaniya znachenij mnojestva}
var j:food;
begin
{perebiraem vse vozmojnue znacheniya i vuvodim tolko nazvaniya tex iz nix, kotorue est v peredannom v proceduru mnojestve}
for j:=low(food) to high(food) do
if j in x then write(s[j],' ');
end;

var a:assort; j:food;
Begin
clrscr;
nal(stores,a);
write('productu vo vsex magazinax: ');
write_set(a);
readln;
End.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +



uses crt;
const n=3;
type food = ( broad,butter,milk,meat,fish,salt,cheese,saucers,sugar,tea,cafe);
assort = set of food;
shop = array[1..3] of assort;
const
s:array[food] of string =('broad','butter','milk','meat','fish','salt','cheese','saucers','sugar','tea','cafe');
stores: shop = (
[broad,butter,milk,meat,fish], {1 magazin}
[broad,butter,fish,salt,cheese,saucers,sugar,tea], {2 magazin}
[fish,salt,cheese,saucers,sugar,cafe] {3 magazin}
);
procedure nal(sh:shop; var a:assort); // <--------VAR
var i:integer; j:food;
begin
a := []; // <------------
for i:=1 to n do a := a + sh[i]; // <----------------
end;
procedure write_set(x:assort); {procedura raspechatuvaniya znachenij mnojestva}
var j:food;
begin
{perebiraem vse vozmojnue znacheniya i vuvodim tolko nazvaniya tex iz nix, kotorue est v peredannom v proceduru mnojestve}
for j:=low(food) to high(food) do
if j in x then write(s[j],' ');
end;

var a:assort; j:food;
Begin
clrscr;
nal(stores,a);
write('productu vo vsex magazinax: ');
write_set(a);
readln;
End.


на правильность особо не проверял ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата
на правильность особо не проверял ...
Вот и напрасно... Там вся игра как раз на "пересечении", а не на сложении множеств... Так что, Athen, VAR в заголовок добавь, а вот умножение сложением заменять ни в коем случае не надо... Иначе получишь совсем не то, что нужно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Толи я задание не верно понял, толи тебя ... Вот програмама:

uses crt;

const
max_shops = 4;

type
TFoodKinds = (beer, milk, water, tea, coffe);
TFoodSet = set of TFoodKinds;
TShops = array [1..max_shops] of TFoodSet;

const
food_label: array [TFoodKinds] of string = (
'beer', 'milk', 'water', 'tea', 'coffe'
);

procedure print_set(const _set: TFoodSet);
var
i: TFoodKinds;
begin
for i := Low(TFoodKinds) to High(TFoodKinds) do
if i in _set then writeln(food_label[i]);
end;

procedure get_rslt_set(const shops: TShops; var _set: TFoodSet);
var
i: integer;
begin
_set := [];
for i := 1 to max_shops do
_set := _set + shops[i];
end;

var
shops: TShops = (
[tea, beer],
[milk],
[],
[beer]
);

in_all: TFoodSet;

begin
clrscr;
get_rslt_set(shops, in_all);
print_set(in_all);
readln;
end.


она не верна ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Женский

Репутация: -  0  +


о, спасибо! теперь идет! good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
она не верна ?
Что она найдет, можно полюбопытствовать? Надо найти, напомню,
Цитата
множество всех продуктов, которые есть во всех магазинах.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Опять многозначность русского языка ))
"В первой коробке 2 кубика, во второй 3, в третьей 10, а в четвертой 6. Сколько кубиков во всех коробках?" - ищем именно сумму. А если "Какие кубики есть во всех коробках" - уже пересечение множеств.
Бред.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Понятно, я фразу эту неправильно понял, в моем случае находится общий ассортимент.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 2:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name