Лекция: Особого внимания заслуживают задачи, в которых переменную необходимо изменять несколько раз в зависимости от условия.
Эти алгоритмы предполагают использование цикла и операторов логической передачи управления, хотя принцип действия остается неизменным — формирование новой переменной путем сложения частей
Пример 21. В тексте A$ после каждого пробела вставить B$.
a$= «Белеет парус одинокий»
PRINT a$
B$ = «11»
x = LEN(a$)
FOR i = 1 TO x
IF ASC(MID$(a$, i, 1)) = 32 THEN
a$ = MID$(a$, 1, i) + B$ + MID$(a$, i + 1, x)
END IF
NEXT i
PRINT a$
Результат. Белеет 11парус 11одинокий
Работа программы. В цикле анализируется АSСП-код очередного выделенного символа на равенство 32 (код пробела). Если равенство выполняется в ходе 1-й итерации цикла, то переменной А$ присваивается сумма трех компонентов — левая часть исходной А$ (знаки с номерами от 1 до 1) + В$ + правая часть AS (знаки от 1 до х).
Удаление символов
Удалениесимволов проходит путем записи в новую текстовую переменную знаков исходной строки, расположенных до удаляемой части и после нее.
Пример 22. Удалить пятый символ из A$.
a$ = «123456789»
n = 5
x = LEN(a$)
a$ = MID$(a$, 1, n — 1) + MID$(a$, n + 1, x)
PRINT a$
Результат: 12346789
Работа программы. Первое значение A$ образуется путем сложения знаков 1-4 (1, N — 1) и 6-9 (N+1, x) исходной строки. Если удаляется не один знак, а целый блок знаков BS, то во втором MID$ номер первого элемента правой части запишется N + LEN(B$) и команда в целом будет иметь вид
MID$(A$, N+LEN(B$)