Определить количество слов, одновременно содержащих буквы Е, С, К — QBasic(Бейсик)

Если слова разделены одним пробелом, а предложения одним знаком препинания (точкой, восклицательным знаком или вопросительным)

CLS
PRINT "Vvedite tekst"
INPUT a$

REM schitaem kolvo slov
k = 1
FOR i = 1 TO LEN(a$)
    IF (MID$(a$, i, 1) = " ") THEN k = k + 1
NEXT i
IF a$ <> "" THEN PRINT "V tekste "; k; " slov"
DIM s$(k)

REM shitaem kolvo predlozheniy
k = 0
FOR i = 1 TO LEN(a$)
    IF (MID$(a$, i, 1) = ".") OR (MID$(a$, i, 1) = "!") OR (MID$(a$, i, 1) = "?") THEN
        k = k + 1
    END IF
NEXT i
PRINT "V tekste "; k; " predlozheniy"

REM razbivaem tekst na slova
d = 1: k = 0
FOR i = 1 TO LEN(a$)
    IF MID$(a$, i, 1) = " " THEN
        k = k + 1: s$(k) = MID$(a$, d, i - d)
        d = i + 1
    END IF
    IF i = LEN(a$) THEN k = k + 1: s$(k) = RIGHT$(a$, LEN(a$) - d + 1)
NEXT i

REM sshitaem kolvo slov v kotorih est bukvi E, C, K
m = 0
FOR i = 1 TO k
    a = 0: b = 0: c = 0
    FOR j = 1 TO LEN(s$(i))
        IF UCASE$(MID$(s$(i), j, 1)) = "E" THEN a = 1
        IF UCASE$(MID$(s$(i), j, 1)) = "C" THEN b = 1
        IF UCASE$(MID$(s$(i), j, 1)) = "K" THEN c = 1
    NEXT j
    IF (a = 1) AND (b = 1) AND (c = 1) THEN m = m + 1
NEXT i
PRINT "kolvo slov soderzhashih odnovrem bukvi E, C, K="; m

Тестирование выполнено в программе QB64 ( Скачать )

Leave a Comment