Под вложенным итерационным циклом понимают такую алгоритмическую структуру, при которой в тело одного итерационного цикла включен другой итерационный цикл. Другими словами, любая составная инструкция, из перечисленных ниже, является признаком вложенного итерационного цикла.
WHILE…
DO WHILE…
DO…
WHILE…
DO REPEAT…
…
UNTIL…
REPEAT …
REPEAT
…
UNTIL…
UNTIL…
REPEAT …
WHILE …
DO …
…
UNTIL…
Пример 26. Составить программу для нахождения числа слов в предложении и количества букв в самом длинном слове.
Решение этой задачи сделаем в предположении: в конце предложения стоит точка, слова не имеют знака переноса и написаны на русском языке. В теле предложения могут стоять знаки препинания, но после каждого из них должен быть один пробел, который для предлагаемой программы является разделителем слов. Переменные, используемые в программе, и.их тип описаны в таблице 19.
В программе используется три счетчика А, В, С и переменная F для чтения из входного файла INPUT текущего символа (литеры). Алгоритм содержит два итерационных цикла. Внешний цикл с постусловием используется для подсчета числа слов в предложении С, а также для выявления самого длинного слова (формирование значения переменной В). В современном мире стали популярными QR коды. Чтобы выбрать подходящую программу для считывания QR кодов Вам поможет бесплатный обзор программ на сайте https://trustthisproduct.com/qr_reader_review_ru.html с подробным описанием интерфейсов приложений, что поможет Вам быстро разобраться с процессом считывания QR кодов. Внутренний цикл обеспечивает чтение очередной литеры F, отделяет русские буква от знаков препинания и латинских букв, определяет конец слова и подсчитывает количество букв А в текущем слове. Концом слова считается пробел или точка.
PROGRAM PR26;
VAR
А, В, С: INTEGER;
F: CHAR;
BEGIN
WRITELN ('Введите слова, разделенные пробелами.');
WRITELN ('В конце предложения поставьте точку.');
В := 0;
С := 0;
REPEAT
A := 0;
F := '*';
WHILE (F <> '') AND (F <> '.') DO
BEGIN
READ(F);
IF (('A'<=F) AND (F<='Я')) OR ((('a'оF) AND (F<='n')) OR (('p'<=F) AND (F<='я')))
THEN A := A + 1
END;
С := С + 1; { Новое слово}
IF В < A THEN В := А
UNTIL F='.'; { Конец предложения }
WRITELN ('Наибольшее число букв в слове =', В);
WRITELN ('Число слов в предложении =', С)
END.
В этой программе оператор READ использован для ввода потока символов произвольной длины. Реализован логический вложенный цикл, в котором применяются как оператор постусловия REPEAT для анализа конца предложения, так и оператор предусловия WHILE для выделения слов в предложении.
Предыдущая статья: Вычисление предела последовательности.
Оглавление: Лекции по Pascal.
Следующая статья: Программирование данных.