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

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

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

19 ответов

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

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

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

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

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

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

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

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

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

2 pacific_7: Учебное заведение: Чувашский ГосУнивер, факультет ИВТ. Спасибо за помощь!

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

Originally posted by BladeXP Доброе время суток! Очень нужна ваша помощь. Мне надо написать программу на С++, подбирающую рифмы, для курсовой

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

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

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

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

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

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

Originally posted by sq_deep Задача явно для СУБД.

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

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

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

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

to pacific_7: Как-то Вы слишком серьёзно восприняли моё сообщение :)

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

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

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

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

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

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

Originally posted by BladeXP Доброе время суток! Очень нужна ваша помощь. Мне надо написать программу на С++, подбирающую рифмы, для курсовой

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

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

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

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

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

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

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

📎📎📎📎📎📎📎📎📎📎