Принятые в программе ДОПОЛНИТЕЛЬНЫЕ К УСЛОВИЮ ЗАДАНИЯ соглашения:1. Разделителями между словами считаются любые символы, включенные к константу delim2. Все символы, не входящие в delim, образуют алфавит (т.е. "буквы"), из которого может быть составлено каждое слово3. Количество разделителей, окружающих каждое слово, ограничено только здравым смыслом. Все разделители будут переданы в строку результата без изменения.4. Если слово содержит только один символ, оно не изменяется, несмотря на то, что единица - нечетное число. В противном случае такое слово было бы исключено. К тому же, слово длиной в один символ не имеет "средней буквы"CONST delim = " .,;:!?-"DIM s AS STRING, s1 AS STRING, word AS STRING, wd AS STRINGDIM i AS INTEGER, n AS INTEGER, k AS INTEGERINPUT "Введите строку: ", s'Обеспечить наличие пробела за последним словомIF INSTR(delim, RIGHT$(s, 1)) = 0 THEN s = s + " "'Начальные присваиванияn = LEN(s): s1 = "": i = 1DO WHILE i <= n 'Просматриваем входную строку символ за символом 'Ищем первый непробельный символ wd = "" 'qq DO WHILE (INSTR(delim, MID$(s, i, 1)) <> 0) AND (i <= n) wd = wd + MID$(s, i, 1) i = i + 1 LOOP 'Выделяем очередное слово, за которым следует пробельный символ word = "" DO WHILE (INSTR(delim, MID$(s, i, 1)) = 0) AND (i <= n) word = word + MID$(s, i, 1) i = i + 1 LOOP 'Найдено ли слово? k = LEN(word) IF k > 0 THEN 'Если слово найдено '--- вырезается средний символ при нечетной длине --- IF (k > 1) AND (k MOD 2 <> 0) THEN k = (k - 1) \ 2 word = LEFT$(word, k) + RIGHT$(word, k) END IF '---------------------------------------------------- 'Добавляем найденное слово через wd к выходной строке s1 = s1 + wd + word END IFLOOPPRINT "Результат: " + s1END
Примеры работы программы:1. Обычный текст: слова через один пробелВведите строку: А роза упала на лапу АзораРезультат: А роза упла на лапу Азра
2. Использовано больше одного пробела и разделители : и !Введите строку: Пример №2: Ура! Мы ломим: гнутся шведы!Результат: Пример №2: Уа! Мы лоим: гнутся швды!
3. Использовано несколько непробельных разделителей подрядВведите строку: Пример --№3--: Какое небо голубое!...Результат: Пример --№3--: Каое небо голбое!...