Страница 1 из 2
прощу помощи знатоков
Добавлено: 23 окт 2009, 17:29
soulthiefer
всем доброго дня!
помогите решить задачу пожалуйста оч нужно
собственно задача :
вбиваются пары фамилий людей которые знают друг друга например :
я - петров петров - иванов иванов-сидоров сидоров-жуков жуков-петров козлов-жуков козлов-спиридонов
нужно : ввожу фамилию человека с которым хочу познакомиться например ЖУКОВ а обратно мне выдается варианты через кого я могу познакомиться с ним -> Жуков-петров-я , жуков-сидоров-иванов-петров-я И варианты которые до меня не доведут но все равно существуют Жуков-козлов-спиридонов,
помогите пожалуйста кто знает как организовать!
заранее всем спасибо
Re: прощу помощи знатоков
Добавлено: 23 окт 2009, 18:32
Teslenko_EA
Здравствуйте soulthiefer.
В каком приложении Вы планируете "решить задачу"?
Вероятность получения помощи будет больше, если выложить с вопросом архив с файлом - наработкой.
Евгений.
Re: прощу помощи знатоков
Добавлено: 23 окт 2009, 21:32
soulthiefer
хочу решить эту задачу в excel VB т к имею небольшой опыт программирования макросов ! но с этим мне не справиться ((( не хочу думать что нельзя с помощью VB решить !
пример файла прикрепил.
в первой форме вводится пара фамилий ( люди которые знаю друр друга ) на второй вкладке вводится фамилия человека с которым нужно познакомиться ! пример вывода результата чуть правее колонки с фамилиями выделен желтым цветом! результат я думаю будет разумно выводить в msgbox.
вот как решить эту задачу не знаю вообще (
Re: прощу помощи знатоков
Добавлено: 26 окт 2009, 05:27
atavin-ta
" писал(а): имею небольшой опыт программирования макросов ! но с этим мне не справиться
Имея опыт, не справишься? Кончай прикалываться, с такой задачей можно справится не имея опыта. Давай мне спецификацию стандарта языка, которого я не знаю, через месяц я и на нём тебе это решу. Кроме низкого уровня, конечно.
Re: прощу помощи знатоков
Добавлено: 26 окт 2009, 09:01
soulthiefer
выкладываю файл в котором сделал все что мог .. в принципе все кроме поиска о котором прошу (
на первой вкладке : вводится пара фамилий ... в текстбоксах вводится если фамилии нет еще в списке в сомбобоксе выбирается из списка если существует фамилия ! Кнопка ЗАПИСАТЬ добавляет фамилии из полей в соответствующие колонки ( текстбоксы имеют приоритет перед комбо)
на второй вкладке : как раз и должен быть нужный мне поиск ( под кнопкой ПОИСК ВАРИАНТОВ расположен лэйбл3 в нем и должны выводится варианты ! пример запроса и ответов на него на самом листе справа от столбиков фамилий !
ПОМОГИТЕ пожалуйста с этим самым поиском!!!
===через месяц я и на нём тебе это решу===
через месяц я и сам решу !!!! мне нужно как можно быстрее потому и прошу помощи у знающих людей!!!
Re: прощу помощи знатоков
Добавлено: 26 окт 2009, 09:24
atavin-ta
" писал(а):через месяц я и сам решу !!!! мне нужно как можно быстрее потому и прошу помощи у знающих людей!!!
Месяц - это на освоение, а на решение - меньше одного дня. Читай внимательнее: не "за меясяц", а "через месяц". Ты же пишешь, что язык уже знаешь и имеешь опыт писанины на нём.
Re: прощу помощи знатоков
Добавлено: 27 окт 2009, 15:35
soulthiefer
сеньор девелопер вы можете мне помочь с кодом или нет ?!
я не знаю даже как подобраться к логике поиска поэтому и прошу ЗНАЮЩИХ людей помоч ! а не проверять мои знания !
Re: прощу помощи знатоков
Добавлено: 28 окт 2009, 13:49
Хыиуду
Ну, это банальнейшая задача маршрутизации графа.
Строим массив A(NxN), где N - количество народу, A(x,y)=1, если люди x и y знакомы, 0 в противном случае. Зеркалим таблицу (т.е. чтобы для любого x,y выполнялось A(x,y)=A(y,x)). Это техническая реализация.
Алгоритмически - строим рекурсивную процедуру. Назовем: А - человек, которого мы проверяем в данный момент, Х - человек, с которым мы хотим познакомиться, Список - некий массив. Псевдокод
Код: Выделить всё
НайтиЗнакомого(А, Список, Х)
для всех В, которые знакомы с А:
Если В в списке - пропустить
Если В=Х - вывести Список+Х
В противном случае - выполнить НайтиЗнакомого(В, Список+А, Х)
Запускаем с первоначальными данными НайтиЗнакомого (Я, пустой список, Жуков).
Re: прощу помощи знатоков
Добавлено: 28 окт 2009, 17:33
soulthiefer
Хыиуду, а как будет выполнятся условие вывода нескольких веток знакомства ? это обязательное условие (
хотя бы для поиска жуков есть 2 ветки развития ( : Я Петров Жуков и Я Петров Иванов Сидоров Жуков
и
вариантов ведь может в итоге не быть ! а может быть несколько !как это отследить?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
к сожалению задача оказалась не такой уж банальнейшей (((
неужели знатоки сдались (
Re: прощу помощи знатоков
Добавлено: 30 окт 2009, 08:37
atavin-ta
" писал(а):вариантов ведь может в итоге не быть ! а может быть несколько !как это отследить?
Это не надо отслеживать. Оно само получится. А самая сложность в отсечении петель. То есть варианты типа "жуков-сидоров-иванов-петров-сидорров-комаров-я" должны исключаться, так как грозят бескончным циклом. Да и как ответы врядли тебя устроят. Проверяй влево на совпадения с добавляемым узлом. Остальное не стоит внимания.