Есть ответ 👍

Написать исходный код в pascal-е. решить по обработке строковых данных с использованием подпрограмм: в строке, среди знаков могут встречаться открывающие и закрывающие скобки. проверить с подпрограммы равенство числа открывающихся скобок числу закрывающихся.

181
254
Посмотреть ответы 3

Ответы на вопрос:

vols1
4,5(58 оценок)

Есть простой способ подсчета парности скобок. инициализируем счетчик нулем, а затем читаем строку. если встречается открывающая скобка, в счетчик посылается +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.

123+4-5+67-89=100

или же

12-3-4+5-6+7+89=100

Популярно: Информатика