![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Shurik_123 |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Известно, что во вводимом тексте встречается заданная буква, причем не на последнем месте. Требуется вывести символ этого текста, который непосредственно следует за последним вхождением этой буквы. Ввод продолжать до нажатия ‘Ins’ на дополнительной клавиатуре.
помогите плиз |
![]() ![]() |
andriano |
![]()
Сообщение
#2
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Естественно.
Правда, это было написано для реализации конечным автоматом. Т.к. предложенная тобой реализация таковой, строго говоря, не является, то логичнее делать проверку в один проход. Да и вообще, конечный автомат в основном позволяет на этапе проектирования предусмотреть ВСЕ варианты поведения при различных входных данных, в том числе и недопустимых, и, таким образом, еще и диагностировать ошибки. На практике же построенный (на бумаге) конечный автомат затем упрощают и оптимизируют. В частности, отходят от требования обрабатывать один символ за один проход цикла. В той раскладке, кстати, которую я ранее приводил, целесообразно объединить начальное состояние с состоянием после "других" клавиш и таким образом таблица состояний будет иметь вид: 0 - после "других" клавиш, начальное, 1 - после ключевой клавиши, 2 - после 0 (т.е. ловим код управляющей клавиши), 3 - конечное. По горизонтали - входные символы, по вертикали - состояния. Код +---+------+----------+---+----------+ По этому автомату в принципе тоже можно написать довольно громоздкую программу с вложенными case.| | 0 | 82 | f |другой | +---+------+----------+---+----------+ | 0 | 2 | 0 | 1 | 0 | | | нет |нет |нет|нет | +---+------+----------+---+----------+ | 1 | 0 | 0 | 1 | 0 | | |ошибка|запоминаем|нет|запоминаем| +---+------+----------+---+----------+ | 2 | 0 | 3 | 0 | 0 | | |ошибка|нет |нет|нет | +---+------+----------+---+----------+ | 3 | - | - | - | - | +---+------+----------+---+----------+ |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 23:56 |