Доброго времени суток, анон, Есть одна задача, она на приложенной картинке. Что от меня хотят? Найти кол-во скобочек "(" и сравнить с кол-вом скобочек ")"? Найти все "правильные" выражения (которые заключены меж открывающих и закрывающих скобок), а все остальные случаи использования скобок записать в ошибки? Двач, помогач же, плес.
Побампаю рандомными картинками немного.
Нет, ну серьёзно.
Будешь делать многофункциональный КОКУЛЯТОР прям следующей лабой, отвечаю. Делается за час ващет, нужно просто в редуцирование и универсализацию уметь
>>153450536Да это всё понятно, браток, калькулятор и в Африке калькулятор – штука, чтоб числа считать. А тут вон не могу понять чего ожидают увидеть.
>>153450237 (OP)Второе.(o + p)*(x + y + i) - корректноеkek)))) - некорректное выражение((a + b)) - наверное, корректное())( - некорректное, хотя количество открывающихся и закрывающихся скобок равны.
Не вижу никакого прикладного применения для простого сравнения количества "(" с ")". Ищи "правильные" выражения
>>153450237 (OP)Полагаешь число XYU равным 0. Идёшь по выражению слева направо. При нахождении открывающей скобки увеличиваешь XYU на 1. При нахождении закрывающей скобки уменьшаешь XYU на 1. Если в какой-то момент XYU оказывается меньше 0, значит выражение неправильное. Если в конце оказывается, что XYU осталось больше нуля, значит, выражение тоже неправильное.
>>153450645Но это ведь тогда мы просто "выражения в скобках" ищем, а не сами скобки считаем. Хотя может и нет, хрен его разбери... Но спасибо за мнение, да.
>>153450688И я не вижу, а вдруг дядь препод увидит? Не зря же он доцентом сидит. Хотя может и зря, может и зря.>>153450704Там (в методичке-то) ещё предлагается эту лабу решать через поиск по шаблону. А так да, сделал бы примерно по твоему алгоритму.
А если решить в одну сторону, препод наверняка спросит в другую.
Хех.
>>153450237 (OP)uses crt;varz:string;a,b,x,q:integer;beginclrscr;readln(z);a:=pos('(',z);while a<>0 dobegininc(x);delete(z,a,1);a:=pos('(',z);end;writeln('Кол-во (:',x,'.');readln;b:=pos(')',z);while b<>0 dobegininc(q);delete(z,b,1);b:=pos(')',z);end;writeln('Кол-во ):',q,'.');readln;beginif x=qthenwriteln('Выражение составлено правильно.')elsewriteln('Выражение составлено неправильно.');end;readln;end.
>>153451903Ну даёшь.
var a = "(fsdfsdf(gfdgdf(gdfd)g))"var b = a.split("(").lengthvar c = a.split(")").lengthb===c2 секунды в консоли браузера.