- •Введение
- •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(New)then
Break;
end;
end;
Stepner:=S;
//mmo2.Lines.Add(BackStr);
end;
function TForm1.ScoberU(S: String): String;
var
I,j,l,k,Step,Error,Num1,SavePoint:integer;
Numeric, BackStr, Block, S1, S2, T : string;
New,bl:Boolean;
FirstP : Array of string;
SecondP : Array of string;
begin
New := True;
while(New) do
begin
New:=false;
for i:=2 to Length(S)-1 do //Берем счет со второго символа до предпоследнего
begin
if(S[i]='*') then
begin
l:=0;
k:=0;
Step:=0;
j:=0;
Numeric:='';
Block:='';
If(isUr(s[I]))then
begin
T:=S[i];
//mmo2.Lines.Add(T);
//New:=True;
// -144*(x+2)
if((not isPMUR(s[i-1]) and not IsSC(s[i-1])) and (IsSC(s[i+1])))then //-144*(x+2) 15+144*(x+2)-10
begin
for j:=i-1 downto 1 do
begin
If(isPmur(s[j]))then
Break;
end;
//mmo2.Lines.Add(IntToStr(j));
if(j>0)then
begin
SavePoint:=j;
Num1:=i-j+1;
Numeric := Copy(S, j, i-j);
end
else
begin
Numeric := Copy(S, j+1, i-j-1);
Num1:=i-j;
SavePoint:=j+1;
end;
If(isUr(Numeric[1]))then
Delete(Numeric, 1,1);
//mmo2.Lines.Add(Numeric);
//получаем скобку
bl:=true;
for j:=i+2 to Length(S)-1 do
begin
if (s[j+1]='(') then
begin
bl:=false;
Break;
end;
if (s[j+1]=')')then
Break;
end;
if (bl) then //I+2 начало J конец -4*(-2+5*х)
begin
//mmo2.Lines.Add(inttostr(j));
//mmo2.Lines.Add(Copy(S,I+2,J-I-1));
//mmo2.Lines.Add(S[i+2]);
//New:=True;
l:=i+2;
New:=True;
for k:=j downto l+1 do
begin
//mmo2.Lines.Add(S[k]);
if ((isPM(S[k-1]))or(k=l+1))then
begin
if ((k=l+1)and(not isPM(S[k-1]))) then
Insert(Numeric+T, S, k-1)
else
Insert(Numeric+T, S, k);
//mmo2.Lines.Add(S[k-1]);
if ((S[k-1]='-')and(S[k]='-'))then
begin
S[k-1]:='+';
Delete(S,k,1);
end
else if ((S[k-1]='+')and(S[k]='-'))then
Delete(S,k-1,1)
else if ((S[k-1]='-')and(S[k]='+'))then
Delete(S,k,1)
else if ((S[k-1]='+')and(S[k]='+'))then
Delete(S,k,1);
end;
end;
//mmo2.Lines.Add(IntToStr(SavePoint));
if( SavePoint <> 1 ) then
begin
case s[SavePoint] of
'-':Insert('+', S, SavePoint);
'+':Insert('+', S, SavePoint);
'*':Insert('*', S, SavePoint);
'/':Insert('/', S, SavePoint);
end;
SavePoint:=SavePoint+1;
end;
Delete(S,SavePoint,Num1);
end;
end
else if((not IsSC(s[i+1])) and (IsSC(s[i-1])))then // (x+2)*-12*x ((х+1)*у)
begin
for j:=i+1 to Length(S)-1 do
begin
if((isPMUR(s[j+1]))or(isSC(s[j+1])))then
Break;
end;
Numeric := Copy(S, i+1, j-i);
//mmo2.Lines.Add(Numeric);
Delete(S,i,j-i+1);
bl:=true;
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 // (x+2)*-12*x
begin
New:=True;
for k:=i-2 downto j+1 do
begin
//mmo2.Lines.Add(S[k]);
if ((isPM(S[k-1]))or(k=j+1))then
begin
if ((k=j+1)and(not isPM(S[k-1]))) then
Insert(Numeric+T, S, k-1)
else
Insert(Numeric+T, S, k);
//mmo2.Lines.Add(S[k-1]);
if ((S[k-1]='-')and(S[k]='-'))then
begin
S[k-1]:='+';
Delete(S,k,1);
end
else if ((S[k-1]='+')and(S[k]='-'))then
Delete(S,k-1,1)
else if ((S[k-1]='-')and(S[k]='+'))then
Delete(S,k,1)
else if ((S[k-1]='+')and(S[k]='+'))then
Delete(S,k,1);
end;
end;
end;
end
else if((IsSC(s[i+1])) and (IsSC(s[i-1]))and(s[i]='*'))then // (x+2)*(12*x) --------------------------
begin
bl:=true;
k:=2;
for j:=i+2 to Length(S)-1 do
begin
if (s[j+1]='(') then
begin
bl:=false;
Break;
end;
if (s[j+1]=')')then
Break;
end;