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

If(bl)then

begin

S1:=Copy(S,I+2,J-I-1);

If not isPm(s1[1]) then

begin

k:=k-1;

S1:='+'+S1;

end;

end;

//mmo2.Lines.Add(S1);

for j:=i-2 downto 2 do

begin

if (s[j-1]=')') then

begin

bl:=false;

Break;

end;

if (s[j-1]='(')then

Break;

end;

If(bl)then

begin

S2:=Copy(S,j,I-J-1);

If not isPm(s2[1]) then

begin

k:=k-1;

S2:='+'+S2;

end;

end;

//mmo2.Lines.Add(S1);

//mmo2.Lines.Add(S2);

if (bl) then // (x+2)*(12*x) ((х+1)*(у))

begin

SavePoint:=j;

Delete(S,j,Length(S1)+Length(S2)+1+k);

New:=True;

l:=Length(S1);

k:=0;

for j:=Length(S1) downto 1 do

If isPm(s1[j]) then

begin

SetLength(FirstP, k+1);

FirstP[k]:=Copy(S1, j, l-j+1);

k:=k+1;

l:=j-1;

end;

l:=Length(S2);

k:=0;

for j:=Length(S2) downto 1 do

If isPm(s2[j]) then

begin

SetLength(SecondP, k+1);

SecondP[k]:=Copy(S2, j, l-j+1);

k:=k+1;

l:=j-1;

end;

for j:=0 to High(SecondP) do

for k:=0 to High(FirstP) do

begin

S1:=FirstP[k];

S2:=SecondP[j];

if ((S1[1]='-')and(S2[1]='-'))then

begin

S1[1]:='+';

Delete(S2,1,1);

end

else if ((S1[1]='+')and(S2[1]='-'))then

begin

S1[1]:='-';

Delete(S2,1,1);

end

else if ((S1[1]='-')and(S2[1]='+'))then

begin

S1[1]:='-';

Delete(S2,1,1);

end

else if ((S1[1]='+')and(S2[1]='+'))then

begin

S1[1]:='+';

Delete(S2,1,1);

end;

Block:=Block +S1+T+S2;

//mmo2.Lines.Add(Block);

end;

if (Block[1] = '+') then

Delete(Block,1,1);

Insert(Block, S, SavePoint); // (x+2)*(12+x)

//mmo2.Lines.Add(S);

end;

end

end;

end;

If(New)then

begin

S:=Preobr(S);

Break;

end;

end;

end;

ScoberU:=S;

end;

function TForm1.Preobr(S: String): String;

var

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