Поиск повторяющихся слов в тексте - QBasic
Формулировка задачи:
Есть задача. Дан текст заканчивающийся точкой. Определить количество повторяющихся слов в нем.
Она впринцепи готова, только есть одно но и её надо доработать в этой задаче.
Вот пример:
Мама мыла раму мыла.
Листинг программы
- CLS
- PRINT "Поиск повторяющихся слов в тексте"
- PRINT "Введите текст:"
- INPUT a$
- n = LEN(a$)
- DIM b(n) AS STRING
- FOR i = 1 TO n
- IF MID$(a$, i, 1) = " " OR MID$(a$, i, 10) = "." THEN
- k = k + 1: b(k) = MID$(a$, p + 1, i - p - 1): p = i
- END IF
- NEXT i
- DIM ss(k, 2) AS STRING
- FOR i = 1 TO k - 1
- p = 0
- c = 0
- b(i) = LTRIM$(b(i))
- b(i) = RTRIM$(b(i))
- IF b(i) <> "" THEN
- FOR j = i + 1 TO k
- IF b(i) = b(j) THEN
- IF p = 0 THEN
- ss(i, 1) = b(i)
- p = 1
- END IF
- c = c + 1
- b(j) = ""
- END IF
- NEXT j
- ss(i, 2) = STR$(c + 1)
- END IF
- NEXT i
- FOR i = 1 TO k
- IF ss(i, 1) <> "" THEN
- PRINT"Слово "; ss(i, 1); "повторяется в тексте "; ss(i, 2); " раз(а)"
- ELSE PRINT "В тексте нет повторяющихся слов": END
- END IF
- NEXT i
Он мне выдаёт "В тексте нет повторяющихся слов"
Где тут ошибка?Решение задачи: «Поиск повторяющихся слов в тексте»
textual
Листинг программы
- INPUT "vvedite text"; a$
- DIM b$(LEN(a$))
- FOR i = 1 TO LEN(a$)
- IF MID$(a$, i, 1) <> " " AND MID$(a$, i, 1) <> "." THEN
- c$ = c$ + MID$(a$, i, 1)
- ELSE k = k + 1: b$(k) = c$: c$ = ""
- END IF
- NEXT
- FOR i = 1 TO k
- FOR j = i + 1 TO k
- IF b$(i) = b$(j) THEN f = 1: b$(j) = STR$(j)
- NEXT
- IF f = 1 THEN q = q + 1: f = 0
- NEXT
- PRINT "q ="; q
Объяснение кода листинга программы
- Пользователю предлагается ввести текст.
- Объявляется массив b$ для хранения слов из введенного текста.
- Происходит проход по каждому символу введенного текста.
- Проверяется, является ли текущий символ пробелом или точкой.
- Если символ не является пробелом или точкой, он добавляется в конец переменной c$.
- Если текущий символ является пробелом или точкой, счетчик k увеличивается на 1, значение переменной c$ присваивается элементу массива b$ с индексом k, и переменная c$ очищается.
- Происходит проход по всем элементам массива b$.
- Для каждого элемента b$ проверяется, есть ли такой же элемент в оставшейся части массива.
- Если элемент повторяется, счетчик q увеличивается на 1.
- Выводится значение переменной q.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д