Работа 3.8 Упр.21 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 21. Проверить, одинаковое ли число открывающихся и закрывающихся скобок в данной строке и правильно ли они расставлены, т. е. для каждой открывающей скобки есть соответствующая закрывающая скобка. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-8/21 98
Для проверки скобок достаточно просмотреть строку слева направо и вести счётчик k:
- если встречается (, увеличиваем k на 1;
- если встречается ), уменьшаем k на 1.
Если в какой-то момент k < 0, значит закрывающая скобка встретилась раньше открывающей, и скобки расставлены неверно.
После просмотра всей строки:
- если k = 0, скобки расставлены правильно;
- если k > 0, есть лишние открывающие скобки;
- если k < 0, есть лишние закрывающие скобки.
var s: string;
i, ps, k: integer;
begin
write(‘Введите строку ‘);
readln(s);
k := 0;
for i := 1 to length(s) do
if s[i] = ‘(‘ then inc(k)
else if s[i] = ‘)’ then dec(k);
if k = 0 then writeln(‘Скобки расставлены правильно’)
else if k = 1 then writeln(‘Лишняя открывающая скобка’)
else if k > 1 then writeln(‘Лишние открывающие скобки’)
else if k = -1 then writeln(‘Лишняя закрывающая скобка’)
else writeln(‘Лишние закрывающие скобки’);
end.
Ответ
Программа проверяет количество открывающих и закрывающих скобок и правильность их расстановки.