Алгоритм
| Пример
|
задачи типа «подсчет» и «поиск»:
1.ввести строку и определить ее длину;
2.«вырезать» из строки символ и группу символов и проверить, удовлетворяет ли она условию задачи;
3.если требуемый символ или группа символов найдены, то выдать сообщение, что символы найдены, в противном случае, сообщить, что символов, удовлетворяющих заданному условию в строке, нет;
4.в случае, если по условию задачи необходимо посчитать количество групп символов, то увеличить счетчик на 1;
если достигнут конец строки, то завершить работу программы, выдав результат программы на экран монитора.
| Дана строка символов. Определить количество слов начинающихся с буквы «а»
CLS
PRINT "ВВЕДИ ИСХОДНУЮ СТРОКУ"
LINE INPUT A$
N = LEN(A$)
'Проверка символов введенной строки и подсчета количества слов,
'начинающихся с буквы «а»
FOR I = 1 TO N
'Выделение из исходной строки по два символа.
B$ = MID$(A$, I, 2)
IF B$ = " A" OR B$ = " a" THEN K = K + 1
NEXT I
'Выделение из исходной строки первого символа.
B$ = MID$(A$, 1, 1)
'Проверка первого слова, начинается ли оно с буквы «А».
IF B$ = "A" THEN K = K + 1
PRINT "В ИСХОДНОЙ СТРОКЕ СЛОВ НА БУКВУ А ="; K
END
|
задачи на удаление и вставку:
1.ввести исходную строку и определить его длину;
2.найти нужный символ или номер его позиции;
3.выполнить указанное в задаче действие;
4.если конец исходной строки не достигнут, то перейти к нахождению следующей нужной позиции, иначе - вывести результат и завершить работу.
Чтобы «сжать» исходный текст Т$, удалив из него цепочку символов от (I+1)–го до (I+N)-го, нужно «переслать» посимвольно текст T$ в символьную переменную T$ от начала до I-го символа и от (I+N+)-го символа до конца, используя операцию сложения
T$ = MID$(T$,1,I) + MID$(T$,I+N+1,M)
или
T$ = LEFT$(T$,I) + RIGHT$(T$,M-(I+N+1))
где M – длина исходной строки;
N– длина удаляемых символов;
T$- строка символов.
| Дана строка символов. Удалить после первой точки все запятые.
LINE INPUT A$
A1$ = "."
'Определение позиции первого включения точки в исходную строку.
M = INSTR(A$, A1$)
N = LEN(A$)
'Удаление запятых после первой точки из исходной строки.
FOR I = M TO N
B$ = MID$(A$, I, 1)
IF B$ = "," THEN
'Сжатие исходного текста для удаления обнаруженной запятой.
A$ = MID$(A$, 1, I - 1) + MID$(A$, I + 1, N)
'Уменьшение длины строки после удаления символа.
I = I - 1
N = N - 1
END IF
NEXT I
'Вывод полученной строки.
PRINT "ПОЛУЧЕНА СТРОКА: "; A$
END
|
Чтобы «раздвинуть» текст T$, вставив последовательность символов V$ между I-м и (I+1)-м символами исходного текста, нужно текст T$ переслать посимвольно от начала до I-го символа и от (I+1)-го символа до конца в символьную переменную T$, вставив между ними требуемую цепочку символов V$, используя операцию сложения
T$ = MID$(T$,1,I) + V$ + MID$(T$,I+1,M)
или
T$ = LEFT$(T$,I) + V$+ RIGHT$(T$,M-(I+1))
где M – длина исходной строки;
V$- вставляемая строка;
T$- строка символов.
| Заменить в исходном тексте каждую точку многоточием.
LINE INPUT A$
a$ = a$ + SPACE$(1)
N = LEN(A$)
i = 2
DO
'Выделение из исходной строки по два символа.
b$ = MID$(a$, i, 2)
E$ = MID$(a$, i - 1, 2)
'Проверка условия для поиска точки в исходной строке, случае
нахождения производится добавление еще двух точек.
IF b$ = ". " AND E$ <> ".." THEN
'Вставка после точки двух точек.
a$ = MID$(a$, 1, i)+STRING$(2, ".")+MID$(a$, i + 1, n)
'Увеличение длины строки после вставки двух точек.
i = i + 3
n = n + 2
END IF
i = i + 1
IF i > n THEN EXIT DO
LOOP
PRINT "ПОЛУЧЕНА СТРОКА: "; A$
END
|
задачи для дополнительного решения
Задача 1.Определить сколько раз встречается в тексте заданное слово.
Задача 2.Заменить в исходном тексте многоточие точкой.
Задача 3.Утроить в заданном тексте заданные символы.
|