Вопрос задан 01.04.2021 в 02:12. Предмет Информатика. Спрашивает Балобан Саша.

На вход программе подаётся последовательность символов, заканчивающаяся точкой (точка – признак

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Alibaeva Zhanerke.
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
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вы можете решить эту задачу, используя стек (stack) в программировании. Идея состоит в том, чтобы просматривать каждый символ в последовательности и выполнять следующие действия:

  1. Если символ является открывающей скобкой (круглой), помещаем его в стек.
  2. Если символ является закрывающей скобкой (круглой), проверяем, что стек не пустой.
    • Если стек пуст, это означает, что закрывающая скобка не имеет соответствующей открывающей, и последовательность неправильна. Мы можем сразу же вернуть "Неправильно".
    • Если стек не пустой, извлекаем верхний элемент стека и проверяем, соответствует ли он открывающей скобке. Если нет, возвращаем "Неправильно".
  3. Если мы достигли конца строки (точки) и стек пустой, это означает, что последовательность скобок правильная. Возвращаем "Правильно". В противном случае, возвращаем "Неправильно".

Вот пример реализации на языке Python:

python
def check_brackets(sequence): stack = [] for char in sequence: if char == '(': stack.append(char) elif char == ')': if not stack: return "Неправильно" if stack[-1] == '(': stack.pop() else: return "Неправильно" if not stack: return "Правильно" else: return "Неправильно" sequence = input("Введите последовательность скобок: ") result = check_brackets(sequence) print(result)

Вы можете запустить этот код, ввести вашу последовательность скобок, и программа сообщит вам, правильно ли расставлены скобки в данной последовательности.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос