Генеалогические деревья

Вам никогда не приходила в голову мысль построить свое генеалогическое дерево? Смею утверждать, что да, потому что уже неоднократно заводил разговор на эту тему со многими людьми и всегда слышал положительный ответ и встречал живой интерес к этой теме. Причем особенно эти мысли посещают тех, кому уже перевалило за тридцать. (Но, может быть, это мне показалось.) В основном ответы были типа "Да, приходила неоднократно, но до дела так и не дошло" или "Да, я даже нарисовал дерево на бумаге - родителей, дедов...". А потом я задавал следующий вопрос: "А не пытались ли вы построить вообще схему всей своей родни?" В ответ на лице собеседника всегда появлялась попытка представить, как это вообще можно сделать, после этого следовал ответ, что нет. Оказывается, сделать это можно. Но начнем по порядку.

Было это дело прошлым летом. Нужно мне было расписать довольно громоздкий алгоритм расчета стоимости транзитных транспортировок. Не знаю, как у вас, а мне легче писать программу, когда созревает образное, визуальное представление того, что нужно сделать. Вот для этого и решил я написать небольшую утилиту, чтобы быстро манипулировать древовидной структурой и с удобством ее обозревать. Заготовка была сделана, и началось наполнение дерева данными. Но дальше оказалось, что алгоритм в своей глубине становился сетевым, действовать пришлось по-другому, а заготовка утилиты была брошена и осталась валяться на винчестере.

Специально заниматься вопросами генеалогии мне никогда не приходилось. Но мысль о построении генеалогического дерева также посещала меня неоднократно, причем ясно было, что при этом получается древовидная структура. В принципе, такую структуру можно сформировать в виде папок с помощью обычного Проводника Windows. Но вряд ли кому-то захочется иметь такое хозяйство на винчестере, а программ, более подходящих для этой цели, я не искал. И вот накануне нового года меня вдруг посетила идея насчет того, чтобы применить оставшуюся заготовку для этих целей. За час она была причесана, и я приступил к построению дерева.

Давайте рассмотрим, как построить дерево. Я позволю себе взять выдуманные фигуры для иллюстрации, так что если будет какое-то совпадение с реальными именами (и прочая) читателей - прошу извинить.

Первым узлом вносим туда того человека, от которого, собственно, и строим дерево. Затем добавляем подузел "Родители" и к нему - подузлы с информацией о родителях - фамилия, девичья фамилия, имя, отчество, а также подузел "Братья и сестры" с соответствующими подузлами (см. рис.).

Далее строим нисходящие ветви - родители родителей и их братья и сестры, родители родителей родителей и так далее, насколько хватит данных.

Удобным оказалось то, что с помощью программы легко модифицировать структуру, раскрывать/закрывать требуемые ветви. Сразу стали очевидны информационные пробелы, и я стал выяснять подробности, пару вечеров сидел на телефоне, беседовал с родственниками и выяснял. Все родственники живо откликались и помогали, насколько могли помочь.

К сожалению, много информации оказалось утрачено, тех, кто ею владел, уже не осталось в живых или не осталось здравой памяти у тех, кто еще остался жив. Так что рекомендую начинать выяснять данные о роде пораньше, не упускайте время. Потому что информационный источник, если он еще сохранился, может иссякнуть в любое и при этом самое неподходящее время. Такова жизнь. Альтернатива тогда одна - копание в архивах. Но у большинства на это не хватит ни времени, ни решимости. Мой дядя как-то проводил такую работу. Скажем прямо - это вам не на компьютере работать. Все бумажки, бумажки и ручками, ручками... И то, если архивы сохранились.

Кстати говоря, родственники просили показать результаты моей деятельности. Так что, как водится, программе недоставало умения напечатать дерево на бумаге. Еще немного усилий - и вот дерево можно печатать полностью или начиная с какого-то узла, с рекурсией по всем ветвям или так, как дерево раскрыто на экране. В результате получилась пусть и небольшая, но завершенная программа "Построитель деревьев" (на оригинальность названия не претендую).

Нужно обратить внимание на то, что, кроме нисходящих ветвей "Родители", появились ветви "Братья и сестры", которые явно боковые. Поначалу они появились для полноты информации. Следующей хорошей мыслью было дальнейшее развитие боковых ветвей. К каждому из братьев (сестер) строим подузлы "Муж (жена)" и "Дети" (Рис. 2). Далее проделываем ту же работу для нисходящих ветвей, т.е. родителей, дедов и т.д. Если есть необходимость, то можно добавлять узлы "Муж2 (Жена2)", "Дети2". Как вы догадываетесь, это связано со вторым браком. Результатом этого оказывается примечательный результат - выстраивается структура всей родни. Дальше, если есть желание и потребность, можно добавлять узлы и других видов отношений типа "Кум (Кума)", "Друг (Подруга)" и т.д.

