В предложении найти слова, последовательности букв - QBasic
Формулировка задачи:
доброго вам времени суток подскажите как мне победить эту задачуне могу вразумить как это сделать.
В заданном предложении найти слова, представляющие собой последовательности букв латинского алфавита (например, abc, nop) и подсчитать количество таких слов. Напечатать исходное предложение и количество найденных слов.
Решение задачи: «В предложении найти слова, последовательности букв»
textual
Листинг программы
CLS
INPUT "vvedite text"; a$
FOR i = 1 TO LEN(a$)
w = q
q = ASC(LCASE$(MID$(a$, i, 1))) - ASC("a") + 1
IF q >= 1 AND q <= 26 THEN
f = f + 1
IF f >= 2 AND q - w = 1 THEN t = t + 1
IF i = LEN(a$) AND t + 1 = f THEN k = k + 1
ELSE
IF t + 1 = f THEN k = k + 1
t = 0: f = 0
END IF
NEXT
PRINT a$
PRINT "k="; k
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Ввод текста с клавиатуры и сохранение его в переменной a$.
- Инициализация переменных q, w, f, t и k со значениями 0.
- Цикл от 1 до длины строки a$ (это значит, что цикл будет выполняться для каждого символа в строке).
- Внутри цикла:
- Значение переменной q меняется на значение ASCII-кода следующего символа в строке (после преобразования в нижний регистр), увеличенное на 1.
- Если ASCII-код символа находится в диапазоне от 'a' до 'z', то:
- Переменная f увеличивается на 1.
- Если переменная f больше или равна 2 и разность между текущим и предыдущим ASCII-кодами равна 1 (то есть текущий символ - это следующий символ в слове), то переменная t увеличивается на 1.
- Если цикл выполняется для последнего символа в строке и переменная t увеличивается на 1 перед каждым увеличением переменной f на 1, то переменная k увеличивается на 1.
- Если ASCII-код символа не находится в диапазоне от 'a' до 'z', то:
- Если переменная t увеличивается на 1 перед каждым увеличением переменной f на 1, то переменная k увеличивается на 1.
- Переменные t и f сбрасываются в 0.
- После выполнения цикла выводится исходная строка a$.
- Выводится значение переменной k.