Министерство Образования Республики Беларусь Белорусский национальный технический университет
Кафедра: «Машины и технологии литейного производства»
Курсовой проект
на тему:
«Алгоритмизация и программирование разветвляющихся процессов».
«Методы решения нелинейных уравнений».
Вариант №15
Выполнил: студент гр.
Руководитель: профессор
Чичко А.Н.
Минск 2011г.
Постановка задачи 1. Разработать алгоритм и программу для вычисления функции Z(x), заданной интервально на различных промежутках. Если функция Z(x) неопределенна при каких-либо значениях x, то в программе необходимо предусмотреть вывод сообщения «При данном Х функция неопределенна» и вывести значение Х. Вид задания функции:
Z(x)= |
|
F0, x≤x0 |
, x0=21*0-100, |
F6, x0<x≤x6 |
, x6=21*6-100, |
||
F7, x6<x≤x7 |
, x7=21*7-100, |
||
F12, x7<x≤x12 |
, x12=21*1-100, |
||
F13, x12<x≤x13 |
, x13=21*13-100, |
||
0, x>x13 |
. |
где ,
,
,
,
.
Значения a,b,c,d вычисляются по формулам:
,
, ,
где n – номер варианта.
Блок-схема задачи 1.
У1:
cos(c*x)>0) and (cos(x)<>0);
У2:
x>0 ;
У3:
(x>0) and (sin(x)<>0);
У4:
(x*a>0) and (cos(b*x)<>0) and
((x-7)/c>=0)
and (x+7>0);
У5:
(x>0) and (ln(x)>=0) and (sin(b*x)/cos(b*x)>=0) and
(cos(b*x)<>0) and (cos(x)<>0).
Программа задачи №1.
Program Zadacha1;
uses crt;
var j:integer;
a,b,c,d,x,x0,x6,x7,x12,x13:real;
z:real;
i,n:integer;
Begin
a:=0;b:=0;c:=0;n:=15;
for j:=1 to n+3 do begin
a:=a+sin(j); b:=b+ln(j); c:=c+j*j*j+j; end;
d:=a+b+c;
x0:=21*0-100;x6:=21*6-100;x7:=21*7-100; x12:=21*12-100; x13:=21*13-100;
write('vvedite x=');
readln(x);
if x<=x0 then begin
if (cos(c*x)>0) and (cos(x)<>0) then begin
z:=exp(a*x)+2*sin(b*x)*sin(b*x)+exp(3.4*ln(cos(c*x)))+d*sin(x)/cos(x);
writeln('x=',x:6:2,' Z=',z:12:3); end
else
writeln('funkcia neopredelena');
end;
if (x0<x) and(x<=x6) then begin
if x>0 then begin
z:=c*exp(-4*x)+a*ln(x+50)+b*sqr(x+70)+d*d*d*ln(x)/(x*x*x+1);
writeln('x=',x:6:2,' Z=',z:12:3); end
else
writeln('funkcia neopredelena');
end;
if (x6<x)and(x<=x7) then begin
if (x>0) and (sin(x)<>0) then begin
z:=a*cos(abs(x))*cos(abs(x))*cos(abs(x))+b*sin(d*x)
+cos(x)/sin(x)*cos(x)/sin(x)*cos(x)/sin(x)*cos(x)/sin(x)+d*ln(x)*ln(x);
writeln('x=',x:6:2,' Z=',z:12:3); end
else
writeln('funkcia neopredelena');
end;
if (x7<x)and(x<=x12) then begin
if (x*a>0) and (cos(b*x)<>0) and ((x-7)/c>=0) and (x+7>0) then begin
z:=a*ln(x*a)+sqr(cos(b*x))*sin(b*x)/cos(b*x)+sqrt((x-7)/c)+exp(3*ln(x+7))*d;
writeln('x=',x:6:2,' Z=',z:12:3);
end
else
writeln('funkcia neopredelena');
end;
if (x12<x)and(x<=x13) then begin
if (x>0) and (ln(x)>=0) and (sin(b*x)/cos(b*x)>=0) and (cos(b*x)<>0) and (cos(x)<>0) then begin
z:=a*sqrt(ln(x))+sqrt(sin(b*x)/cos(b*x))-c*exp((4/5)*ln(x))+d*x*x*x/cos(x);
writeln('x=',x:6:2,' Z=',z:12:3);
end
else
writeln('funkcia neopredelena');
end;
if x>x13 then begin
z:=0;
writeln('x=',x:6:2,' Z=',z:12:3);end;
end.