slegpdlt.pas 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. program slegpdlt;
  2. uses
  3. typ,
  4. iom,
  5. sle;
  6. const
  7. m1 = -8;
  8. m2 = 12;
  9. nmax = 10;
  10. type
  11. row = array[1..nmax] of ArbFloat;
  12. var
  13. i, j, n, k, l, v, nv, term: ArbInt;
  14. ca: ArbFloat;
  15. b, x: array[m1..m2] of ArbFloat;
  16. a: array[m1..m2] of ^row;
  17. begin
  18. Assign(input, ParamStr(1));
  19. Reset(input);
  20. Assign(output, ParamStr(2));
  21. Rewrite(output);
  22. Write('program results slegpdlt ');
  23. case SizeOf(ArbFloat) of
  24. 4: writeln('(single)');
  25. 8: writeln('(double)');
  26. 6: writeln('(real)');
  27. end;
  28. writeln;
  29. Read(randseed);
  30. writeln(' randseed = ', randseed: 15);
  31. Read(nv);
  32. writeln;
  33. writeln(' number of examples: ', nv: 2);
  34. for v := 1 to nv do
  35. begin
  36. writeln;
  37. writeln(' example number :', v: 2);
  38. Read(k, l, n);
  39. for i := 1 to n do
  40. begin
  41. Getmem(a[i + k - 1], n * sizeOf(ArbFloat));
  42. iomrev(input, a[i + k - 1]^[1], i);
  43. end;
  44. iomrev(input, b[l], n);
  45. slegpdl(n, a[k], b[l], x[l], ca, term);
  46. writeln;
  47. writeln(' A =');
  48. for i := 1 to n do
  49. for j := i + 1 to n do
  50. a[i + k - 1]^[j] := a[j + k - 1]^[i];
  51. for i := 1 to n do
  52. iomwrv(output, a[i + k - 1]^[1], n, numdig);
  53. for i := n downto 1 do
  54. Freemem(a[i + k - 1], n * sizeOf(ArbFloat));
  55. writeln;
  56. writeln('b=');
  57. iomwrv(output, b[l], n, numdig);
  58. writeln;
  59. writeln('term=', term: 2);
  60. writeln;
  61. case term of
  62. 1:
  63. begin
  64. writeln('x=');
  65. iomwrv(output, x[l], n, numdig);
  66. writeln;
  67. writeln(' ca = ', ca: 12);
  68. end;
  69. 2: writeln('solution not possible');
  70. 3: writeln(' wrong value of n');
  71. end;
  72. writeln('-----------------------------------------------');
  73. end; {example}
  74. end.