Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Подбор рифмы... или снова нужна помощь...

7.2K
22 апреля 2005 года
BladeXP
26 / / 14.03.2005
Доброе время суток! Очень нужна ваша помощь.
Мне надо написать программу на С++, подбирающую рифмы, для курсовой

Вот, что от меня хотят преподы:

Цитата:
Разработать приложение, которое бы помогало при подборе рифмы к слову. Функции приложения:
– поддержка словаря-справочника слов, в котором задаются: само слово, часть речи, тема, падеж/род/склонение/ипр. (для каждого слова каждая форма заносится отдельно);
– задание количества последних символов (окончания) слова, по которым ищется рифма;
– поиск точной (полное совпадение окончаний, например, мама-рама) рифмы по критериям: часть речи, падеж, тема, комплексный поиск; составление списка всех слов, подходящих по критерию поиска; – поиск неточной (совпадение только части окончаний, например, глаза-небеса; глаза-небесах) рифмы по критериям: часть речи, падеж, тема, комплексный поиск (возможно пропуск критерия); возможность настройки маски совпадений; составление списка всех слов, подходящих по критерию поиска.



Плизз, помогите! Сам я совершенно без понятия что делать :( А сдавать уже скоро... HELP!!!

243
23 апреля 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by BladeXP
Мне надо написать программу на С++, подбирающую рифмы, для курсовой...
Вот, что от меня хотят преподы:


О! Горячая тема! И чем ближе июнь, тем горячее она становится!
И почему это ты ждешь, что кто-то ринется выполнять твое задание? Я думаю таких не будет. Вот если бы ты стал спрашивать что-то конкретное по программе, тогда другое дело.
Что не ясно то? Словарь - файлы, каждый из которых содержит слова отдельной части речи, каждое слово в отдельной строке.
Как искать? Читаешь строчку из нужного файла словаря (только не спрашивай как выбрать файл), берешь слово к которому нужно подобрать рифму, выделяешь из него заданное число последних символов в отдельную строчку и сравниваешь ее с концовкой считанного слова, или осуществляешь поиск этой строчки в считанном слове - это в зависимости от выбранных опций. Нашел - выводишь слово. И так до конца файла.
Как это делается программно - разбирайся сам. Смотреть в сторону функций fopen(), fread() или fgets(), feof(), fclose()- это для работы с файлами в стиле стандартного Си. Или CreateFile(), ReadFile(), ReadFileEx(), CloseHandle() - если испольвзовать WinAPI.
Для работы со строками: str*() - функции Си начинающиеся на str. Например strchr(), strstr(), strlen() и т.д.
Конечно это далеко не все функции которые будут нужны, но на то и дана голова, что бы думать.

7.2K
23 апреля 2005 года
BladeXP
26 / / 14.03.2005
Цитата:
Originally posted by pacific_7
...
И почему это ты ждешь, что кто-то ринется выполнять твое задание? Я думаю таких не будет...


Я не расчитываю, что кто-то ринется все делять за меня... Я, всего лишь СОВЕРШЕННО не представляю с чего начать X)-
В любом случае спасибо за подсказку... :)

243
24 апреля 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by BladeXP
Я не расчитываю, что кто-то ринется все делять за меня... Я, всего лишь СОВЕРШЕННО не представляю с чего начать X)-
В любом случае спасибо за подсказку... :)


Всегда пожалуйста, только не понятно, чему же тебя в универе учат? Если ты даже понятия не имеешь, с чего начать...

7.2K
24 апреля 2005 года
BladeXP
26 / / 14.03.2005
Цитата:
Originally posted by pacific_7
Всегда пожалуйста, только не понятно, чему же тебя в универе учат? Если ты даже понятия не имеешь, с чего начать...


