На вход программе подаётся последовательность символов, заканчивающаяся точкой (точка – признак конца и в последовательность не входит). Проверить, правильно ли в данной последовательности расставлены круглые скобки (то есть, справа от каждой открывающей есть соответствующая закрывающая, а слева от каждой закрывающей есть соответствующая открывающая).

Реклама
Паоло

Ответы и объяснения

petyaGavrikov
petyaGavrikov

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).
Все ОК

0.0
0 оценок
0 оценок
Оцени!
Оцени!