- •Введение
- •1.Предварительный анализ
- •1.1 Дифференцирование на основе формулы Лагранжа
- •1.2 Дифференцирование на основе формулы Ньютона
- •1.3 Сравнительный анализ методов
- •2.4. Словестное описание алгоритма
- •2.5 Выбор способа организации входных и выходных данных
- •2.6. Интерфейс пользователя
- •2.7. Тестирование
- •2.8. Общая характеристика программы
- •2.9. Обзор подобных программ Обучающая программа по алгебре "Решалка"
- •Программа для решения задач и уровнений по высшей математике "Solver"
- •3. Организационный раздел
- •3.1. Организация рабочего места пользователя
- •3.1.1 Организация света на рабочем месте
- •3.1.2 Площадь одного рабочего места
- •3.1.3. Общие требования к организации рабочих мест
- •3.1.4 Требования к уровням шума и вибрации на рабочих местах
- •3.1.5 Организация режима труда и отдыха при работе с пк
- •Заключение
- •Список использованных источников
- •Приложения
- •Руководство пользователя
- •Общие сведения о программном продукте
- •Краткое описание программного продукта
- •3. Возможные области применения
- •Описание запуска
- •Инструкция по работе с программным продуктом
- •Листинг программного кода
- •Interface
- •Implementation
- •I:integer;
- •I,h,j,l,k,elem,n,m:integer;
- •If(nextS)then
- •If(not isPm(Preo[1]))then
- •If isPm(Preo[j]) then
- •If ((not isPmur(BigElenent[j][h])) and (not isNumber(BigElenent[j][h])))then
- •If (hb)then
- •If(not isPmur(Temp[1]))then
- •Insert(Res, s, I);
- •If(isPm(s[I-1]))then
- •If(go)then
- •I,h,j,l,k,elem,n,m:integer;
- •If(nextS)then
- •If(not isPm(Preo[1]))then
- •If isPm(Preo[j]) then
- •If ((not isPmur(BigElenent[j][h])) and (not isNumber(BigElenent[j][h])))then
- •If (hb)then
- •If isSc(s[I-1]) then
- •If(New)then
- •I,j,l,k,Step,Error,Num1,SavePoint:integer;
- •If(isUr(s[I]))then
- •If(isPmur(s[j]))then
- •If(isUr(Numeric[1]))then
- •If(bl)then
- •If not isPm(s1[1]) then
- •If(bl)then
- •If not isPm(s2[1]) then
- •If isPm(s1[j]) then
- •If isPm(s2[j]) then
- •If(New)then
- •I,j,l,k,Step,Error:integer;
- •Insert('-1*', s, I);
- •If(New)then
- •If (b) then
- •If(New)then
- •If (isPm(s[j]))then
- •If (b) then
- •If(New)then
- •If (isPm(s[j]))then
- •If (b) then
- •If(New)then
- •I,a,k,t:Integer;
If (hb)then
begin
NumerikArray[j]:=NumerikArray[j]+NumerikArray[l];
NumerikArray[l]:=0;
Go:=true
//mmo2.Lines.Add('***');
end;
end;
end;
end;
end; // 3*5*x-x*3+x*y = +12*x+x*y
{for j:=0 to High(NumerikArray) do
mmo2.Lines.Add(FloatToStr(NumerikArray[j]));}
Temp:='';
Res:='';
for j:=0 to High(NumerikArray) do
begin
if(NumerikArray[j]<>0) then
begin
//mmo2.Lines.Add('***');
Temp:=FloatToStr(NumerikArray[j]);
for l:=0 to High(ElementArray[j]) do
begin
temp:=temp+'*'+ElementArray[j][l];
end;
if(not isPMUR(Temp[1]))then
Temp:='+'+Temp;
end;
Res:=Temp+Res;
Temp:='';
end;
{else if(isPM(S[i+1]))then
case S[i+1] of
'+': Delete(S,i+1,1);
end; }
//mmo2.Lines.Add('I :'+IntToStr(i));
//mmo2.Lines.Add('Str:'+S);
//mmo2.Lines.Add('Res:'+Res); //4+(3*х-2*х)-12
Insert(Res, S, i);
if Length(s)>1 then
if(isPM(S[i-1]))then
Delete(S,i-1,1);
//mmo2.Lines.Add('S C:'+S); //
end;
end;
if(go)then
Break;
end;
end;
{BackStr:='';
for i:=1 to Length(S) do
begin
if(S[i]<>' ') then
BackStr:=BackStr+S[i];
end; }
Sokr:=S;
//mmo2.Lines.Add(BackStr);
end;
function TForm1.Stepner(S: String): String;
var
i,j,l,k,Step,Error:integer;
BackStr, Block : string;
New:Boolean;
begin
New := True;
while(New) do
begin
New:=false;
for i:=1 to Length(S) do
begin
if(S[i]='^') then
begin
l:=0;
k:=0;
Step:=0;
BackStr:='';
Block:='';
New:=True;
j:=1;
while(true)do
begin
if (i+j+1 > Length(S)) then
Break;
if (isNumber(S[i+j+1])= false) then
Break;
j:=j+1;
end;
//i+1 .... j - степень
l:=j; //сохраним степень
Val(Copy(S, i+1, j),Step, Error);
//mmo2.Lines.Add(IntToStr(Step));
If isSc(s[I-1]) then
begin
k:=0;
for j:=i-1 downto 1 do
begin
if(S[j]=')')then
k:=k+1
else if (S[j]='(')then
k:=k-1;
if (k=0)then
Break;
end;
Block:=Copy(S, j, i-j);
//mmo2.Lines.Add(Block);
end
else
begin
//mmo2.Lines.Add(IntToStr(j));
j:=i-1;
while((isPMUR(S[j]) <> True)and(isSC(S[j])<> True)and(j>=1)) do
begin
{if ((isNumber(S[i-1]))and(not isNumber(S[j])))then
Break
else if((not isNumber(S[i-1]))and(isNumber(S[j]))) then
Break; }
j:=j-1;
end;
j:=j+1;
Block:=Copy(S, j, i-j);
//mmo2.Lines.Add(Block);
end;
Delete(S, j, i-j+l+1);
//mmo2.Lines.Add(IntToStr(j)+ ' '+ IntToStr(i)+ ' '+ IntToStr(l)+ ' '+ IntToStr(i-j+l));
for k:=1 to Step do
begin
BackStr:=BackStr+Block;
if(k<>Step)then
BackStr:=BackStr+'*';
end;
//mmo2.Lines.Add(BackStr);
if (Step <> 1) then
begin
BackStr:='('+BackStr+')';
end;
Insert(BackStr, S, j); //123+(x-14)^3+6
//mmo2.Lines.Add(S);
end;