Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

If (HB)then




Begin

Begin

Begin

Begin

Begin

Begin

Begin

Begin

Begin

Begin

Begin

Begin

Else

SetLength(HeaderPer, 1)

Begin

Begin

Begin

Begin

Else

End

Begin

Begin

Begin

Else

Begin

Begin

Begin

nextS:=False;HB:=false;

h:=0;l:=0;k:=0;elem:=0;n:=0;m:=0;

Temp:=''; Res:='';

SetLength(BigElenent, 0); SetLength(HeaderPer, 0);

SetLength(NumerikArray, 0);SetLength(ElementArray, 0);SetLength(DataPer, 0);

Preo:='';

//mmo2.Lines.Add(Copy(S,i+1,j-i));

Preo:=Copy(S,i+1,j-i);

Delete(S,i,j-i+2); //4+(3*х-2*х)-12

//mmo2.Lines.Add('D:'+s);

if(not isPM(Preo[1]))then

Preo:='+'+Preo;

l:=Length(Preo);

k:=0;

for j:=Length(Preo) downto 1 do

if isPM(Preo[j]) then

SetLength(BigElenent, k+1);

BigElenent[k]:=Copy(Preo, j, l-j+1);

k:=k+1;

l:=j-1;

end;

{for j:=0 to High(BigElenent) do

mmo2.Lines.Add(BigElenent[j]); }

SetLength(NumerikArray, High(BigElenent)+1);

SetLength(ElementArray, High(BigElenent)+1);

SetLength(HeaderPer, 0);

for j:=0 to High(BigElenent) do

l:=Length(BigElenent[j]);

k:=0;

elem:=0;

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

NumerikArray[j]:=-1

NumerikArray[j]:=1;

for h:=Length(BigElenent[j]) downto 1 do

if((h=1)or(BigElenent[j][h]='*')) then

if(isNumber(BigElenent[j][h+1]))then

//mmo2.Lines.Add(Copy(BigElenent[j], h+1, l-h)); // 3*5*x-x*3+x*y = 12*x+x*y

NumerikArray[j]:=NumerikArray[j]*StrToFloat(Copy(BigElenent[j], h+1, l-h));

SetLength(ElementArray[j], elem+1);

ElementArray[j][elem]:=Copy(BigElenent[j], h+1, l-h);

elem:=elem+1;

end;

//mmo2.Lines.Add(Copy(BigElenent[j], h+1, l-h));

l:=h-1;

end;

if ((not isPMUR(BigElenent[j][h])) and (not isNumber(BigElenent[j][h])))then

HB:=True;

//mmo2.Lines.Add(IntToStr(High(HeaderPer)));

//mmo2.Lines.Add(BigElenent[j][h]);

for n:=0 to High(HeaderPer) do

if (HeaderPer[n] = BigElenent[j][h])then

//mmo2.Lines.Add(HeaderPer[n]+' '+BigElenent[j][h]);

HB:=False;

end;

if(HB)then // 3*5*x-y*x*3*5+x*y

//mmo2.Lines.Add(IntToStr(High(HeaderPer)));

if (High(HeaderPer) < 0) then

SetLength(HeaderPer, High(HeaderPer)+2);

//mmo2.Lines.Add(HeaderPer[High(HeaderPer)]);

HeaderPer[High(HeaderPer)]:=BigElenent[j][h];

end;

end;

end;

end;

{for j:=0 to High(HeaderPer) do

mmo2.Lines.Add(HeaderPer[j]);

for j:=0 to High(NumerikArray) do

mmo2.Lines.Add(FloatToStr(NumerikArray[j]));} // (-3.1-4.333+2.2*x+4.25*x)

SetLength(DataPer, High(ElementArray)+1);

for j:=0 to High(DataPer) do

SetLength(DataPer[j], High(HeaderPer)+1);

for l:=0 to High(DataPer[j]) do // 3*5*x-y*x*3*5+x*y

DataPer[j][l]:=0;

end;

end;

for j:=0 to High(ElementArray) do

for l:=0 to High(ElementArray[j]) do

for n:=0 to High(HeaderPer) do

if(HeaderPer[n]=ElementArray[j][l])then

Break;

end;

DataPer[j][n]:=DataPer[j][n]+1;

end;

end;

for j:=0 to High(ElementArray) do // 3*5*x-x*3+x*y { y*(x-1)-1 x^2-y^2-1 }

Temp:=FloatToStr(NumerikArray[j]);

for l:=0 to High(ElementArray[j]) do

Temp:=Temp+' '+ElementArray[j][l]+' ';

for l:=0 to High(DataPer[j]) do

Temp:=Temp+':'+IntToStr(DataPer[j][l]);

//if(

//mmo2.Lines.Add(Temp);

end;

for j:=0 to High(ElementArray)-1 do

if (NumerikArray[j]<>0)then

for l:=j+1 to High(ElementArray) do

if(NumerikArray[l]<>0)then

HB:=True;

for n:=0 to High(DataPer[j]) do

if(DataPer[j][n]<>DataPer[l][n])then

HB:=False;

end;

end;




Поделиться с друзьями:


Дата добавления: 2015-03-29; Просмотров: 294; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.