Алгоритмизация и программирование разветвляющихся процессов
Z:=a*exp (3/8*ln (ln (ABS (x))))+b*sin (b*exp (-b/x))+(x-c)+d*sin (x*x*x)*sin (x*x*x)/(cos (x*x*x)*cos (x*x*x)*ln (x-d)); Алгоритмизация и программирование разветвляющихся процессов". X4:=5*4−80;x7:=5*7−80; x11:=5*11−80; x15:=5*15−80; x25:=5*25−80;x:=-80; for i:=1 to 131 do begin. Кафедра: «Машины и технологии литейного производства». Белорусский национальный технический университет. Министерство… Читать ещё >
Алгоритмизация и программирование разветвляющихся процессов (реферат, курсовая, диплом, контрольная)
Министерство Образования Республики Беларусь
Белорусский национальный технический университет
Кафедра: «Машины и технологии литейного производства»
Курсовой проект
на тему:
1. «Алгоритмизация и программирование разветвляющихся процессов»
2. «Методы решения нелинейных уравнений»
Минск 2010 г.
Постановка задачи №1. Разработать алгоритм и программу для вычисления функции Z (x), заданной интервально на различных промежутках. Если функция Z (x) неопределенна при каких-либо значениях x, то в программе необходимо предусмотреть вывод сообщения «При данном X функция неопределенна» и вывести значение X. Общий вид задания функции:
где ,
Значения a, b, c, d вычисляются по формулам:
,
, где n — номер варианта.
Листинг программы № 1
Program kursovoj_Braginec_DA;
var j: integer;
a, b, c, d, x, x4, x7,x11,x15,x25:real;
i, n: integer;
z:extended;
Begin
a:=0;b:=0;c:=0;n:=3;
for j:=1 to n+3 do begin
a:=a+sin (j); c:=c+j*j*j+j; end;
for j:=2 to n+3 do begin
b:=b+1/ln (j);end; d:=a+b+c;
x4:=5*4−80;x7:=5*7−80; x11:=5*11−80; x15:=5*15−80; x25:=5*25−80;
writeln ('Vvedite znachenie x=');
readln (x);
if x<=x4 then begin
if (x>1) and (a>1) then begin
z:=b*SQRT (x)+SQRT (ln (a*x))+c*x*x*x+d*exp ((1/10)*ln (x));
writeln ('x=', x:6:2,' Z=', z:12:3);
end
else writeln ('x=', x:6:2,' Z=net znacheniy');
end;
if (x4<=x7) then begin
if (x>0) then begin
z:=a*exp (3*ln (cos (ABS (x))))+b*sin (d*x)+exp (4*(sin (x)/cos (x)))+d*ln (x)*ln (x);
writeln ('x=', x:6:2,' Z=', z:12:3);end else
writeln ('x=', x:6:2,' Z=net znacheniy');
end;
if (x7<=x11) then begin
if (x>0) and (x/d>=0) then begin
z:=ln (abs (a*x))+b*cos (x*x*x*x)*sin (1/(x*x*x))-c*ln (x)*ln (x)*ln (x)+sqrt (x/d);
writeln ('x=', x:6:2,' Z=', z:12:3);;
end
else writeln ('x=', x:6:2,' Z=net znacheniy');
end;
if (x11<=x15) then begin
if (x-5*x*x*x>0) and (d>0) and (x*x*x-2*d<>0) and (exp (3*ln (x+c))>=0) then begin
z:=a*exp (-4*x)+b*ln (x-5*x*x*x)+c*SQRT (exp (3*ln (x+c)))+ln (d)/(x*x*x-2*d);
writeln ('x=', x:6:2,' Z=', z:12:3);;
end
else writeln ('x=', x:6:2,' Z=net znacheniy');
end;
if (x15<=x25) then begin
if (x<>0) and (x-d>0) and (d>=0) then begin
z:=a*exp (3/8*ln (ln (ABS (x))))+b*sin (b*exp (-b/x))+(x-c)+d*sin (x*x*x)*sin (x*x*x)/(cos (x*x*x)*cos (x*x*x)*ln (x-d));
writeln ('x=', x:6:2,' Z=', z:12:3);
end
else
writeln ('x=', x:6:2,' Z=net znacheniy');
end;
if x>x25 then begin
z:=0;
writeln ('x=', x:6:2,' Z=', z:12:3);end;
End.
Результаты задачи № 1
Vvedite znachenie x=23
x= 23.00 Z=net znacheniy
Vvedite znachenie x=-37
x=-37.00 Z=net znacheniy
Vvedite znachenie x=-100
x=-100.00 Z=net znacheniy
Vvedite znachenie x=-7
x= -7.00 Z=-149 327 123 808.531
Постановка задачи 2. Разработать алгоритм и программу формирования одномерного массива A[i] по условию A[i]=Z (x), заданной интервально на различных промежутках. Если функция Z (x) неопределенна при каких-либо значениях x, то в программе необходимо предусмотреть вывод сообщения «При данном Х функция неопределенна» и вывести значение Х. Вид задания функции:
где ,
Значения a, b, c, d вычисляются по формулам:
,
, где n — номер варианта.
При формировании функции массива A[i] можно выбрать несколько вариантов шага, но при условии, чтобы на каждом из интервалов было взято не менее 10-ти значений
При выполнении задачи шаг по x можно брать нецелым числом. В программе необходимо организовать вывод всех элементов A[i] и числа их значений на монитор.
Блок-схема для задачи №2.
Листинг программы № 2
Program Kursovoj_Braginec_DA;
uses crt;
var j: integer;
a, b, c, d, x4,x7,x11,x15,x25:real;
i, n, x:integer;
f:text;
z:extended;
Begin
clrscr;
assign (f,'Otvet.txt');
rewrite (f);
a:=0;b:=0;c:=0;n:=3;
for j:=1 to n+3 do begin
a:=a+sin (j); c:=c+j*j*j+j; end;
for j:=2 to n+3 do begin
b:=b+1/ln (j);end; d:=a+b+c;
x4:=5*4−80;x7:=5*7−80; x11:=5*11−80; x15:=5*15−80; x25:=5*25−80;x:=-80; for i:=1 to 131 do begin
if x<=x4 then begin
if (x>1) and (a>1) then begin
z:=b*SQRT (x)+SQRT (ln (a*x))+c*x*x*x+d*exp ((1/10)*ln (x));
writeln (f,'x=', x:6,' A[', i,']=', z:6:3);
end
else writeln (f,'x=', x:6,' A[', i,']=net znacheniy');
end;
if (x4<=x7) then begin
if (x>0) then begin
z:=a*exp (3*ln (cos (ABS (x))))+b*sin (d*x)+exp (4*(sin (x)/cos (x)))+d*ln (x)*ln (x);
writeln (f,'x=', x:6,' A[', i,']=', z:6:3);end else
writeln (f,'x=', x:6,' A[', i,']=net znacheniy');
end;
if (x7<=x11) then begin
if (x>0) and (x/d>=0) then begin
z:=ln (abs (a*x))+b*cos (x*x*x*x)*sin (1/(x*x*x))-c*ln (x)*ln (x)*ln (x)+sqrt (x/d);
writeln (f,'x=', x:6,' A[', i,']=', z:6:3); end
else
writeln (f,'x=', x:6,' A[', i,']=net znacheniy');
end;
if (x11<=x15) then begin
if (x-5*x*x*x>0) and (d>0) and (x*x*x-2*d<>0) and (exp (3*ln (x+c))>=0) then begin
z:=a*exp (-4*x)+b*ln (x-5*x*x*x)+c*SQRT (exp (3*ln (x+c)))+ln (d)/(x*x*x-2*d);
writeln (f,'x=', x:6,' A[', i,']=', z:6:3);
end
else
writeln (f,'x=', x:6,' A[', i,']=net znacheniy');
end;
if (x15<=x25) then begin
if (x<>0) and (x-d>0) and (d>=0) then begin
z:=a*exp (3/8*ln (ln (ABS (x))))+b*sin (b*exp (-b/x))+(x-c)+d*sin (x*x*x)*sin (x*x*x)/(cos (x*x*x)*cos (x*x*x)*ln (x-d));
writeln (f,'x=', x:6,' A[', i,']=', z:6:3);
end
else
writeln (f,'x=', x:6,' A[', i,']=net znacheniy');
end;
if x>x25 then begin
z:=0;
writeln (f,'x=', x:6,' A[', i,']=', z:6:3);end;
x:=x+1;
end;
End.
Результаты задачи № 2.
x= -80 A[1]=net znacheniy
x= -79 A[2]=net znacheniy
x= -78 A[3]=net znacheniy
x= -77 A[4]=net znacheniy
x= -76 A[5]=net znacheniy
x= -75 A[6]=net znacheniy
x= -74 A[7]=net znacheniy
x= -73 A[8]=net znacheniy
x= -72 A[9]=net znacheniy
x= -71 A[10]=net znacheniy
x= -70 A[11]=net znacheniy
x= -69 A[12]=net znacheniy
x= -68 A[13]=net znacheniy
x= -67 A[14]=net znacheniy
x= -66 A[15]=net znacheniy
x= -65 A[16]=net znacheniy
x= -64 A[17]=net znacheniy
x= -63 A[18]=net znacheniy
x= -62 A[19]=net znacheniy
x= -61 A[20]=net znacheniy
x= -60 A[21]=net znacheniy
x= -59 A[22]=net znacheniy
x= -58 A[23]=net znacheniy
x= -57 A[24]=net znacheniy
x= -56 A[25]=net znacheniy
x= -55 A[26]=net znacheniy
x= -54 A[27]=net znacheniy
x= -53 A[28]=net znacheniy
x= -52 A[29]=net znacheniy
x= -51 A[30]=net znacheniy
x= -50 A[31]=net znacheniy
x= -49 A[32]=net znacheniy
x= -48 A[33]=net znacheniy
x= -47 A[34]=net znacheniy
x= -46 A[35]=net znacheniy
x= -45 A[36]=net znacheniy
x= -44 A[37]=net znacheniy
x= -43 A[38]=net znacheniy
x= -42 A[39]=net znacheniy
x= -41 A[40]=net znacheniy
x= -40 A[41]=net znacheniy
x= -39 A[42]=net znacheniy
x= -38 A[43]=net znacheniy
x= -37 A[44]=net znacheniy
x= -36 A[45]=net znacheniy
x= -35 A[46]=net znacheniy
x= -34 A[47]=net znacheniy
x= -33 A[48]=net znacheniy
x= -32 A[49]=net znacheniy
x= -31 A[50]=net znacheniy
x= -30 A[51]=net znacheniy
x= -29 A[52]=net znacheniy
x= -28 A[53]=net znacheniy
x= -27 A[54]=net znacheniy
x= -26 A[55]=net znacheniy
x= -25 A[56]=net znacheniy
x= -24 A[57]=-5.836 601 583 851 2507E+0040
x= -23 A[58]=net znacheniy
x= -22 A[59]=net znacheniy
x= -21 A[60]=net znacheniy
x= -20 A[61]=net znacheniy
x= -19 A[62]=net znacheniy
x= -18 A[63]=-1 919 150 107 529 503 410 589 704 126 464.000
x= -17 A[64]=-35 150 460 342 785 760 359 639 678 976.000
x= -16 A[65]=-643 803 138 411 235 366 464 913 408.000
x= -15 A[66]=-11 791 665 798 573 937 538 367 488.000
x= -14 A[67]=-215 971 892 663 317 595 947 008.000
x= -13 A[68]=-3 955 663 196 137 779 625 984.000
x= -12 A[69]=-72 450 498 665 911 328 768.000
x= -11 A[70]=-1 326 977 170 869 205 248.000
x= -10 A[71]=-24 304 434 670 875 824.700
x= -9 A[72]=-445 151 244 453 472.912
x= -8 A[73]=-8 153 225 056 674.438
x= -7 A[74]=-149 327 123 808.531
x= -6 A[75]=-2 730 605 050.098
x= -5 A[76]=-45 581 616.828
x= -4 A[77]=net znacheniy
x= -3 A[78]=net znacheniy
x= -2 A[79]=net znacheniy
x= -1 A[80]=net znacheniy
x= 0 A[81]=net znacheniy
x= 1 A[82]=net znacheniy
x= 2 A[83]=net znacheniy
x= 3 A[84]=net znacheniy
x= 4 A[85]=net znacheniy
x= 5 A[86]=net znacheniy
x= 6 A[87]=net znacheniy
x= 7 A[88]=net znacheniy
x= 8 A[89]=net znacheniy
x= 9 A[90]=net znacheniy
x= 10 A[91]=net znacheniy
x= 11 A[92]=net znacheniy
x= 12 A[93]=net znacheniy
x= 13 A[94]=net znacheniy
x= 14 A[95]=net znacheniy
x= 15 A[96]=net znacheniy
x= 16 A[97]=net znacheniy
x= 17 A[98]=net znacheniy
x= 18 A[99]=net znacheniy
x= 19 A[100]=net znacheniy
x= 20 A[101]=net znacheniy
x= 21 A[102]=net znacheniy
x= 22 A[103]=net znacheniy
x= 23 A[104]=net znacheniy
x= 24 A[105]=net znacheniy
x= 25 A[106]=net znacheniy
x= 26 A[107]=net znacheniy
x= 27 A[108]=net znacheniy
x= 28 A[109]=net znacheniy
x= 29 A[110]=net znacheniy
x= 30 A[111]=net znacheniy
x= 31 A[112]=net znacheniy
x= 32 A[113]=net znacheniy
x= 33 A[114]=net znacheniy
x= 34 A[115]=net znacheniy
x= 35 A[116]=net znacheniy
x= 36 A[117]=net znacheniy
x= 37 A[118]=net znacheniy
x= 38 A[119]=net znacheniy
x= 39 A[120]=net znacheniy
x= 40 A[121]=net znacheniy
x= 41 A[122]=net znacheniy
x= 42 A[123]=net znacheniy
x= 43 A[124]=net znacheniy
x= 44 A[125]=net znacheniy
x= 45 A[126]=net znacheniy
Постановка задачи №3.
Разработать алгоритм и программу для решения нелинейного уравнения с параметрами методом половинного деления. С помощью программы вычислить все корни уравнений в соответствии с указанным вариантом и заданной точностью е=10-4. Параметр, а задать самостоятельно методом перебора. Определить для каких, а уравнение имеет 1,2,3,4,5 действительных корней.
Построить таблицу которая должна иллюстрировать количество корней уравнения для F (x, a)=0 (ограничиться 5-тью корнями при заданном). Построить график F (x, a) от x для параметров a соответствующего наибольшему количеству корней найденных в задании.
Листинг программы № 3.
Program Kursovoj_Braginec_DA;
uses crt;
var
yn, yk, e, y, a, x, h, h1:real;
d:integer;
koren:boolean;
f:text;
function funk (x, a: real):real;
begin
funk:=ln (x*a)+exp (2*ln (cos (a*x)))/sin (a*x)+SQRT ((x+7)/a)+(x+7)+a;
end;
Begin
clrscr;
assign (f,'Otvet.txt');
rewrite (f);
a:=0;h:=0.001;h1:=0.001;
while a<4 do begin
writeln (f,'pri a=', a:8:4);
d:=0;
while x<=10 do begin
if (sin (a*x)<>0) and (x*a>0) and ((x+7)/a>=0) then begin funk (x, a);
if funk (x, a)=0 then begin
d:=d+1;
writeln (f,'x=', x:8:4);
end;
if funk (x, a)* funk (x+h1,a)<0 then
begin d:=d+1;
yn:=x;
yk:=x+h1;
e:=0.0001;
koren:=false;
while (abs (yk-yn)>e) and (not (koren)) do begin
y:=(yk+yn)/2;
if funk (y, a)=0 then koren:=true
else if funk (yn, a)* funk (y, a)<0 then
yk:=y
else yn:=y;
end;
if koren=true then writeln (f,'x=', y:8:4)
else writeln (f,'x=', yn:8:4);
end;
end;
x:=x+h1;
end;
writeln (f,'kopHey ', d);
a:=a+h;
end;
close (f);END.
Результаты счета:
pri a= -1.1000
kopHey 1
x=-9.9990
pri a= -5.0000
kopHey 2
x= -7. 6670
x= -7.0740
pri a= -7.0100
kopHey 3
x= -9.8300
x= -11.6230
x= -18.9510
pri a= -11.2020
kopHey 4
x= -7.0010
x= -9.4230
x= -7.1030
x= -10.4930
pri a= -13.9320
kopHey 5
x= -7.1726
x= -9.2348
x= -9.3293
x= -10.7739
x= -11.3739