лабораторная работа / лаба 2 вариант 20
.docЛабораторная работа №2. Вариант №20.
Программирование алгоритмов разветвляющейся и циклической с заданным числом повторений структур.
Цель работы: овладение практическими навыками разработки алгоритмов и программ разветвляющейся и циклической с заданным числом повторений структур.
Задание: вычислить и вывести на экран значение заданной функции. Вычислять многократно при изменении аргумента в указанном диапазоне и с заданным шагом. Организовать вывод значения аргумента и вычисленного значения функции в виде таблицы:
Таблица функции Y(X)
X Y
… …
… …
-
Оператор с известным числом повторений For … to …do
program for;
const a=2.6;b=-0.39;deltax=0.5;
var
x,x0,xk,d,y:real;
t,m:integer;
begin
writeln( 'vvedite x0,xk');
read(x0,xk);
writeln('tablica funkcii y(x)');
writeln('x y(x)');
d:=(xk-x0)/deltax;
x:=x0;
t:=trunc(d)+1;
for m:=1 to t do begin
if x<2.8 then y:=(a+b)/(exp(x)+cos(x))
else
if (x>=2.8) and (x<6) then y:=(a+b)/(x+1)
else y:=exp(x)+sin(x);
writeln ('x=', x:8:3, 'y=', y:8:3);
x:=x+deltax;
end;
end.
2. Оператор с предусловием While…do
program while2;
const a=2.6;b=-0.39;
var
x,x0,xk,deltax,d,y:real;
begin
writeln('vvedite x0,xk,deltax');
read(x0,xk,deltax);
writeln('tablica funkcii y(x)');
writeln('x y(x)');
d:=(xk-x0)/deltax;
x:=x0;
while x<xk do begin
if x<2.8 then y:=(a+b)/(exp(x)+cos(x))
else if (x>=2.8) and (x<6) then y:=(a+b)/(x+1)
else y:=exp(x)+sin(x);
writeln ('x=', x:8:3, 'y=', y:8:3);
x:=x+deltax;
end;
end.
3. Оператор с послеусловием Repeat…Until
program repeat;
const a=2.6;b=-0.39;
var
x,x0,xk,deltax,y,d:real;
begin
writeln('vvedite x0,xk,deltax');
read(x0,xk,deltax);
writeln('tablica funkcii y(x)');
writeln('x y(x)');
x:=x0; d:=(xk-x0)/deltax;
repeat
if x<2.8 then y:=(a+b)/(exp(x)+cos(x))
else if (x>=2.8) and (x<6) then y:=(a+b)/(x+1) else y:=exp(x)+sin(x);
writeln ('x=', x:8:3, 'y=', y:8:3);
x:=x+deltax;
until x>xk;
end.
1. Блок-схема для оператора с известным числом повторений For … to …do
нет
нет
да
да
a=2.6, b=-0.39,
deltax=0.5
d=(xk-x0)/deltax
x=x0
t=trunc(d)+1
a=1,t
s=(a+b)/(ex+cos(x)) s=(a+b)/(x+1)
x=x
+deltax
s=ex+sin(x)
2. Блок-схема для оператора с предусловием While…do
нет
да
a=2.6, b=-0.39
d=(xk-x0)/deltax
x=x0
нет
нет
да
да
s=(a+b)/(ex+cos(x)) s=(a+b)/(x+1)
x=x+deltax
s=ex+sin(x)
3. Блок-схема для оператора с послеусловием Repeat…Until
да
Таблица функции Z(x):
x Z(x)
0.000 1.105
0.500 0.875
1.000 0.678
1.500 0.485
2.000 0.317
2.500 0.194
3.000 0.552
3.500 0.491
4.000 0.442
4.500 0.402
5.000 0.368
5.500 0.340
6.000 403.149
6.500 665.357
7.000 1097