nextupprevious

Next:5.3.4 Свертка вектора
Up:5.3 Программы обработки векторов
Previous:5.3.2 Поиск в упорядоченном векторе


5.3.3 Подсчет количеств вхождений букв

Задача. Подсчитать, сколько раз встречается каждая из букв латинского алфавита в заданном тексте.

Решение. Для подсчета вхождений букв заведем переменную -- массив счетчиков, в котором для каждой из букв латинского алфавита имеется целая переменная -- счетчик вхождений этой буквы. При последовательном просмотре символов заданного текста слева направо будем увеличивать на единицу счетчик текущей обозреваемой буквы. Для функции СЧЕТ(w, s), означающей количество вхождений символа s в последовательность символов (текст) w, можно записать следующее определение:

Ниже приведена программа, реализующая вычисление функции СЧЕТ для букв латинского алфавита в соответствии с этим определением.

module ПодсчетВхожденийБукв;
    var СЧЕТЧИК : array 33 of integer; S:integer; X: char;
begin
    for S := 0 to 32 do СЧЕТЧИК [S] := 0 end;
    (*СЧЕТЧИК[integer(t) - integer('A')] = СЧЕТ(input1, t)} *)
    while ~ Eof do
        (* Ограничивающее выражение: | input1| *)
        read(X);
        if (X >= 'A') & (X <='Z') (* X - буква *)
        then СЧЕТЧИК [integer(X)- integer('A')] := СЧЕТЧИК [integer(X)- integer('A')] + 1
        (*СЧЕТЧИК[integer(t) - integer('A')] = СЧЕТ(input1, t)} *)
        end
    end;
    (*СЧЕТЧИК[integer(t) - integer('A')] = СЧЕТ(input1, t)} *)
    for S := 0 to 32 do
        if СЧЕТЧИК [S] # 0
        then writeln (chr(S+integer('A')), 'встречается', СЧЕТЧИК [S], 'раз')
        end
end ПодсчетВхожденийБукв.

Next:5.3.4 Свертка вектора
Up:5.3 Программы обработки векторов
Previous:5.3.2 Поиск в упорядоченном векторе


© В.Н. Касьянов, Е.В.Касьянова,2004