Курсовая работа: Программа для решения дифференциальных уравнений первого порядка методом Рунге-Кутта
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=11 then
begin
if x_rg=0 then
begin
ShowMessage('введите X1 не равное 0');
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end
else
begin
Memo4.Clear;
Memo4.Lines.Add(' y*ctg(x) ');
f:=cot(x_rg)*y_rg;
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=12 then
begin
if x_rg=0 then
begin
ShowMessage('введите X1 не равное 0');
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end
else
begin
Memo4.Clear;
Memo4.Lines.Add('(e^x-y)/x ');
f:=(exp(x_rg)-y_rg)/x_rg;
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=13 then
begin
if x_rg*y_rg<0 then
begin
ShowMessage('введите X1*Y(X1) >= 0');
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end
else
begin
Memo4.Clear;
Memo4.Lines.Add('(x*y)^(1/2) ');
f:=power(x_rg*y_rg,1/2);
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=14 then
begin
Memo4.Clear;
Memo4.Lines.Add(' x+y ');
f:=x_rg+y_rg;
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=15 then
begin
Memo4.Clear;
Memo4.Lines.Add(' x*y ');
f:=x_rg*y_rg;
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=16 then
begin
Memo4.Clear;
Memo4.Lines.Add('e^(x*y) ');
f:=exp(x_rg*y_rg);
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=17 then
begin
Memo4.Clear;
Memo4.Lines.Add('(e^x*y) ');
f:=exp(x_rg)*y_rg;
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=18 then
begin
Memo4.Clear;
Memo4.Lines.Add('(x^2)*y ');
f:=power(x_rg,2)*y_rg;
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=19 then
begin
Memo4.Clear;
Memo4.Lines.Add('-2*x+(2+x+x^2)*y^2 ');
f:=-2*x_rg+(2+x_rg+power(x_rg,2))*power(y_rg,2);
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=20 then
begin
Memo4.Clear;
Memo4.Lines.Add('-x*y+(x+1)*y^2 ');
f:=-x_rg*y_rg+(x_rg+1)*power(y_rg,3);
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=21 then
begin
Memo4.Clear;
Memo4.Lines.Add(' x^2*y^2 ');
f:=power(x_rg,2)*power(y_rg,2);
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=22 then
begin
Memo4.Clear;
Memo4.Lines.Add(' e^(x-y) ');
f:=exp(x_rg-y_rg);
Memo3.clear;
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=23 then
begin
if (x_rg=-y_rg) then
begin
ShowMessage('введите Y(x1)неравное X1');
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end
else
begin
Memo4.Clear;
Memo4.Lines.Add('(x-(y/2))/(x+y) ');
f:=(x_rg-0.5*y_rg)/(x_rg+y_rg);
Memo3.clear;
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=24 then
begin
Memo4.Clear;
Memo4.Lines.Add('(x+1)*(y+1) ');
f:=(x_rg+1)*(y_rg+1);
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=25 then
begin
Memo4.Clear;
Memo4.Lines.Add('x*e^(y) ');
f:=x_rg*exp(y_rg);
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=26 then
begin
if (2*x_rg=-y_rg) then
begin
ShowMessage('введите Y(x1) неравное -2*X1');
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end
else
begin
Memo4.Clear;
Memo4.Lines.Add('(x+1)/(2*x+y) ');
f:=(x_rg+1)/(2*x_rg+y_rg);
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=27 then
begin
if (x_rg=0)or(y_rg=0) then
begin
ShowMessage('введите Y(x1) неравное 0');
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end
else
begin
Memo4.Clear;
Memo4.Lines.Add('((x+1)*(y^2))/x*y ');
f:=((x_rg+1)*power(y_rg,2))/x_rg*y_rg;
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=28 then
begin
if (x_rg=-y_rg) then
begin
ShowMessage('введите Y(x1) неравное -X1');
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end
else
begin
Memo4.Clear;
Memo4.Lines.Add('(3.4-x*y)/(x+y) ');
f:=(3.4-x_rg*y_rg)/(x_rg+y_rg);
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=29 then
begin
if y_rg=0 then
begin
ShowMessage('введите Y(x1) не равное 0');
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end
else
begin
Memo4.Clear;
Memo4.Lines.Add('y-2x/y ');
f:=y_rg-2*x_rg/y_rg;
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
end;
{------------------------------------------------------------------------------}
if RadioGroup1.ItemIndex=30 then
begin
if y_rg=0 then
begin
ShowMessage('введите Y(x1) не равное 0');
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end
else
begin
Memo4.Clear;
Memo4.Lines.Add(' x/y ');
f:=x_rg/y_rg;
Memo3.lines.Add(''+floattostr(f));
Button1.Enabled:=True;
RadioGroup1.Enabled:=False;
RadioGroup1.ItemIndex:=31;
end;
end
{------------------------------------------------------------------------------}
except
on EConvertError do // невозможно преобразовать строку символов в число
begin
MessageDlg('Некорректные значения переменных',mtError,[mbOk],0);
exit;
end;
end;
end;
//------------------------------------------------------------------------------
{Активация ввода образцовых функций}