Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2008, 22:14   #1
Gauss
Форумчанин
 
Аватар для Gauss
 
Регистрация: 26.11.2007
Сообщений: 235
По умолчанию Разложение введенного слова в виде дерева на дельфи

Всем привет! У меня проблемка вышла с алгоритмом, помогите кто чем сможет.
Дело в том, что я хочу создать прогу такйю что ввожу слово в едит, а на форме чтоб это слово разложилось в виде дерева по принципу гласный, согласный, гласный..

и соответсвенно если слово начинается с согласного то в корне будет согласный.

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

Помогите исправить ошибки пожалуйста, вот выкладываю модуль.
Вложения
Тип файла: txt код StringTree Delphi.txt (5.6 Кб, 132 просмотров)

Последний раз редактировалось Gauss; 21.03.2008 в 22:17.
Gauss вне форума Ответить с цитированием
Старый 22.03.2008, 00:09   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Имхо проще и быстрее самому написать, чем в чужом коде ошибки искать. Тем более задача то не сложная. Только я не совсем понял по какому принципу слово разлаживать.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 22.03.2008, 00:25   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Нашел готовую программу для построения дерева
Это не программа, а код компонента (убей-зарежь - не понимаю, зачем для тривиальной задачи писать компонент...)
Разберитесь со штатным TTreeView и напишете спокойно свою программу.
Как всегда, напоминаю о существовании литературы для начинающих на сайте клуба (ссылка в низу каждой страницы форума).
mihali4 вне форума Ответить с цитированием
Старый 22.03.2008, 11:22   #4
Gauss
Форумчанин
 
Аватар для Gauss
 
Регистрация: 26.11.2007
Сообщений: 235
По умолчанию

Цитата:
Это не программа, а код компонента (убей-зарежь - не понимаю, зачем для тривиальной задачи писать компонент...)
Разберитесь со штатным TTreeView и напишете спокойно свою программу.
Ясно, я незнал просто что такой компонент TTreeView есть в дельфи
Буду копать теперь в этом направлении))

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

Последний раз редактировалось Gauss; 22.03.2008 в 11:51.
Gauss вне форума Ответить с цитированием
Старый 22.03.2008, 13:00   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Только я не совсем понял по какому принципу слово раскладывать
(налаживать какое-то устройство, улаживать с кем-то проблемы, но уж никак не "разлаживать")
Цитата:
идет разложение слова в двоичное дерево
То есть каждая буква слова - самостоятельная ветвь дерева, так надо понимать?
Тогда перебираете все буквы, начиная с первой и добавляете - для первой - корневую ветвь, для остальных - ветви-детки этой корневой (или как детку для каждой предыдущей ветви-буквы, тут вопрос пока так и остался неясным).

Последний раз редактировалось mihali4; 22.03.2008 в 13:03.
mihali4 вне форума Ответить с цитированием
Старый 22.03.2008, 16:18   #6
Gauss
Форумчанин
 
Аватар для Gauss
 
Регистрация: 26.11.2007
Сообщений: 235
По умолчанию

Цитата:
для остальных - ветви-детки этой корневой (или как детку для каждой предыдущей ветви-буквы, тут вопрос пока так и остался неясным).
Для остальных, как детку для каждой предыдующей ветви-буквы.
Типа такого
Гласная: Гласная1, Согласная1. Потом
Гласная1: Гласная2, Согласная2 и Согласная1: Гласная3, Согласная3 и т.д. если смог хоть как то пояснить)) Ну то есть бинарное, полное дерево в ветках которых чередование гласных и согласных.
Gauss вне форума Ответить с цитированием
Старый 22.03.2008, 19:45   #7
НЕ_АЙС
Форумчанин
 
Регистрация: 18.04.2007
Сообщений: 135
По умолчанию

Эээ...ну если следовать вашей логике, то у вас в результате разложения получится совсем не бинарное дерево.
Приведу пример. Возьмем слово ДЕРЕВО.
Д
\
Е
/
Р
\
Е
/
В
\
О

Если же строить бинарное дерево по принципу гласный согласный, то получится
Д
/ \
Р Е
/ \
В Е
\
О


Возможно вам нужно разложить слово не по принципу ГЛАСНЫЙ-СОГЛАСНЫЙ, а по принципу БОЛЬШЕ-МЕНЬШЕ?
Т.е. Е больше Д, а значит строим правую ветвь и т.д.
НЕ_АЙС вне форума Ответить с цитированием
Старый 23.03.2008, 21:57   #8
Gauss
Форумчанин
 
Аватар для Gauss
 
Регистрация: 26.11.2007
Сообщений: 235
По умолчанию

Цитата:
Эээ...ну если следовать вашей логике, то у вас в результате разложения получится совсем не бинарное дерево.
Извините, а это не бинарным деревом считается? =>
Г
/ \
Г С
/\ /\
Г С Г С
..............
{где Г-Гласные буквы, С-Согласные буквы}.
А ваш пример со словом "дерево" просто разложение в это дерево (по принципу гласный-согласный) и всё.
Gauss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма цифр введенного трехзначного числа. Дельфи by -ORTODOX- Помощь студентам 20 02.02.2011 14:21
Проверка введенного значения yourself Microsoft Office Excel 4 21.04.2008 18:40
Разложение в ряд Маклорена Mari Помощь студентам 2 03.02.2008 23:23
Меню в виде дерева pu4koff JavaScript, Ajax 7 16.10.2007 11:24