В том-то и дело что не чему не учат по программированию, причем не только меня, но и всех... И это притом, что я еще не самый глупый в программировании...
PS Все приходится познавать самому :(

243
25 апреля 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by BladeXP
PS Все приходится познавать самому :(


Ура! Человек осознал истину!
Думаешь меня или многих других на этом форуме (из тех, кто знает больше меня) кто-то учил?
А что за уч. заведение, если не секрет?
ЗЫ Если что непоятно совсем, и разобраться самому нет никаких шансов, то тогда спрашивай. Чем смогу - помогу, думаю не только я.

10
25 апреля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by BladeXP
В том-то и дело что не чему не учат по программированию, причем не только меня, но и всех...


Так не бывает. Должен соблюдаться баланс.

n-ное число лет назад я имел честь учиться в заведении, где ровным счетом ничему не учили. Но нам не задавали таких лаб. А если что-то и было сложное, всегда была полулегальная возможность достать решение, списать на худой конец.

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

7.2K
25 апреля 2005 года
BladeXP
26 / / 14.03.2005
2 Freeman:
Доважу до вашего сведения, что я действительно прогулял целых 2(огромное число!) лекции по программированию в первом семестре и ноль целых хрен десятых во втором семестре! Если вы считаете, что неотрывное нудное чтение лекции с листа(!) лектором, и ответы "Не знаю..." лектором-преподом на любой вопрос обучением? Дело ваше!
Но фразу "...вешаете лапшу на уши." в мой адрес я лично считаю оскорбительным!
И еще одно: судя по вашей манере вешать ярлыки, очень заметно что вы учились "в заведении, где ровным счетом ничему не учили."

2 pacific_7:
Учебное заведение: Чувашский ГосУнивер, факультет ИВТ.
Спасибо за помощь!
243
26 апреля 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by BladeXP
2 Freeman:
Доважу до вашего сведения, что я действительно прогулял целых 2(огромное число!) лекции по программированию в первом семестре и ноль целых хрен десятых во втором семестре! Если вы считаете, что неотрывное нудное чтение лекции с листа(!) лектором, и ответы "Не знаю..." лектором-преподом на любой вопрос обучением?...


Умиротворяющий офтоп:
Да ладно вам сраться ребята ;)
Все дело в том, что у вас видимо разные по типу преподы попадались.
Я вас понимаю обоих, т.к. сам прошел и через "диктаторов" - в смысле которые только диктуют ничего не объясняя и при этом много спрашивая. И через тех, кто нифига не знает, но при этом ничего сложного не задает.
Феноменальное "везение". И все это счастье за три года обучения в колледже.
BladeXP - расслабься в отношении учебы, раз там нифига не учат ;) Лекции можно в таком случае просто пропустить через ксерокс. Просто ты наверно еще первый курс...

1.3K
04 мая 2005 года
Zephyr
104 / / 03.05.2005
М-да!! тема дествитьлно горячая!!!
Я сам недавно взялся писать такую прогу!
Буквально дня два пописал - и забил на это дело
Уж очень гиморно!!!
Слишком уж богат наш великий и могучий на части речи!!!
425
04 мая 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by BladeXP
Доброе время суток! Очень нужна ваша помощь.
Мне надо написать программу на С++, подбирающую рифмы, для курсовой

Вот, что от меня хотят преподы:

.............................

