Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8

Из заданного слова получить другие слова

19.01.2017, 11:16. Показов 1616. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для работы этой программы требуется файл ИИ.txt, в
котором будут слова (в строке одно слово).
1. В поле txtT вы вводите любое интересное вам слово
2. Нажимаете кнопку
3. В поле txt2 программа выдаст вам список слов, которые
могут быть образованы из данного слова, при условии, что
эти слова есть в вышеупомянутом файле
4. Буквы "е" и "ё" , а также "и" и "й" считаются равными

Вопрос
Можно ли эту программу упростить?

примечание
файл со списком русских слов можно найти в интернете.
я нашел один такой файл (почти 100 000 слов) - его надо еще
обработать - мне столько слов не нужно
...
на картинке пример - программа нашла 15 слов (в файле других не было)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Option Explicit
Dim S As String, S2 As String, T As String, t1 As String
Dim N As Long, i As Long, k As Long
 
Private Sub cmdD_Click()
    txt2.Text = ""
    k = 0
    cmdD.BackColor = vbRed
    cmdD.Refresh
    Open "ИИ.txt" For Input As #1
    S = txtT.Text
    S2 = S
    Do
        Line Input #1, T
        If T = "" Then GoTo 100
        S = S2
        
        For i = 1 To Len(T)
            t1 = Mid$(T, i, 1)
            N = InStr(S, t1)
            
            If N Then
                Mid$(S, N, 1) = "="
            ElseIf t1 = "й" Then
                N = InStr(S, "и")
                If N Then Mid$(S, N, 1) = "=" Else GoTo 100
            ElseIf t1 = "и" Then
                N = InStr(S, "й")
                If N Then Mid$(S, N, 1) = "=" Else GoTo 100
            ElseIf t1 = "ё" Then
                N = InStr(S, "е")
                If N Then Mid$(S, N, 1) = "=" Else GoTo 100
            ElseIf t1 = "е" Then
                N = InStr(S, "ё")
                If N Then Mid$(S, N, 1) = "=" Else GoTo 100
            Else
                GoTo 100
            End If
        Next
        
        If k Then txt2.Text = txt2.Text + vbCrLf
        k = k + 1
        txt2.Text = txt2.Text + Str$(k) + ". " + T
100
    Loop Until EOF(1)
    cmdD.BackColor = vbGreen
    Close #1
End Sub
Миниатюры
Из заданного слова получить другие слова  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.01.2017, 11:16
Ответы с готовыми решениями:

Как поставить точку в конце каждого слова?(слова записаны в столбик!)
Здравствуйте ) мучаюсь с этой задачей уже 8 пару...(( Открыть файл в textbox1, затем нажать на кнопку и в textbox2 должен появиться эти...

Напечатать буквы, с которых начинаются слова в заданном тексте. Слова разделены пробелом
16. Напечатать буквы, с которых начинаются слова в заданном тексте. Слова разделены пробелом.текст задается пользователем

Напечатать те слова последовательности, которые отличны от последнего слова
Доброго времени суток. Есть проблема с обработкой текста. "Дана последовательность слов . Напечатать те слова последовательности ,...

6
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
19.01.2017, 15:38
Цитата Сообщение от echs Посмотреть сообщение
а также "и" и "й" считаются равными
Выражаю по этому поводу категорический протест!
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
19.01.2017, 15:53  [ТС]
Pro_grammer
Вообще то это игра такая. Очень хорошо развивает
память. Если вам хочется, чтобы буквы "и" и "й" различались,
то удалите из программы строки 24-29. Всё будет работать.

примечание
не я придумал эти правила. обычно в качестве слов используют
существительные в единственном числе...

Добавлено через 3 минуты
Из слова "алгоритм" получилось 70 слов
(это когда я подключил файл на 100 000 слов)
1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
19.01.2017, 17:06
Цитата Сообщение от echs Посмотреть сообщение
Если вам хочется, чтобы буквы "и" и "й" различались,
то удалите из программы строки 24-29. Всё будет работать.
Да я в курсе! Так, шучу просто...
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
19.01.2017, 17:51  [ТС]
Pro_grammer
Я тут подумал. А что если в основном слове сразу
заменить буквы "ё" и "й" на "е" и "и" (если таковые будут),
тогда и проверка на "ё" и "й" просто не потребуется...
Код будет короче? - может быть. А будет ли быстрее?
...
Программа и так быстро работает - ждать не приходится.
0
Заблокирован
19.01.2017, 21:47
Прям идиллия из спасибок, отзывов и лучших ответов
А можно мне поучаствовать?
Лет 15 назад творил - пробовать надо в VBA(Excel)
Вложения
Тип файла: zip Slova.zip (163.8 Кб, 8 просмотров)
2
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
19.01.2017, 22:58
Можно попробовать заюзать цепи Маркова для этой задачи. Я для своей программы генерирующей музыку сделал генератор фраз, но там смысл в генерации новых слов на основе словаря.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.01.2017, 22:58
Помогаю со студенческими работами здесь

Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по указанному правилу
Дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами - не менее одного пробела....

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

Указать минимальное количество первых букв, по которым можно различить слова из заданного набора
Указать минимальное количество первых букв, по которым можно различить слова из заданного набора(слова разделены пробелами) Вообщем,...

Слова-перевертыш из третьего слова
Дается фраза из нескольких слов. Составить проект : составление слова-перевертыша из 3 слова. Фраза записывается целиком.

Получить из одного слова другие слова с помощью срезов и извлечения символов
Дана строка, равная слову ’Программа’. Получить из неё слова ’ром’ и ’рамПа’ с помощью срезов и извлечения символов. А то срезы не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru