Напишите программу определяющую сколько слов в данной строке текста - QBasic

Узнай цену своей работы

Формулировка задачи:

На вход программы поступает строка текста, в которой могут встречается: -прописные и строчные (т.е. большие и маленькие) латинские буквы; -пробелы; -знаки препинания: точка, запятая, восклицательный и вопросительный знак; -символ -, обозначающий в некоторых случаях тире, а в некоторых - дефис. Слово-это последовательность подряд идущих латинских букв и знаков дефис, ограничена с обоих концов.В качестве ограничителей могут выступать начало строки, конец строки, пробел, знак препинания, тире. Тире отличается от дефиса тем что, что с лева и справа от знака дефис пишутся буквы, а хотябы с одной стороны от тире идет либо начало строк, либо конец строки, либо пробел, либо какой-либо другой знак препинания, либо еще одно тире. Напишите программу определяющую сколько слов в данной строке текста. Формат входных данных: 1)Hello , world! 2)www.olympiads.ru 3)Gyro-commpass - this is a ...Формат выходных данных: 1) 2; 2) 3; 3) 4.

Решение задачи: «Напишите программу определяющую сколько слов в данной строке текста»

textual
Листинг программы
LINE INPUT "vvedite text: ", a$
FOR i = 1 TO LEN(a$)
    IF MID$(a$, i, 1) = "-" AND i > 1 AND i < LEN(a$) THEN
        IF abcd(a$, i - 1) = 1 AND abcd(a$, i + 1) = 1 THEN
            a$ = MID$(a$, 1, i - 1) + MID$(a$, i + 1, LEN(a$) - i)
        END IF
    END IF
NEXT
FOR i = 1 TO LEN(a$)
    IF abcd(a$, i) = 1 AND i <> LEN(a$) THEN
        f = 1
    ELSE
        IF f = 1 THEN k = k + 1: f = 0
    END IF
NEXT
PRINT k
FUNCTION abcd (a$, i)
q = ASC(MID$(a$, i, 1))
IF (q >= 65 AND q <= 90) OR (q >= 97 AND q <= 122) THEN abcd = 1 ELSE abcd = 0
END FUNCTION

Объяснение кода листинга программы

  1. В первой строке вводится строка текста, которую необходимо проанализировать.
  2. Код определяет количество слов в тексте, разделяя строку по дефисам и пробелам. Дефисы могут быть частью слов, поэтому код проверяет, не является ли дефис началом или концом слова.
  3. Вторая функция проверяет, является ли символ буквой латинского алфавита. Если это так, то функция возвращает 1, иначе 0.
  4. Функция abcd используется в цикле для определения, является ли текущий символ буквой. Если это так, то переменная f устанавливается в 1, иначе в 0. Если f равно 1 и текущий символ не является последним в строке, то переменная k увеличивается на 1 и f устанавливается в 0. Если f равно 0 и текущий символ является последним в строке, то k увеличивается на 1. В конце программы выводится значение переменной k, которое и является количеством слов в строке.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы