лабораторная работа / 3
.docxЦель работы: овладение практическими навыками разработки алгоритмов и программ с циклической структурой.
Задание. Вычислить и вывести на экран значение заданной функции
t=2.2, xЄ[0.2;2], Δx=0.2.
Значение функции вычислять многократно при изменении аргумента в указанном диапазоне и с заданным шагом Δx. Организовать вывод значения аргумента и вычисленного значения функции в виде таблицы:
Таблица функции Z(X)
X Y
… …
… …
Блок-схема.
НАЧАЛО
Введите x0,xk
x0, xk
Заголовок
trunc((xk-x0)/dx)+1
x=x0
i=1,n
КОНЕЦ
x,z
x=0.5
x<0.5
x=x+Δx
нет
нет
да
да
Текст программы.
Program Lab3_for;
Const dx=0.2;t=2.2;
Var x0,xk,z,x:real;
n,i:byte;
Begin
Writeln('Введите x0,xk');
Read(x0,xk);
Writeln('Таблица функции z(x)');
Writeln(' x y');
n:=trunc((xk-x0)/dx)+1;
x:=x0;
for i:=1 to n do
begin
If x<0.5 then z:=(ln(exp(3*ln(x)))+sqr(x))/sqrt(x+t)
else if x=0.5 then z:=sqrt(x+t)+1/x
else z:=cos(x)+t*(sqr(sin(x)));
Writeln(x:6:3,' ',z:6:3);
x:=x+dx;
end;
End.
Блок-схема.
НАЧАЛО
Введите x0,xk
x0, xk
Заголовок
x=x0
x=0.5
x<0.5
нет
нет
да
да
x,z
x=x+Δx
нет
x>xk
да
КОНЕЦ
Текст программы.
Program Lab3_repeat;
Const dx=0.2;t=2.2;
Var x0,xk,z,x:real;
Begin
Writeln(' Введите x0,xk');
Read(x0,xk);
Writeln('Таблица функции z(x)');
Writeln(' x y');
x:=x0;
Repeat
If x<0.5 then z:=(ln(exp(3*ln(x)))+sqr(x))/sqrt(x+t)
else if x=0.5 then z:=sqrt(x+t)+1/x
else z:=cos(x)+t*(sqr(sin(x)));
Writeln(x:6:3,' ',z:6:3);
x:=x+dx;
Until x>xk;
End.
Блок-схема.
НАЧАЛО
Введите x0,xk
x0, xk
Заголовок
x=x0
x<xk
x=0.5
x<0.5
нет
нет
да
да
x,z
x=x+Δx
КОНЕЦ
Текст программы.
Program Lab3_while;
Const dx=0.2;t=2.2;
Var x0,xk,z,x:real;
Begin
Writeln(' Введите x0,xk');
Read(x0,xk);
Writeln(' Таблица функции z(x)');
Writeln(' x y');
x:=x0;
while x<=xk do
begin
If x<0.5 then z:=(ln(exp(3*ln(x)))+sqr(x))/sqrt(x+t)
else if x=0.5 then z:=sqrt(x+t)+1/x
else z:=cos(x)+t*(sqr(sin(x)));
Writeln(x:6:3,' ',z:6:3);
x:=x+dx;
end;
End.
Таблица функции z(x)
x y
0.200 -3.091
0.400 -1.606
0.600 1.527
0.800 1.829
1.000 2.098
1.200 2.273
1.400 2.306
1.600 2.169
1.800 1.859
2.000 1.403