Смекни!
smekni.com

Метод Золотого сечения на Delphi (стр. 3 из 3)

s:='cos'; i:= i+2; end;

//Проверка на значение синуса или корня

if s='s' then Begin

i:= i+1; st:= Copy(Edit_F.text,i,1);

if st='i' then begin

s:='sin'; i:=i+1; end

else begin s:='sqrt'; i:=i+2; end; end;

//Проверканазначениецифры

if (s='0') or (s='1') or (s='2')or (s='3')or (s='4')

or (s='5')or (s='6')or (s='7')or (s='8')or (s='9') then

Begin

ch:=s; Bool:=False;

Repeat

Begin

i:=i+1; // Перемещение к след. символу

s:= Copy(Edit_F.text,i,1); //Копировать i-й символ в строке формул

//Проверканазначениецифры

if (s='0') or (s='1') or (s='2')or (s='3')or (s='4')

or (s='5')or (s='6')or (s='7')or (s='8')or (s='9')or (s=',') then

Begin //Если Да

//Обьединение нескольких цифр подрят

ch:= ch+s;

end

else Bool:=True; //Еслинет Bool - Истина

end;

Until Bool=True; //Выход, если Bool - Истина

My_massiv[j]:= ch; j:=j+1 //Запись значений цифр в массив

//Если значение не цифра - запись в массив текущего символа

end else Begin My_massiv[j]:=s; j:=j+1; i:=i+1; end;

end;

//Продолжение цикла до конца количества символов в строке формул

Until i > Length(Edit_F.Text);

// Взять формулу в массиве в скобки

My_massiv[0]:='(';

My_massiv[Length(Edit_F.Text)+1]:=')';

// Присвоение значению х - значения xi в массиве

For i:= 0 to 100 do begin

if My_massiv[i]= 'x' then

My_massiv[i]:= SS.Cells[0,mas];

end;

Formula(My_vivod,My_massiv[0]);

SS.Cells[1,mas]:= My_vivod; //Вывод F(xi) вмассив

mas:=mas+1; //Перемешение в массиве на строку ниже

end;

//Продолжение цикла до последнего значения xi

Until mas>z-1;

Fa:=0; i:=0; //Обнуление переменных

//Суммирование значений F(x2,x4..xn-1)

Repeat

Begin

Fa:=Fa+StrtoFloat(SS.Cells[1,i]);

i:=i+2;

end;

Until i>=z;

i:=0;

//Суммирование значений F(x1,x3..xn)

Repeat

Begin

Fb:=Fb+StrtoFloat(SS.Cells[1,i+1]);

i:=i+2;

end;

Until i>=z-1;

//Вычислениезначения F(x)

Fx:=(h/3)*(StrToFloat(SS.Cells[1,0])+(4*Fb)+(2*Fa));

//Выводрезультата

Label3.Caption:= FloatToStr(h)+'/3 * ('+SS.Cells[1,0]+

' * 4*('+FloattoStr(Fb)+')+ 2*('+FloattoStr(Fa)+') = ';

Label13.Caption:=FloatToStr(Fx);

end;

procedure TForm1.Label5Click(Sender: TObject);

begin

Form2.showmodal;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Form_help.ShowModal;

end;

end.