Напишите программу определяющую сколько слов в данной строке текста - 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, иначе 0.
- Функция abcd используется в цикле для определения, является ли текущий символ буквой. Если это так, то переменная f устанавливается в 1, иначе в 0. Если f равно 1 и текущий символ не является последним в строке, то переменная k увеличивается на 1 и f устанавливается в 0. Если f равно 0 и текущий символ является последним в строке, то k увеличивается на 1. В конце программы выводится значение переменной k, которое и является количеством слов в строке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д