Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для OrestBerserker
2 / 1 / 0
Регистрация: 27.01.2015
Сообщений: 179

Алгоритм замены слов в начале и конце строки

20.05.2021, 12:43. Показов 742. Ответов 5

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

Может у кого-то была подобная проблема?
Какие решения возможны?
Добавлять для 1 случая пробел в начале и 2-го в конце, лишь частично решает проблему, т.к. могут буть знаки препинания, а также фамилия может в 1 случае стоять в начале строки, а во 2-м в конце.


PS может Тема для другой ветки? Тогда куда посоветуете?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.05.2021, 12:43
Ответы с готовыми решениями:

В строке символов удалить все пробелы в начале и в конце строки, удвоить пробелы в середине строки и напечатать количество слов
В строке символов удалить все пробелы в начале и в конце строки, удвоить пробелы в середине строки и напечатать количество слов. ...

Количество слов в согласной в начале и конце
Количество слов C согласной в начале и конце Проблема в выводе, совсем не то, что нужно. #include <string.h> #include...

Подсчитать количество слов с одинаковой литерой в начале и в конце
здравствуйте. вопрос заключается в следующем: есть условие по двунаправленным спискам: подсчитать кол-во слов с одинаковой литерой в...

5
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,724
20.05.2021, 13:10
Может быть, сделать лист с фамилиями преподавателей (их не так много ведь) и сверять? Или при корректировке пользователем заносить туда. Сомнительное выделять цветом для уточнения.
Первый случай можно проверить регистром - должно с большой буквы начинаться. А второе сложно, ибо русский язык флективен. Если набрать Иванов, то неясно, действительно имели в виду Иванов или же Иванова.
1
 Аватар для OrestBerserker
2 / 1 / 0
Регистрация: 27.01.2015
Сообщений: 179
20.05.2021, 13:53  [ТС]
Может быть, сделать лист с фамилиями преподавателей (их не так много ведь) и сверять?
Так и есть именно благодаря ему я и вижу, что допущена ошибка или появился новый преподаватель
Сомнительное выделять цветом для уточнения
Это только для форума, для наглядности.
В программе массив/лист с двумя столбцами 'найти' 'замена на'
Первый случай можно проверить регистром - должно с большой буквы начинаться.
Вариант!
Вот только нет гарантии, что составитель не напишет фамилию с маленькой буквы.... Впрочем, тогда тоже можно будет добавить в список замен такой вариант.
Если набрать Иванов, то неясно, действительно имели в виду Иванов или же Иванова
В моем случае можно: есть закрепление за дисциплинами: скажем Иванов может вести физику и математику, но не Иностранный язык, который ведёт Иванова. Но этот модуль у меня после первичного распознания идёт.
0
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,724
20.05.2021, 13:56
Цитата Сообщение от OrestBerserker Посмотреть сообщение
Вот только нет гарантии, что составитель не напишет фамилию с маленькой буквы....
А вы проверьте по листу, есть ли такая фамилия. Если должно быть Тищенко, а кто-то написал ищенко, пропустив первую букву, то такая не найдется. Ну, если только и Ищенко не присутствует. ))
Либо передавать это на второй этап проверки по дисциплинам.
А может, изменить исходный лист и не давать им вводить, а только выбирать из списка, "насаженного" на готовый список преподавателей?
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
20.05.2021, 14:07
OrestBerserker,
Неизвестен принцип вашей автозамены...
Есть 100500 путей ...
Для конкретной помощи ( или совета) куска кода- маловато. Необходим весь код , или писать все заново как указал уважаемый Zeag, :
Цитата Сообщение от Zeag Посмотреть сообщение
А может, изменить исходный лист и не давать им вводить, а только выбирать из списка, "насаженного" на готовый список преподавателей?
0
 Аватар для OrestBerserker
2 / 1 / 0
Регистрация: 27.01.2015
Сообщений: 179
20.05.2021, 15:03  [ТС]
Цитата Сообщение от Narimanych Посмотреть сообщение
Для конкретной помощи ( или совета) куска кода- маловато.
Я с Вами согласен. Весь код представить сложно из-за двух причин:
1 Распознание строки идет в модуле и там решается часть задач, если не требуется вмешательство пользователя, а если требуется (собственно - уточнение, что за фамилия) - код идет в форме
2 аццкая куча переменных, понятных мне одному))), не везде камменты


Поэтому попробую поподробнее сам алгоритм расписать.
Вот более подробный алгоритм
1 Открываю новый лист одного курса одного факультета
2 Провожу автозамену (тут целая обойма: ошибки по аудиториям, названиям дисциплин, фамилиям, ... просто удаление лишних комментариев)
3 Первичное распознание строки (здесь строка вроде "Физика 1/4 лаб В405,Г112 Иванова, Петрова" переводится в формат !Физика!1/4!л/р!В405,Г112!Иванова, Петрова! - т.е. дисциплина, №занятия, вид занятия, аудитории, преподаватели - в свои ячейки таблицы)
*** Жуткий алгоритм определения что есть что, где если неочевидно - "спортзал" - аудитория или преподаватель, "Заяц" - это фамилия или аудитория ****
- собственно здесь всплывает форма, см аттач
Кликните здесь для просмотра всего текста

Жуткий алгоритм определения что есть что назван "жутким" потому что там предусматривается куча ошибок со стороны составителей лишь малая часть примера ради
- вся строка может быть написана без пробелов или через запятую
- аудиторией может быть "спортзал" "1111" или "класс самоподготовки" - т.е. какого-то стандарта нет
- последовательность что за чем может быть разной: скажем, сначала преподаватели, потом аудитории, или вообще какой-то компонент может быть опущен. Скажем, ещё аудитории не проблили.
.... в общем, это ужасная штука, которая едва ли поможет, но скорее запутает ...


... распознаю все листы ...
4 Вторичное распознание (здесь в каждый элемент строки сопоставляется с соответствующей таблицей базы и получает соответствующий id)

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




Цитата Сообщение от Zeag Посмотреть сообщение
Либо передавать это на второй этап проверки по дисциплинам.
Я всё больше и больше склоняюсь всё делать в один этап...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.05.2021, 15:03
Помогаю со студенческими работами здесь

Определить количество слов с одинаковыми буквами в начале и конце
Дано условие: подается строка с одним или несколькими пробелами. задача: необходимо определить кол-во слов с одинаковыми буквами в начале...

создайте текстовый файл, содержащий в начале каждой строки гласные буквы соответствующей строки данного текстового файла а в конце строки-согласные бу
создайте текстовый файл, содержащий в начале каждой строки гласные буквы соответствующей строки данного текстового файла а в конце...

Как сделать подсчет слов с одинаковыми буквами в начале и конце слова
#include <string> #include <sstream> #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "Russian");...

Найти max/min элементы каждой строки матрицы и разместить их в начале/конце строки соответственно
Стартовый массив В(7,9) содержит перемененные типа DOUBLE. Найти в каждом ряде матрицы максимальные и минимальный элементы и поместить их...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru