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

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

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

> помогите с множествами
Element
сообщение 23.12.2006 15:51
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 19)
volvo
сообщение 23.12.2006 15:59
Сообщение #2


Гость






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


Новичок
*

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

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


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


Гость






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


Новичок
*

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

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


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


Новичок
*

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

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


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


Новичок
*

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

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


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


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

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

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


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


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


Новичок
*

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

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


конкретно, что нужно сделать чтобы пользователь сам вводил кто у кого в гостях был! а я ваще не врубаюсь как это сделать!(((( да и вообще есть что нить почитать о множествах а то везде как то всё скудно!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.06.2007 20:21
Сообщение #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 
 К началу страницы 
+ Ответить 
Element
сообщение 13.06.2007 20:35
Сообщение #11


Новичок
*

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

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


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

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


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


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

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

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


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

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


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


Гость






Цитата
тогда уж так:
Угу... А потом преподаватель просит первым добавить Колю, последней - Люду, и Element ползает по всей программе в поисках бага: почему же Колю и Люду программа игнорирует? Не надо привязываться к конкретным значениям: для работы с перечислимыми типами специально в язык ввели High/Low
 К началу страницы 
+ Ответить 
Element
сообщение 13.06.2007 21:19
Сообщение #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 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.06.2007 21:32
Сообщение #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 как для латинских символов, так и для кириллицы есть на форуме)
 К началу страницы 
+ Ответить 
Element
сообщение 13.06.2007 23:24
Сообщение #16


Новичок
*

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

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


напишите мну кто нить эту прогу от начала до конца плз, извините за флуд и создание тем в задачах на заказ, напишите скоко стоить будет, оч. прошу, правда не понимаю как это делать вапще(((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 14.06.2007 0:18
Сообщение #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.

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


Новичок
*

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

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


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


Новичок
*

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

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


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


Гость






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

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

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

 



- Текстовая версия 20.06.2025 7:00
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"