![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
MapЫшKa |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Женский Репутация: ![]() ![]() ![]() |
И снова я, о, боги Паскаля. :molitva:
Сиду я тут и со своей женской логикой не могу врубиться в мужскую, а точнее в программистическую. Дано: произвольная строка Требуется: 1) проверить строку на наличие "{" и "}" символы заключенные между { и } удалить вместе со скобками 2) определить сколько различных русских букв содержит строка ( я ваще тут пас, говорят функция какая то есть специальная) 3) найти самое длинное слово в строке. вот такая беда. Все бы было просто, вот тока вариантов строки моря, например: vo sudu li v ogorode {v doline{na polane{v sadu?} ili za zana}ves}koj} hodat nes4astnie programmisti сама придумала сама ее разобрать не могу, то ли надо удалять {v doline{na polane{v sadu?} ili za zana}ves}koj} или {v doline{na polane{v sadu?} ili za zana}ves} или {v doline{na polane{v sadu?} эх ну и назадают задачек.... |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
MapЫшKa
Я понимаю, что алгоритм очень похож, но попробуй вот эту программу для самого длинного слова. (это немного переработанная функция из ФАКа, которая разбивала текст на слова). Единственный недостаток (его впрочем легко исправить) - это то, что исходная строка уничтожается... Код Var s, max, st: String; p: Byte; begin ReadLn(s); Repeat p := Pos(' ', s); If p > 0 Then Delete(s, p, 1) Until p = 0; If s[1] = ' ' Then Delete(s, 1, 1); If s[Length(s)] = ' ' Then Delete(s, Length(s), 1); max := ''; Repeat p := Pos(' ', s); {Inc(i);} If p > 0 Then Begin st := Copy(s, 1, Pred(p)); Delete(s, 1, p) End Else st := s; If Length(max) < Length(st) Then max := st Until p = 0; WriteLn(max); end. |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 4:38 |