Плизз, помогите! Сам я совершенно без понятия что делать :( А сдавать уже скоро... HELP!!!


Задача явно для СУБД.

Делаете плоскую таблицу слов с признаками.

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

Короче, BladeXP, вы попали. Сочувствую. Зря вас тут ругали. Тут учись, не учись, а задача муторная. Советую пока не поздно купить решение у предыдущего курса. Либо потратить на это дело неделю full time. Без подруг, выпивки и прочих развлечений. Тоска :(

243
05 мая 2005 года
pacific_7
1.9K / / 06.09.2004
Эх, не хотел писать, ибо флуд, но все же:
Цитата:
Originally posted by sq_deep
Задача явно для СУБД.

Делаете плоскую таблицу слов с признаками.

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


Это все вы предлагаете на C++ разрабатывать с нуля??? Естественно, что займет кучу времени.
И при этом предлагаете сделать плоскую таблицу слов с признаками человеку который толком не знаком с основами программирования!
Эта задача не для СУБД (хотя так конечно было бы проще), а для того, что бы в человеке развить умение логически мыслить, находить решения с нуля. Внимание: заданиие не по курсу БД, а по программированию.

Цитата:
Originally posted by sq_deep

Тут учись, не учись, а задача муторная. Советую пока не поздно купить решение у предыдущего курса. Либо потратить на это дело неделю full time. Без подруг, выпивки и прочих развлечений. Тоска :(


Ага, а зачем вообще своей головой думать? В нее только есть надо. От того, что задача муторная (а это не так ИМХО), она не становится нерешаемой. Можно подумать - в программировании все задачи исключительно развлекательного характера.
BladeXP - искать и не сдаваться, найти и перепрятать ;) Если беретесь, то сделаете - в общем ничего сложного нет. Я думаю, что вам не нужно осуществлять поиск по базе сравнимой со словарем Даля. Сделайте для начала по минимуму - несколько сотен, а затем разовьете идею (если время останется). И на интерфейс сильно можно не наседать - для начала и коммандная строчка подойдет.

425
05 мая 2005 года
sq_deep
498 / / 18.02.2005
to pacific_7:
Как-то Вы слишком серьёзно восприняли моё сообщение :)

Я просто имел в виду, что сам сделал бы этот курсовик на MS Access. А если нужен словарь Даля, то на Oracle или MS SQL. Это позволило бы сразу воспользоваться готовыми хорошими средствами хранения и фильтрации данных. А в случае Access ещё и формы можно легко сделать.

Свои СУБД я разрабатывать не собираюсь, конечно. Все велосипеды изобретены уже.

Кроме того, если заметили, я добавил, что если заниматься этой задачей, а не чем-нибудь другим, то её можно за неделю написать вместе с пояснительной запиской. Если немного недопереспать, то и ещё быстрее.
488
05 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Эту задачу, IMHO лучше всего решить с использованием STL.
2.1K
16 мая 2005 года
greyich
117 / / 02.02.2005
Цитата:
Originally posted by Mоngооsе
Эту задачу, IMHO лучше всего решить с использованием STL.



да ладно Вам умничать, мужики (и девушки конечно если вы есть) в своё время я писал похожую прогу (что то типа проговаривателя текста (слово из головы вылетело как это назвать)).
короче:
- для словаря в 100-200 слов можно не заморачиваться и зафигачить текстовый файл (я так уже предчувствую что меня другие обитатели форума начнут бить ногами).
- вместе с каждым словом надо хранить место ударения в этом слове (легче всего при заносе в "словарь" в месте ударения ставить апостраф)
- единственное что ИМХО кажется важным - чтобы слова хранились в алфавитном порядке (сам не знаю почему - просто ж...ой чую. например потом можеть захэшировать их если время будет)
- на половину функций описанных в твоем первом пункте предлагаю ваще забить и сказать мол были разработаны сложнейшие алгоритмы так что на дополнительные функции времени не осталось. типа пусть это следующий курс доделывает. а пока радуйтесть и тому что я принес.
ну и так далее. хотя чтобы реализовать все функции и сделать проект который можно будет модернизировать в дальнейшем - всётаки лучше будет с БД.

243
17 мая 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by greyich
- единственное что ИМХО кажется важным - чтобы слова хранились в алфавитном порядке (сам не знаю почему - просто ж...ой чую. например потом можеть захэшировать их если время будет)


Само собой! Например тогда двоичный поиск можно применять.

488
17 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by greyich
да ладно Вам умничать

greyrich как раз ты теперь, поумничал. Может открою для тебя секрет, но программисты при написании программ, ориентируются на свою голову, а не на другую часть тела. Потом что за совет забить на половину ф-ий, потому-что они якобы через чур сложны? Что это за специалист? Говорит заказчику, эти ф-ии вам ненужны, так как я их немогу закодить. :D

259
17 мая 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by BladeXP
Доброе время суток! Очень нужна ваша помощь.
Мне надо написать программу на С++, подбирающую рифмы, для курсовой

Вот, что от меня хотят преподы:



Плизз, помогите! Сам я совершенно без понятия что делать :( А сдавать уже скоро... HELP!!!


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

2.1K
19 мая 2005 года
greyich
117 / / 02.02.2005
Цитата:
Originally posted by Mоngооsе
greyrich как раз ты теперь, поумничал. Может открою для тебя секрет, но программисты при написании программ, ориентируются на свою голову, а не на другую часть тела.



был какой то анекдот, как билл гейтс писал задницей виндоуз, но я его к сожалению не помню.
если вспомню то расскажу.

Цитата:

Потом что за совет забить на половину ф-ий, потому-что они якобы через чур сложны? Что это за специалист? Говорит заказчику, эти ф-ии вам ненужны, так как я их немогу закодить. :D



Цитата:
Originally posted by BladeXP

Плизз, помогите! Сам я совершенно без понятия что делать А сдавать уже скоро... HELP!!!



не сложны а просто не необходимы, имхо. больше юмора. Mоngооsе, относитесь проще.

831
19 мая 2005 года
S_T
117 / / 23.10.2002
Цитата:
Originally posted by BladeXP
В том-то и дело что не чему не учат по программированию, причем не только меня, но и всех... И это притом, что я еще не самый глупый в программировании...
PS Все приходится познавать самому :(


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

Ну а теперь по самой сути. Тут тоже получается два варианта:
1. Если Вы учитесь на менеджера, экономиста, лингвиста, историка, итп - вам в принципе нафиг не нужно программирование - за Вас это должны будут делать другие люди, а Вы будете профессионально заниматься своим делом. В этом случае - идете в любую контору (которых не мало), платите деньги - и Вам быстро, и может даже качественно сделают нужную программу.
2. Если в учитесь на программиста, математика, физика и тп. - то Вы зря потеряли целый год - в этом случае Вам нужно было не полагаться на нерадивых преподавателей, а покупать книжки и заниматься самому... Ну а сейчас решение Вашей проблемы такое же, как и в первом случае... Хотя, может Вы успеете разобраться во всем самостоятельно...

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог