ЕМ
Евгений Миронов

Pascal Дан текстовой файл (любой) найти все вложенные циклы while в тексте.

Pascal Дан текстовой файл (любой) найти все вложенные циклы while в тексте.
вывести текст программы где было найдено больше всего, и их количество.

Ст
Стасик

Как вариант:

1) удалить из текста все скобки вида «{», «}» и какой-нибудь символ, к примеру «§»
2) заменить в тексте все операторные скобки на скобки «{», «}»

3) заменить в тексте все циклы while на уникальный символ «§»

4) заменить все оставшиеся выражения на символ «o»

5) удалить из текста все сочетания «оо» на один символ «о»

Останется строка вида «§{§{о}}§о§{о}§{о§{о§о}о}»

Сначала проанализировать данную строку на согласованность скобок, а потом (в случае согласованности скобок) подсчитать количество вложенных циклов.

Далее можно действовать по приведённому примеру:

1) Если в тексте есть сочетание «{о}», заменить его на о

«§{§о}§о§о§{о§{о§о}о}»

2) Если в тексте есть сочетание «§о» , заменить его на символ #0 — это циклы нулевого вложения

«§{#0}#0#0§{о§{о#0}о}»

3) Если в тексте есть сочетание «о#0» и/или «#0о» , заменить их на «#0»

«§{#0}#0#0§{о§{#0}о}»

4) Повторить операцию (1) для «{#0}» → «#0»

«§{#0}#0#0§{о§#0о}»

5) Повторить операцию (3)

«§{#0}#0#0§{§#0}»

6) Повторить операцию (2) для «$#0» → «#1»

и т. д.

В итоге получится строка:

«#1#0#0#2»

Из которой видно, что вложенных циклов 1 + 2 = 3

Похожие вопросы
Помогите пожалуйста составить программы в ABC pascal с циклом While!
flfСчитывание данных из файла в Pascal ABC
дан текстовый файл. нужно выводить только первое слово в каждом рядке Pascal ABC
Сколько весит пустой текстовый файл?
ПОМОГИТЕ!! Как определить объем вводимых данных для вложенного цикла?
обработка числовых данных (PASCAL)
Перебор на C++ с вложенными циклами
Дан текстовый файл. Определить и вывести к-во символов в каждой строке файла. Pascal
Помогите с pascal, задача на текстовые файлы
Проблема с записью в текстовый файл в pascal ABC