Текст программы

Текст программы.

APPTYPE CONSOLE F чтобы можно было передавать функции, как параметры N разрешение использования математического сопроцессора для обработки const m 3 a array2 3 of extended 12, 1 b array2 3, 1 2 of extended 12, 0, -1, 2 c array1 3 of extended 16, 23, 16 n 2 p10000 type yType array1 n of extended SolveData array1 n, 0 p of extended Solvedata1 array1 n, 0 p of extended FunctionType functioni byte x extended y yType extended const StartX extended 0 EndX extended 2 function fi byte x extended y yType extended begin case i of 1 f y2 2 f 3y2-8.5y13.4x-1.2 end end procedure SolveTaskKoshiByMethodRungeKuttf FunctionType xs extended ys yType p3integer var Rezult SolveData type kDataType array1 n, 1 m of extended var k kDataType procedure GetKq byte f FunctionType xs extended ys yType h extended var k kDataType var i, j integer begin if q 1 then begin for i 1 to n do for j 1 to q - 1 do ysi ysi bq, jhki, j for i 1 to n do ki, q fi, xsaqh, ys end else for i 1 to n do ki, q fi, xs, ys end var i, j, v integer z, h extended begin hendX-startxp3 for i 1 to n do Rezulti,0 ysi for v 1 to p3 do begin for i 1 to m do GetKi, f, xs, ys, h, k for i 1 to n do begin z 0 for j 1 to m do z z cjki, j ysi ysi hz end for i 1 to n do Rezulti, v ysi xs StartX vh end end function yyx extended extended begin yy 0.4xsin2.5xexp1.5x0.64 end function dyyx extended extended begin dyy 1.6exp1.5xcos2.5x0.96exp1.5xsin2.5x0.4 end const w 8 label now var StartY yType Rezult, Rezult1,rezult2,rezult3 SolveData i, j,p1,p2,t, n1 integer x, h,h1,s, pog extended pograrray1 2,1 10000 of extended const e0.0001 begin pog0 writelndestruction readlnp1 StartY0 StartY2 2 for i1 to n do for j1 to 10000 do pogri, j0 hendx-startxp1 p22p1h1endx-startxp2 tp1 now SolveTaskKoshiByMethodRungeKuttf, StartX, StartY, p1, Rezult for j1 to n do rezult1j,0rezultj,0 rezult11,1rezult11,0hdyy0h rezult12,1rezult12,0h3dyy0-8.5yy0-1.2 rezult11,2rezult11,1h23dyyh-dyy0 rezult12,2rezult12,1h233dyyh-8.5yyh3.4h- 1.2-3dyy0-8.5yy0-1.2 for i 3 to p1 do rezult11,irezult11,i-1h1223dyyi-1h-16dyy i-2h5dyyi-3h for i 3 to p1 do rezult12,irezult12,i-1h12233dyyi-1h-8.5y yi-1h3.4i-1h-1.2-163dyyi-2h-8.5yyi-2h3.4 i-2h-1.253dyyi-3h-8.5yyi-3h3.4i-3h-1.2 SolveTaskKoshiByMethodRungeKuttf, StartX, StartY, p2, Rezult2 for j1 to n do rezult3j,0rezult2j,0 rezult31,1rezult31,0h1dyy0 rezult32,1rezult32,0h13dyy0-8.5yy0-1.2 rezult31,2rezult31,1h123dyyh1-dyy0 rezult32,2rezult32,1h1233dyyh1-8.5yyh13. 4h1-1.2-3dyy0-8.5yy0-1.2 for i 3 to p2 do rezult31,irezult21,i-1h11223dyyi-1h1-16d yyi-2h15dyyi-3h1 for i 3 to p2 do rezult32,irezult22,i-1h112233dyyi-1h1-8. 5yyi-1h13.4i-1h1-1.2-163dyyi-2h1-8.5yyi- 2h13.4i-2h1-1.253dyyi-3h1-8.5yyi-3h13.4i -3h1-1.2 pog0 for i1 to p1 do begin if rezult31,2i-rezult11,i 0 then pogr1,irezult31,2i-rezult11,i else pogr1,i-rezult31,2irezult11,i if rezult32,2i-rezult12,i 0 then pogr2,irezult32,2i-rezult12,i else pogr2,i-rezult32,2irezult12,i if pogr1,i pog then pogpogr1,i if pogr2,i pog then pogpogr2,i end if pog 0.0007 then begin p1p12p2p22h0.5h h10.5h goto nowend n1p1 div t writelnp1 writelnRunge for i 0 to t do begin x StartX ihn1 writelnt, x31 y1t, rezult1,in15w y2t, rezult2,in15w end writelnAdomsa for i 1 to t do begin x StartX ihn1 writelnt, x31 y1t, rezult11,in15w y2t, rezult12,in15w writelnPress Enter readln end.