На вход программе подаётся последовательность символов, заканчивающаяся точкой (точка – признак конца и в последовательность не входит). Проверить, правильно ли в данной последовательности расставлены круглые скобки (то есть, справа от каждой открывающей есть соответствующая закрывающая, а слева от каждой закрывающей есть соответствующая открывающая).
Answers & Comments
Verified answer
Var s:string; k,i:integer; b:boolean;begin
writeln('s = ');
readln(s);
k:=0; i:=1;
b:=true;
while s[i]<>'.' do
begin
case s[i] of
'(' : k:=k+1;
')' : k:=k-1;
end;
if k<0 then b:=false;
i:=i+1;
end;
if b and (k=0) then writeln('Все ОК') else writeln('Есть ошибки');
end.
Пример:
s = ((a+b)/(2b-3a))(a/b).
Все ОК