Pascal Дан текстовой файл (любой) найти все вложенные циклы while в тексте.
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