Понимание шагов в создании счетчика для каждой буквы, когда вводится предложение - PullRequest
3 голосов
/ 18 мая 2019

У меня есть пример программы, которая показывает, как настроить счетчик для того, сколько раз использовалась каждая буква алфавита.Я не понимаю синтаксис средней части программы.

LET letter$ = MID$(sentence$, LETTERNUMBER, 1)

Я пробовал поискать на YouTube и обучающие программы онлайн

CLS
REM Make Counters for each Letter!!!
DIM Count(ASC("A") TO ASC("Z"))
REM Get the Sentence
INPUT "Enter Sentence:", sentence$
LET sentence$ = UCASE$(sentence$)
FOR I = ASC("A") TO ASC("Z")
    LET Count(I) = 0
NEXT I

FOR LETTERNUMBER = 1 TO LEN(sentence$)
    LET letter$ = MID$(sentence$, LETTERNUMBER, 1)
    IF (letter$ >= "A") AND (letter$ <= "Z") THEN
        LET k = ASC(letter$)
        LET Count(k) = Count(k) + 1
    END IF
NEXT LETTERNUMBER
PRINT

REM Display These Counts Now
LET letterShown = 0
FOR letternum = ASC("A") TO ASC("Z")
    LET letter$ = CHR$(letternum)
    IF Count(letternum) > 0 THEN
        PRINT USING "\\##   "; letter$; Count(letternum);
    END IF
    LET letterShown = letterShown + 1
    IF letterShown = 7 THEN
        PRINT
        LET letterShown = 0
    END IF
NEXT letternum
END

Появляется число от Z до 100.

Ответы [ 2 ]

1 голос
/ 19 мая 2019

Функция MID $ возвращает часть значения STRING из любой позиции в строке.

Синтаксис:

    MID$(stringvalue$, startposition%[, bytes%]) 

Параметры:

  • stringvalue $

    может быть любым литеральным или переменным значением STRING, имеющим длину. См. ЛЕН.

  • StartPosition%

    обозначает ненулевую позицию первого символа, возвращаемого функцией.

  • байт%

    (необязательно) сообщает функции, сколько символов вернуть, включая первый символ, когда он используется.

0 голосов
/ 21 мая 2019

Другой метод для вычисления символов в строке:

REM counts and displays characters in a string
DIM count(255) AS INTEGER
PRINT "Enter string";: INPUT s$
' parse string
FOR s = 1 TO LEN(s$)
    x = ASC(MID$(s$, s, 1))
    count(x) = count(x) + 1
NEXT
' display string values
FOR s = 1 TO 255
    PRINT s; "="; count(s); " ";
    IF (s MOD 8) = 0 THEN
        PRINT
        IF (s MOD 20) = 0 THEN
            PRINT "Press key:";
            WHILE INKEY$ = "": WEND: PRINT
        END IF
    END IF
NEXT
END
...