Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PZ_DP_2012_chast_2.docx
Скачиваний:
3
Добавлен:
26.09.2019
Размер:
302.12 Кб
Скачать

I,j,l,k,Step,Error:integer;

BackStr, Block, FirstP, SecondP : string;

New,b,plm:Boolean;

begin

New := True;

{while(New) do

begin

New:=false;

if ((S[1]='(')and(S[Length(S)]=')')) then

begin

Delete(S, 1, 1);

Delete(S, Length(S), 1);

New:=True;

end;

end; }

while(New) do

begin

New:=false;

for i:=1 to Length(S)-1 do

begin

l:=0;

k:=0;

Step:=0;

j:=0;

BackStr:='';

Block:='';

if ((S[i]='-')and(S[i+1]='(')) then

begin

Delete(S, i, 1);

Insert('-1*', s, I);

New:=True;

end;

If(New)then

Break;

end;

end;

New := True;

while(New) do

begin

New:=false;

for i:=1 to Length(S)-1 do

begin

l:=0;

k:=0;

Step:=0;

j:=0;

BackStr:='';

Block:='';

b:=False;

if ((S[i]='(')and(S[i+1]='(')) then

begin

for j:=i+2 to Length(s)-1 do

begin

if S[j]='(' then

Break;

if ((S[j]=')')and(S[j+1]=')'))then

begin

b:=True;

Break;

end;

end;

If (b) then

begin

New:=True;

Delete(S, i, 1);

Delete(S, j, 1);

Break;

end;

//Insert('-1*', S, i);

//New:=True;

end;

If(New)then

Break;

end;

end;

New := True;

while(New) do

begin

New:=false;

for i:=1 to Length(S)-1 do

begin

l:=0;

k:=0;

Step:=0;

j:=0;

BackStr:='';

Block:='';

b:=False;

plm:=false;

if ((S[i]='(')and(S[i+1]='(')) then

begin

for j:=i+2 to Length(s)-1 do

begin

if S[j]='(' then

Break;

If (isPm(s[j]))then

begin

plm:=true

end;

if ((S[j]=')')and(isPM(S[j+1])))then

begin

b:=True;

Break;

end;

if ((plm <> true)and(isPMUR(S[j+1]))and(S[j]=')'))then

begin

b:=True;

Break;

end;

end;

If (b) then

begin

New:=True;

Delete(S, i, 1);

Delete(S, j-1, 1);

Break;

end;

//Insert('-1*', S, i);

//New:=True;

end;

If(New)then

Break;

end;

end;

New := True;

while(New) do //(2+(2x+2))

begin

New:=false;

for i:=Length(S) downto 2 do

begin

l:=0;

k:=0;

Step:=0;

j:=0;

BackStr:='';

Block:='';

b:=False;

plm:=false;

if ((S[i]=')')and(S[i-1]=')')) then

begin

//mmo2.Lines.Add(IntToStr(i));

for j:=i-2 downto 2 do

begin

if S[j]=')' then

Break;

If (isPm(s[j]))then

begin

plm:=true

end;

if ((S[j]='(')and((isPM(S[j-1]))))then

begin

b:=True;

Break;

end;

if ((plm <> true)and(isPMUR(S[j-1]))and(S[j]='('))then

begin

b:=True;

Break;

end;

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]