Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ баланс скобок

Автор: -Лина- 26.11.2007 4:07

пожалуйста,помогите решить задачу!
абсолютно не понимаю,с чего начать и что делать.

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

заранее спасибо!

Автор: Sozialist 26.11.2007 7:36

Самый простой вариант без проверок. Естественно, нужно дорабатывать все виды скобок. Можно также удалять последовательность '()'. + Масса проверок, например, в начале не может идти ')', а в конце - '(' и т.д. Желательно полное условие задачи.

program balance;
var
n,m,i:integer;
st:string;

//----------------------------------------Функция---------------------------------------------
Function Bal(str:string):boolean;
begin
m:=0; n:=0;
for i:=1 to length(str) do
begin
if st[i] in [')','('] then
if st[i]=')' then inc(m)
else inc(n);
end;
if m=n then Bal:=true
else Bal:=false;
end;
//-----------------------------------------------------------------------------------------------

BEGIN
readln(st);
if Bal(st) then write('Balance exists!')
else writeln('No balance!');
readln;
END.

Автор: Гость 26.11.2007 13:12

это полное условие задачи((

Автор: volvo 26.11.2007 13:38

-Лина-
Ну поиск для кого? Сколько ж можно одни и те же вопросы задавать-то? Соревнование даже проводили по этой теме: http://forum.pascal.net.ru/index.php?showtopic=2868&st=0&p=25304&#entry25304

Выбирай любую и дорабатывай...