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

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

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

 
 Ответить  Открыть новую тему 
> помогите с множествами
сообщение
Сообщение #1


Новичок
*

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

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


вот условие задачи:
type name= ( Вася, Володя Ира, Сергей и т.д.)
gosty=set of name;
gruppa=array[name] of gosty;
Программа должна определить есть ли в группе хотя бы 1 человек, побывавший в гостях у всех остальных из группы ( gruppa[x]- множество людей, бывавших в гостях у человека с именем x)



вот насколько я понимаю теорию...

type name = ( Сергей , Миша, Ира)
gosty sen of name ;
gruppa=array[name] of gosty;

получеются все подмножества множества Сергей, Миша , Ира, записанных в массиве, т.е
[];
[Сергей];
[Миша];
[Ира];
[Сергей,Миша];
[Сергей, Миша, Ира];
[Миша, Ира];
[Ира, Сергей];

вот теперь возникает вопрос что такое gruppa[Сергей] =????
как это всё распределяется в множестве... помогите кто может что подсказать
далее не совсем понятно условие задачи.. препод полный вася ничё не объясняет... это последняя задача по курсу..
вот_)
объясните мне чёнить плз
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






В поиск... Дословно это же задание решалось!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


я шерстил уже нифига не нашёл, помоги плз
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Задача на мн-ва
Не оно?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


оо спс, БОЛЬШОЕ СПС))))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

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

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


Если не сложно объясните что тут почём или дайте почитать чёнить а то я не понимаю вообще о чём тут речь идёт.. мне надо такую же прогу только чтобы чел-к с клавиатуры забивал кто у кого в гостях был... глупая задача(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


!help.gif boredom.gif !help.gif ребят плз помогите... завтра надо сдать а то выгонят нафих(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


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

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

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


там же комментарии есть
если что-то непонятно, задавай конкретные вопросы.


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


Новичок
*

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

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


конкретно, что нужно сделать чтобы пользователь сам вводил кто у кого в гостях был! а я ваще не врубаюсь как это сделать!(((( да и вообще есть что нить почитать о множествах а то везде как то всё скудно!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


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

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

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


ну например так:
1) сделать функцию, переводящую строку в имя (как перечислимый тип).
то есть передаешь ей строку, там сравниваешь (if s='misha' then... ) и возвращаешь имя.
2) спрашиваешь у кого в гостях были, преобразуешь строку с помощью этой функции, запоминаешь хозяина.
3) спрашиваешь, кто был, и делаешь include(group[хозяин],имя_гостя)

Добавлено через 1 мин.
для "почитать":
http://www.lectureroom.net/index.php?id=312
http://pascal.guti.ru/sets.html


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


Новичок
*

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

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


а я не могу проще сделать , ведь у меня type name= ( Вася, Володя Ира, Сергей и т.д.) определённое ограниченное количество!
я не могу понять вот что:

for i:=1 to 10 do begin (по условию скоко было чел-к)
writeln('kto bil v gostax y',k[i]); k-массив содержащий список имён


а как далешь писать я не знаю) посвятите непросвященного()
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


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

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

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


тогда уж так:
for i:=vasya to misha do
for j:=vasya to misha do
if j in group[i] then ...

здесь тебе будет нужна функция преобразования имени в строку


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


Гость






Цитата
тогда уж так:
Угу... А потом преподаватель просит первым добавить Колю, последней - Люду, и Element ползает по всей программе в поисках бага: почему же Колю и Люду программа игнорирует? Не надо привязываться к конкретным значениям: для работы с перечислимыми типами специально в язык ввели High/Low
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

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

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


type
name = (vasya, volodya, ira, lida, marina, misha);
var
i, j: name ;
begin
for i := low(name) to high(name) do
begin
writeln('vvedite kto bil v gostax y',name);


так, т.е пользователь ввёл через запятую имена, надо теперь имена в строке разделить на слова и то что получится перевести в имя, я правильно понял...:::???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






То, что ты привел - не будет компилироваться... Смотри:

type
name = (vasya, volodya, ira, lida, marina, misha);
const
names: array[name] of string = (
'vasya', 'volodya', 'ira', 'lida', 'marina', 'misha'
);

var
i, j: name;
begin
for i := low(name) to high(name) do begin
writeln('vvedite kto bil v gostax y', names[i]);
readln(s);
{ теперь читаешь строку, разделяешь ее на слова, и ... }

{ допустим, в строке присутствует имя, хранящееся сейчас в P }
for j := low(name) to high(name) do
if names[j] = P then begin
{ J - это как раз переведенное в тип Name имя ... Делаешь с ним то, что нужно }
break;
end;



Чтобы сделать более обобщенную версию (которая не будет зависеть от регистра введенных символов, скажем), сравнивать можно и так:
    if upstr(names[j]) = upstr(P) then begin
(реализация функции upstr как для латинских символов, так и для кириллицы есть на форуме)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

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

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


напишите мну кто нить эту прогу от начала до конца плз, извините за флуд и создание тем в задачах на заказ, напишите скоко стоить будет, оч. прошу, правда не понимаю как это делать вапще(((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Я же все уже рассказал, надо было только собрать:

type
name = (vasya, volodya, ira, lida, marina, misha);
guests = set of name;
group = array[name] of guests;

const
limits = [' ', ','];
names: array[name] of string = (
'vasya', 'volodya', 'ira', 'lida', 'marina', 'misha'
);

function vezde(gr: group): boolean;
var
i, j: name;
res: boolean;
was: set of name;
begin
res := false;
for i := low(name) to high(name) do begin
was := [];
for j := low(name) to high(name) do
if (i in gr[j]) then was := was + [j];
res := res or ((was + [i]) = [low(name) .. high(name)])
end;
vezde := res
end;

var
_group: group;
i,back,n : byte;
i_name, j_name: name;
s, the_word: string;

begin

for i_name := low(name) to high(name) do begin
writeln('vvedite kto bil v gostax y ', names[i_name]);
readln(s);

i := 1;
while(i<=length(s)) do begin
while(i<=length(s)) and (s[i] in limits) do inc(i);
if i<=length(s) then begin
back := i;
while(i<=length(s)) and not(s[i] in limits) do inc(i);
inc(n);
the_word := copy(s, back, i-back);

for j_name := low(name) to high(name) do
if names[j_name] = the_word then begin
include(_group[i_name], j_name);
break;
end;

end;
end;
end;
writeln(vezde(_group))

end.

(комментарии добавлять не стал, все выдрано из уже прокомментированных программ)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Новичок
*

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

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


Volvo Большое при большое списськи)) просто не понимаю я этот паскаль, мну учили сначала на си, недоучили а счас на паскале а прпод вообще ничё не грит..!"(((((((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Новичок
*

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

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


извините что я ВАМ наверно надоел , но у мя такая ошибка 105 at 00404077
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Гость






Ошибки 105 (если ты НЕ правил мою программу) не может быть по определению: я с файлами нигде не работал... Это первое... А второе - ты разделом не ошибся? Ты получил ошибку где угодно,только не в Турбо Паскале... А в ЭТОМ разделе - программы именно для него...

Так что претензии предъявляй сам себе.
 К началу страницы 
+ Ответить 

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

 





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