USES SPLIN; { Porovnava hodnoty funkce cos x s hodnotou ziskanou pomoci splinu zadavaji se derivace na okraji jako okraj. podm. vysledek se pise do souboru SPLB.DAT nbod = pocet zadanych hodnot, ndel - pocet vypisovanych vysledky splinu} const pi = 3.141592; var X,Y, Y2 : RealArrayNP; xmax,xmin,yp1,ypn,dx,y21,xh,ygs,yfs,dx1: Real; i,nbod,ndel : integer; f1 : text; BEGIN ASSIGN(f1,'splb.dat'); REWRITE(f1); Writeln('ZADEJ xmin,xmax,nbod (pocet bodu v tabulce)'); Readln(xmin,xmax,nbod); dx := (xmax-xmin)/(nbod - 1); FOR i := 1 to nbod DO BEGIN x[i] := xmin + (i-1)*dx; y[i] := cos(x[i]) END; Writeln (' Zadej derivaci y pro xmin; xmax; ndel(pocet vyslednych bodu'); Readln(yp1,ypn,ndel); Spline(X,Y,nbod,yp1,ypn,Y2); dx1 := (xmax-xmin)/(ndel - 1); writeln(' x yteor ysplin x[i] y[i] '); FOR i := 1 to ndel DO BEGIN xh := xmin+(i-1)*dx1; yfs := cos(xh); splint(x,y,y2,nbod,xh,ygs); IF(i <= nbod) THEN BEGIN writeln(xh,yfs,ygs,x[i],y[i]); writeln(f1,xh:10:6,' ',yfs:13:-4,' ',ygs:13:-4,' ', x[i]:13:-4,' ',y[i]:13:-4) END ELSE BEGIN writeln(xh,yfs,ygs); writeln(f1,xh:10:6,' ',yfs:13:-4,' ',ygs:13:-4); END; END; CLOSE(f1) END.