nextupprevious

Next:4.4.2 Количество максимумов
Up:4.4 Функции на последовательностях
Previous:4.4 Функции на последовательностях


4.4.1 Подсчет вхождений

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

Решение. Очевидно, что эквивалентной формулировкой задачи является следующая: подсчитать количество пробелов, букв и цифр в заданной последовательности, состоящей из букв, цифр и пробелов. Пусть Буквы , Пробелы и Цифры -- функции "количество букв в последовательности", "количество пробелов в последовательности" и "количество цифр в последовательности". Правила вычисления этих функций можно представить в следующем виде:

Непосредственное использование этих соотношений приводит к программе ПодсчетВхождений, решающей исходную задачу.

module ПодсчетВхождений;
     var F1,F2,F3 : integer; X : char;
begin
     F1 := 0; F2 := 0; F3 := 0;
     (* {F1= Пробелы(Input1), F2=Буквы(Input1), F3=Цифры(Input1)} *)
     while ~ Eof do (*Ограничивающее выражение: |Input2| *)
         (* {|Input2|>0, F1= Пробелы(Input1), F2=Буквы(Input1), F3=Цифры(Input1)} *)
         read(X);
         if ('A'<=X) & (X <= 'Z')
         then F2 := F2+1
         elsif X = ' ' then F1 := F1+1
         else F3 := F3+1
         end
         (* {F1= Пробелы(Input1), F2=Буквы(Input1), F3=Цифры(Input1)} *)
    end;
    (* {|Input2|=0, F1= Пробелы(Input1), F2=Буквы(Input1), F3=Цифры(Input1)} *)
    write ('Последовательность состоит из ' F1, 'идентификаторов, в которые входит':35,
              F2, 'букв и ':9, F3, 'цифр.':7)
end ПодсчетВхождений.

Next:4.4.2 Количество максимумов
Up:4.4 Функции на последовательностях
Previous:4.4 Функции на последовательностях



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