Написать исходный код в pascal-е. решить по обработке строковых данных с использованием подпрограмм: в строке, среди знаков могут встречаться открывающие и закрывающие скобки. проверить с подпрограммы равенство числа открывающихся скобок числу закрывающихся.
181
254
Ответы на вопрос:
Есть простой способ подсчета парности скобок. инициализируем счетчик нулем, а затем читаем строку. если встречается открывающая скобка, в счетчик посылается +1, если закрывающая, то -1. после просмотра всей строки нулевое значение счетчика скажет нам о равенстве скобок, а ненулевое покажет количество лишних скобок. каких именно - покажет знак. попутно замечу, что подобные подсчеты не гарантирует проверки синтаксической правильности расстановки скобок, например, выражение )a+b( синтаксически неверно, но в нем "правильное" количество скобок. var i,k: integer; s: string; begin write('введите строку: '); readln(s); k: =0; for i: =1 to length(s) do case s[i] of '(': inc(k); ')': dec(k) end; if k=0 then writeln('скобки парные') else begin write('обнаружено непарных '); if k> 0 then write('открывающих') else write('закрывающих'); writeln(' скобок: ',abs(k)) end end. тестовое решение: введите строку: (3*k+1/(c-5)*a; обнаружено непарных открывающих скобок: 1
Var str: string; i, n9, n0: integer; begin readln(str); for i: =1 to length(str) do if str[i] = '(' then n9 : = n9 + 1 else if str[i] = ')' then n0 : = n0 + 1; if n9 = n0 then writeln('число открывающихся скобок равно числу закрывающихся') else writeln('число открывающихся скобок не равно числу закрывающихся'); end.
Популярно: Информатика
-
вкфмкшы55502.06.2020 02:29
-
Мелочь8328.10.2022 04:28
-
SaraSmail14.01.2020 15:11
-
NastyaSukorkina30.06.2022 21:42
-
Dushanbe200307.12.2021 13:03
-
pifi12330.04.2021 08:56
-
marina0242702.07.2020 03:06
-
lolkek14228.08.2022 12:42
-
taush10.02.2023 05:33
-
2007AZAZA14.12.2020 10:19