Вычисление значения функции y(x)

Задание 1.1

Вычислить значение функции y(x) на промежутке [1;2.8] с шагом h=0.3.

В Pascal:

Program z1;

Uses crt;

Var Xn, Xk, X,Y, H,Z:REAL;

Begin

Clrscr;

Write(‘‚Enter Xn, Xk, H=’);

Readln(Xn, Xk, H);

X:=Xn;

Repeat

Z:= 1-exp((0.5)*x);

If z=0 then writeln(‘NO’) else

Y:=ln(6.8*sqrt(x))*(exp((1/3)*(ln(abs(Z))))*(abs(Z)/Z));

Writeln(‘X=’,X:6:1,’ Y=’,Y:8:3);

X:=X+H;

Until X>=Xk+H/2;

Readkey;

End.

Результаты вычислений:

В Excel:

В MathCAD :

В Delphi:

Var

I:integer;

S, Xn, z,F, h,Xk:real;

Procedure TForm1.BitBtn1Click(Sender: TObject);

Begin

Xn:=strtoFloat(edit1.text);

H:=strtoFloat(edit2.text);

Xk:=strtoFloat(edit3.text);

Repeat

Z:= 1-exp((0.5)*Xn);

F:=ln(6.8*sqrt(Xn))*(exp((1/3)*(ln(abs(Z))))*(abs(Z)/Z));

Memo1.Lines. Add(‘x=’+FormatFloat(‘0.0′,xn)+’ y=’+FormatFloat(‘0.000’,F));

Xn:=Xn+h;

Until Xn>Xk;

End;

Procedure TForm1.BitBtn2Click(Sender: TObject);

Begin

Form1.close;

End;

End.

Вывод: т. к. ответы в Pascal, Excel, MathCAD и Delphi сошлись – решение верно.

Блок-схема алгоритма решения задания №1.1

Задание 1.2

Вычислить значение функции y(x) с условием на промежутке [-2;3] с шагом h=0.5

В Pascal:

Program z2;

Uses crt;

Label 20;

Var x, y,Xn, Xk, h:real;

Begin clrscr;

Writeln(‘Please ENTER Xn, Xk, h=’);

Readln(Xn, Xk, h);

X:=Xn;

While x<=Xk+h/2 do

Begin

If x<0 then y:=1/sin(x) else

If (x>=0) and (x<2) then y:=(2*x)/((abs(x-2)/(x-2))*(exp(1/3*(ln(abs(x-2)))))) else

If x>2 then y:=sqr(cos(x))/(x-2)

Else

Begin

Writeln(‘NO answer’);

Goto 20;

End;

Writeln(‘x=’,x:3:1,’ y=’,y:6:3);

20: x:=x+h;

End;

Readkey;

End.

Результаты вычислений:

Компьютерный вычисление функция алгоритм

В Excel:

В MathCAD:

В Delphi :

Var

X, Xn, Xk, h,y: Real;

Begin

Xn:=strtoFloat(edit1.text);

Xk:=strtoFloat(edit2.text);

H:=strtoFloat(edit3.text);

Begin

X:=Xn;

While x<=Xk+h/2 do

Begin

If (x=2) then

Begin

Memo1.Lines. Add(‘No answer’);

End

Else

Begin

If x<0 then y:=1/sin(x) else

If (x>=0) and (x<2) then y:=(2*x)/((abs(x-2)/(x-2))*(exp(1/3*(ln(abs(x-2)))))) else

If x>2 then y:=sqr(cos(x))/(x-2);

Memo1.Lines. Add(‘y=’+FormatFloat(‘0.000’,y));

Series1.AddXY(x, y,”,clred);

End;

X:=x+h;

End;

End;

End;

End.

Вывод: т. к. ответы в Pascal, Excel, MathCADи Delphiсошлись – решение верно.

Блок-схема алгоритма решения задания: 1.2

Нахождение функции, заданной условием:

Вычислить функцию y(x) по заданному массиву x

В Pascal:

Program zadanie3;

Uses crt;

Const n=4;

Var x, y:array[1..n] of real;

I:integer;

Z, j,d:real;

Begin

Clrscr;

For i:=1 to n do

