uses graph; const c=100; type mas=array[0..c,0..c+1]of real; var a:mas; x:array[0..c]of real; i,j,n,d,m:integer; h:real; {----------------------------------------} procedure gauss; var s:real; r:real; i,j,k:integer; q,w:boolean; begin for i:=0 to n-1 do if a[i,i]=0 then begin j:=i; repeat inc(j); until (a[j,i]<>0) or (j=n); for k:=0 to n+1 do begin r:=a[j,k]; a[j,k]:=a[i,k]; a[i,k]:=r; end; end; {b:=a;} for i:=0 to n do for k:=0 to n do if i<>k then begin if a[i,i]<>0 then r:=a[k,i]/a[i,i] else r:=0; for j:=0 to n+1 do a[k,j]:=a[k,j]-a[i,j]*r; end; w:=true; for i:=0 to n do if a[i,i]=0 then w:=false; writeln; if w then begin for i:=0 to n do begin x[i]:=a[i,n+1]/a[i,i]; writeln('y(',i/n:0:2,')=',x[i]:0:10); end; { for i:=0 to n do begin s:=0; for j:=0 to n do begin s:=s+b[i,j]*x[j]; write(b[i,j]:0:2,'*',x[j]:0:2); if j<>n then write('+') else write('='); end; write(S:0:2); write(' un bija jabut ',b[i,n+1]:0:2); writeln; end; } end else begin q:=true; for i:=0 to n do if (a[i,i]=0)and(a[i,n+1]<>0) then q:=false; if q then writeln('Bezgaligi daudz atrisinajumu!!!') else writeln('Atrisinajumu NAV!!!'); end; end; {----------------------------------------} begin writeln('Ievadiet punktu skaitu!'); write('? n=');readln(n); n:=n-1; h:=1/n; for i:=0 to n do for j:=0 to n do a[i,j]:=-(i+j)*h/(10+j*h)*h/2; for i:=0 to n do a[i,0]:=a[i,0]/2; for i:=0 to n do a[i,n]:=a[i,n]/2; for i:=0 to n do a[i,i]:=a[i,i]+1; for i:=0 to n do a[i,n+1]:=1+10*i*h; {for i:=0 to n do for j:=0 to n+1 do begin write(a[i,j]:5:6,'|'); if j=n+1 then writeln; end;} gauss; readln; end.