Если слово имеет нечётную длину, удалить в нём среднюю букву

Сформировать по строке a$ новую строку по правилу: если слово имеет нечётную длину, удалить в нём среднюю букву. Ps. Заранее благодарю
INPUT "Vvedi stroku: ", s$
n = LEN(s$)
IF n MOD 2 <> 0 THEN
   s$ = LEFT$(s$, (n - 1) / 2) + RIGHT$(s$, (n - 1) / 2)
END IF
PRINT s$
END
Ps. На одно слово быстро набросал, а вот если ввести предложение, чтобы он с каждом словом провел операцию ума не приложу...Написал, если кому нибудь понадобится:
CONST delim = " .,;:!?-"
DIM s AS STRING, s1 AS STRING, word AS STRING, wd AS STRING
DIM i AS INTEGER, n AS INTEGER, k AS INTEGER
INPUT "Vvedite stroku: ", s
IF INSTR(delim, RIGHT$(s, 1)) = 0 THEN s = s + " "
n = LEN(s): s1 = "": i = 1
DO WHILE i <= n 
wd = ""
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
s1 = s1 + wd + word
END IF
LOOP
PRINT " rezultat: " + s1
END
Тему можно закрывать
1 ответ

Задача оказалась очень интересной Предполагается, что слова разделены одним пробелом
DECLARE SUB DEL (s AS STRING, n%)
 
CLS
DIM SHARED s AS STRING
DIM n AS INTEGER
INPUT "STROKA ="; s
s = " " + s + " "
n1 = 1
 
DO
   n2 = INSTR(n1 + 1, s, " ")
   n = n2 - n1 - 1
   IF (n MOD 2 = 1) AND n <> 1 THEN
      n = (n1 + n2) / 2
      DEL s, n
      n1 = n2 - 1
   ELSE
      n1 = n2
   END IF
LOOP UNTIL n2 >= LEN(s)
 
PRINT LTRIM$(RTRIM$(s))
 
END
 
SUB DEL (s AS STRING, n AS INTEGER)
   DIM s1 AS STRING
   DIM s2 AS STRING
 
   s1 = LEFT$(s, n - 1)
   s2 = RIGHT$(s, LEN(s) - n)
   s = s1 + s2
END SUB