Министерство Образования Республики Беларусь Белорусский национальный технический университет
Кафедра: «Машины и технологии литейного производства»
Курсовой проект
на тему:
«Алгоритмизация и программирование разветвляющихся процессов».
«Методы решения нелинейных уравнений».
Вариант №8
Выполнил: студент гр.104319
Елак И.М.
Руководитель: профессор
Чичко А.Н.
Минск 2011г.
Постановка задачи 1. Разработать алгоритм и программу формирования одномерного массива Z[i] по условию Z[i]=Z(x), заданной интервально на различных промежутках. Если функция Z(x) неопределенна при каких-либо значениях x, то в программе необходимо предусмотреть вывод сообщения «При данном Х функция неопределенна» и вывести значение Х. Вид задания функции:
Z(x)= |
|
F20 x≤x20 |
, x20=20-12, |
F21 x12<x≤x21 |
, x21=21-12, |
||
F23 x21<x≤x23 |
, x23=23-12, |
||
F24 x23<x≤x24 |
, x24=24-12, |
||
F25 x24<x≤x25 |
, x25=25-12, |
||
0, x>x25 |
. |
где
f 20=Z*x3Z +b*ln3x - +c*lnx-c;
f21 =ln(Zx) + cos(xb)/ln(bx) - (x+7d)+c
f23 =ln(cos(Zx)) + b2ebx - cx5+ ln ;
f24 =e-cx/3+Z*ln(Zx)+b - d/(x3+7)
f25 =Z*ln3/8 + b*sin(be-b/x)+(x-c)+d .
Значения Z,b,c,d вычисляются по формулам:
, ,
, , где n – номер варианта.
При формировании функции массива Z[i] можно выбрать несколько вариантов шага, но при условии, чтобы на каждом из интервалов было взято не менее 10-ти значений
При выполнении задачи шаг по x можно брать нецелым числом. В программе необходимо организовать вывод всех элементов Z[i] и числа их значений на монитор.
Блок-схема для задачи 1.
У1: (x>0) and (ln(x)>0) and ((d*x)>=0);
У2: if ((a*x)>0) and ((x*ln(b)<>0)) and
and (ln(c*exp((2/7)*ln(x)))<>0);
У3: ((cos(a*x))>0) and (d>0) and ((exp(3*ln(d)))>0) and (x<>0);
У4: ((a*x)>0) and ((x*exp(2*ln(abs(x)))+7)<>0) and (x<>0)
У5: (x<>0) and ((ln(abs(x)))>0) and (ln(x-d)<>0) and (cos(x*exp(2*ln(abs(x))))<>0)
Нет значений
X=, Z
А
Б
Г
Б
Г
В
Д
i=300
Конец Программа задачи №1.
ProgrZm ZZdZchZ1;
uses crt;
vZr j:integer;
Z,b,c,d,x,z,z1, x20,x21,x23,x24,x25:reZl;
i,n:integer;
f:text;
Begin
clrscr;
Zssign(f,'result8.txt');
rewrite(f);
Z:=0;b:=0;c:=0;n:=8;
for j:=1 to n+3 do begin
Z:=Z+sin(j); b:=b+ln(j); c:=c+j*j*j+j; end;
d:=Z+b+c;
x20:=20-12; x21:=21-12; x23:=23-12; x24:=24-12; x25:=25-12;
x:=0
for i:=1 to 300 do begin
if x<=x20 then begin
if (x>0) Znd (ln(x)>0) Znd ((d*x)>=0) then begin
z:=Z*exp(3*Z*ln(x))+b*exp(3*ln(ln(x)))+sqrt(d*x)+(-c)*c*ln(x);
writeln(f,'x=',x:6:2,' Z=',z:12:3);
end
else writeln(f,'x=',x:6:2,' Z=net znZcheniy');
end;
if (x20<x) Znd (x<=x21) then begin
if ((Z*x)>0) Znd (x>0) Znd ((x*ln(b)<>0)) Znd ((c*exp((2/7)*ln(x)))>0)
Znd (ln(c*exp((2/7)*ln(x)))<>0) then
begin
z:=ln(Z*x)+cos(exp(b*ln(x)))/(x*ln(b))-(x+7*d)+c*exp(2*c*x)/ln(c*exp((2/7)*ln(x)));
writeln(f,'x=',x:6:2,' Z=',z:12:3);end
else
writeln(f,'x=',x:6:2,' Z=net znZcheniy');
end;
if (x21<x) Znd (x<=x23) then begin
if ((cos(Z*x))>0) Znd (d>0) Znd ((exp(3*ln(d)))>0) Znd (x<>0) then
begin
z:=ln(cos(Z*x))+sqrt(b)*exp(b*x)-c*x*exp(4*ln(Zbs(x)))+sqrt(exp(3*ln(d)))*ln(Zbs(x));
writeln(f,'x=',x:6:2,' Z=',z:12:3); end
else
writeln(f,'x=',x:6:2,' Z=net znZcheniy');
end;
if (x23<x) Znd (x<=x24) then begin
if ((Z*x)>0) Znd ((x*exp(2*ln(Zbs(x)))+7)<>0) Znd (x<>0) then
begin
z:=exp((-c)*x/3)+Z*ln(Z*x)+b*sqrt(sqr(sqr(b))*cos(x))-d/(x*exp(2*ln(Zbs(x)))+7);
writeln(f,'x=',x:6:2,' Z=',z:12:3);
end
else
writeln(f,'x=',x:6:2,' Z=net znZcheniy');
end;
if (x24<x) Znd (x<=x25) then begin
if (x<>0) Znd ((ln(Zbs(x)))>0) Znd ((x-d)>0) Znd (ln(x-d)<>0) Znd (cos(x*exp(2*ln(Zbs(x))))<>0) then
begin
z1:=Z*exp((3/8)*ln(ln(Zbs(x))))+b*sin(b*exp((-b)/x))+(x-c);
z:=z1+d*(sqr((sin(x*exp(2*ln(Zbs(x)))))/cos(x*exp(2*ln(Zbs(x))))))/ln(x-d);
writeln(f,'x=',x:6:2,' Z=',z:12:3);
end
else
writeln(f,'x=',x:6:2,' Z=net znZcheniy');
end;
if x>x25 then begin
z:=0;
writeln(f,'x=',x:6:2,' Z=',z:1:0);end;
x:=x+0.5;
end;
End.