Begin

Write(‘Enter x[i]=’);

Readln(x[i]);

End;

For i:=1 to n do

Begin

J:=exp(x[i])-8.35*x[i]*x[i];

Z:=exp(1/3*ln(abs(j)))*(abs(j)/j);

D:=exp(x[i]*ln(37))+ln(abs(sin(2*x[i])))*(abs(2*x[i])/2*x[i]);

Y[i]:=z/d;

Writeln(‘x[i]=’,x[i]:5:1,’ y[i]=’,y[i]:5:3);

End;

Readkey;

End.

Результаты вычислений:

В Excel :

В MathCAD:

В Delphi:

Var x, y:array[0..3]of real;

I:integer;

Z, j,d:real;

Begin

Randomize;

For i:=0 to 3 do

Begin

X[i]:=strtofloat(stringGrid1.cells[i,0]);

J:=exp(x[i])-8.35*x[i]*x[i];

Z:=exp(1/3*ln(abs(j)))*(abs(j)/j);

D:=exp(x[i]*ln(37))+ln(abs(sin(2*x[i])))*(abs(2*x[i])/2*x[i]);

Y[i]:=z/d;

Stringgrid1.Cells[i,1]:=FormatFloat(‘0.000’,y[i]);

End;

End;

Procedure TForm1.BitBtn2Click(Sender: TObject);

Begin

Form1.close;

End;

End.

Вывод: т. к. ответы в Pascal, Excel, MathCAD и Delphi сошлись – решение верно.

Блок-схема алгоритма решения задания №1.3

Нахождение функции заданном массиве:

Задание 1.4

Найти сумму, если задана функция y(x), задан массив а, даны Xn, n, h.

В Pascal:

Program Summa;

Uses crt;

Const n=6;

Var x, j,z, d,Xn, h,F, S:Real;

I:Integer;

A:array [1..n] of Real;

BEGIN

Clrscr;

Randomize;

Write(‘enter please Xn, h=’);

ReadLN(Xn, h);

For i:=1 to n Do

Begin

Write(‘enter please a[i]=’);

ReadLN(a[i]);

End;

X:=Xn;

S:=0;

For i:=1 to n Do

Begin

J:=(ln(abs(3+x*x*x))*(abs(3+x*x*x)/(3+x*x*x)))-(exp((cos(x)*cos(x))*ln(2)));

Z:=exp(1/7*ln(abs(j)))*abs(j)/j;

D:=sin(2*x)*cos(3*x)+sqrt(1+exp((x)*ln(2)));

F:=z/d;

S:=S+F*a[i];

X:=x+h;

End;

WriteLN(‘S=’,S:10:3);

END.

Результаты вычислений:

В Excel:

В MathCAD:

В Delphi:

Var a:array[0..5]of real;

I:integer;

X, s,Xn, z,F, j,d, h:real;

Begin

Xn:=strtoFloat(edit1.text);

H:=strtoFloat(edit2.text);

X:=Xn;

S:=0;

For i:=0 to 5 do

Begin

J:=(ln(abs(3+x*x*x))*(abs(3+x*x*x)/(3+x*x*x)))-(exp((cos(x)*cos(x))*ln(2))); j:=(ln(abs(3+x*x*x))*(abs(3+x*x*x)/(3+x*x*x)))-(exp((cos(x)*cos(x))*ln(2)));

Z:=exp(1/7*ln(abs(j)))*abs(j)/j;

D:=sin(2*x)*cos(3*x)+sqrt(1+exp((x)*ln(2)));

F:=z/d;

A[i]:=strtofloat(stringGrid1.cells[i,0]);

S:=s+F*a[i];

X:=x+h;

End;

Memo1.Lines. Add(‘ Ño ì ìà= ‘+FormatFloat(‘0.000’,s));

End;

Procedure TForm1.BitBtn2Click(Sender: TObject);

Begin

Form1.close;

End;

End.

Вывод : т. к. ответывPascal, Excel, MathCAD иDelphi сошлись – решениеверно.

Блок-схема алгоритма решения задания №1.4

Нахождение функции, если дан x, h, n, задан массив :


Вычисление значения функции y(x)