Проверить сбалансированность скобок в тексте - PascalABC.NET
Формулировка задачи:
Проверить сбалансированность скобок в тексте(скобки сбалансированы,если закрывающая скобка расположена после соответствующей открывающей и их количества совпадают).
Решение задачи: «Проверить сбалансированность скобок в тексте»
textual
Листинг программы
begin var S := ReadLnString('Введите текст, содержащий скобки (),' + NewLine + 'для проверки их сбалонсированности:'); var P := 0; // Переменная для проверки баланса скобок var C := 0; // Просто для подсчёта количества скобок WriteLn; for var i := 1 to S.Length do case S[i] of '(' : begin // Скобка открвающая P += 1; C += 1; end; ')' : begin // Скобка закрывающая P -= 1; C += 1; if P < 0 then // Закрывающих скобок больше, чем открывающих begin WriteLn('Скобки не сбалансированы: закрывающая скобка встречена раньше открывающей.'); Halt; end; end; end; // Прочие символы строки нам не интересны... if P > 0 then WriteLn('Скобки не сбалансированы: открывающих скобок больше закрывающих.') else if C = 0 then WriteLn('В ведённом тексте скобок не обнаружено.') else WriteLn('Скобки сбалансированы.'); end.
Объяснение кода листинга программы
- Ввод текста с скобками в программу.
- Инициализация двух переменных: P и C.
- Переменная P используется для хранения количества открытых скобок, а переменная C - для подсчета общего количества скобок в тексте.
- Проверка каждого символа входной строки.
- Если символ является открывающей скобкой, то увеличиваются значения обеих переменных P и C.
- Если символ является закрывающей скобкой, то значение переменной P уменьшается на 1, а значение переменной C увеличивается на 1.
- Если значение переменной P становится отрицательным, то это означает, что закрывающих скобок больше, чем открывающих, и программа выводит соответствующее сообщение об ошибке.
- Если значение переменной P остается положительным, то после цикла проверяется значение переменной C.
- Если значение переменной C равно нулю, то это означает, что в введенном тексте скобок не обнаружено, и программа выводит соответствующее сообщение.
- Если значение переменной C больше нуля, то это означает, что скобки сбалансированы, и программа выводит соответствующее сообщение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д