Полученные деревья можно сохранить (и, естественно, загрузить) на диске в виде текстового файла.

Следует отметить, что построение генеалогического дерева открывает такие интересные стороны из жизни рода, о которых никогда ранее не задумывался или которые в силу тех или иных причин не задерживались в памяти, поскольку были оторваны от общего генеалогического контекста. Так что эта работа, на мой взгляд, очень полезна и в познавательном, и в духовном плане.

Возможно, кому-то такая схема представления покажется недостаточно строгой, но если ставить во главу угла результат, то он, на мой взгляд, налицо. Единственная трудность в представлении возникает тогда, когда род расходится, а в нижних коленах где-то сходится, то есть образуется сетевая структура. Однако это встречается, наверно, не так часто и не более, чем в одном экземпляре на человека, от которого строится дерево, так что с этим мириться вполне можно.

Редакция газеты с интересом отнеслась к описываемой теме и любезно предоставила возможность разместить архив программы "Построитель деревьев" для свободного скачивания на своем сайте (www.kv.minsk.by/files/tb.zip).

Возможно, существуют и другие аспекты построения генеалогических деревьев. Кроме этого, в жизни существует множество объектов, которые представляются в виде деревьев, поэтому очень вероятно использование программы и для других целей. Если захотите, пишите мне об этом. Буду рад.

Юрий А. СМАНЦЕР,
georgesman@mail.ru

Версия для печатиВерсия для печати

Номер: 

08 за 2000 год

Рубрика: 

Азбука программирования
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Страницы

Аватар пользователя Дмитрий
Кому нужны генеалогические деревья!?

Новым русским?!?! Вряд-ли, они даже слова такого не знают. Старым дворянам!?

Да они и на пушечный выстрел никого не подпустят к своим "деревьям". А нам, юзерам и ламмерам - до лампочки....

:-)

Аватар пользователя Ўладзіслаў
Можа быць іркуцкія інжэнеры размнажаюцца дзяленьнем, як амёбы?

Але ўва ўсіх іншых ёсьць продкі, і многім цікава ведаць пра іх.

Што тычыцца праграмы, апісанай у тым артыкуле, дык праграма слабаватая.

Аватар пользователя Glen
To: Ўладзіслаў

Вопрос не по теме форума, но вдруг вы знаете: известны ли Вам какие-нибудь программы для проверки правописания/орфографии БЕЛОРУССКОГО языка? Неважно, будут ли это отдельные продукты либо plug-in’ы к текстовым редакторам.

Заранее благодарю,

Glen

Аватар пользователя Ўладзіслаў
На сёняшні дзень, здаецца, няма гэткага. Але ведаю, што праца вялася, і штосьці, накшталт бэта-версіі, існавала.
Аватар пользователя Glen
To: Ўладзіслаў

Что, и для MS Word соотв. модуля нет?

Аватар пользователя Стары Беларускi Шляхцiч
Хочу сказать всей интересующейся публике (для справки), что все, родившиеся до большевиков, жители как России так и Беларуси начиная с Великих Князей и кончая последним мужиком знали своё происхождение. Другое дело, что у дворян это происхождение было оформлено на бумаге в виде пресловутого "Генеалогического древа", а мужики передовали его из уст в уста... Но поверьте мне, если сейчас попросить какого-нибудь 90-летнего деда рассказать о своих предках, то он опишет череду поколений лет на 300-400 назад не только свою, но и своей жены, своих родственников, её родственников и прочих, приходящихся "с боку-припеку"!

Вдобавок он может перечислить кто чем владел и кому какая земля принадлежала!

Вот так!

Аватар пользователя Ўладзіслаў
Максімальныя вусныя веды — гэта 5 пакаленьньў. Пакаленьне лічыцца за 30 год, гэткім чынам — 150 год. За сваю вялікую практыку я ня чуў большага.

Вышэйсказаныя словы цешаць, аднак не адпавядаюць рэчаіснасьці.

Аватар пользователя Lee Dong
2Glen.

Ведаеш, чаму, апроч іншага мне падабаецца родная мова? У старой граматыке калісьці прачытаў: "... калі Вы ня ведаеце, як дакладна пабудаваць сказ, рабіце, каб ен гучаў прыгожа...". А ты спелчэкер, спелчэкер... :)

Аватар пользователя Lee Dong
www.genopro.net -

"..Ах, душенька, столько уже пьес написано, вовек не переиграешь..."

М.Булгаков "Театральный роман"

Аватар пользователя Abadonna
2 Стары Беларускi Шляхтiч

Это смотря какой дед. Доподлинно могу сказать, что мои престарелые родственники были в свое время столь застрёманы большевиками, что напрочь забыли не только о существовании каких бы то ни было предков, но и о родных братьях/сестрах, подавшихся непосредственно перед революцией на заработки в канаду.

Страницы