slegenlt.pas 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. program slegenlt;
  2. uses
  3. typ,
  4. iom,
  5. sle;
  6. const
  7. n1 = -10;
  8. n2 = 10;
  9. var
  10. i, n, k, v, nv, term: ArbInt;
  11. ca: ArbFloat;
  12. b, x: array[n1..n2] of ArbFloat;
  13. p: array[n1..n2] of ^ArbFloat;
  14. begin
  15. Write('program results slegenlt ');
  16. case SizeOf(ArbFloat) of
  17. 4: writeln('(single)');
  18. 8: writeln('(double)');
  19. 6: writeln('(real)');
  20. end;
  21. Read(nv);
  22. writeln;
  23. writeln(' number of examples: ', nv: 2);
  24. for v := 1 to nv do
  25. begin
  26. writeln;
  27. writeln(' example number :', v: 2);
  28. Read(k, n);
  29. for i := k to n + k - 1 do
  30. begin
  31. Getmem(p[i], n * sizeOf(ArbFloat));
  32. iomrev(input, p[i]^, n);
  33. end;
  34. iomrev(input, b[k], n);
  35. slegenl(n, p[k], b[k], x[k], ca, term);
  36. writeln;
  37. writeln(' A =');
  38. for i := k to n + k - 1 do
  39. iomwrv(output, p[i]^, n, numdig);
  40. for i := n + k - 1 downto k do
  41. Freemem(p[i], n * sizeOf(ArbFloat));
  42. writeln;
  43. writeln('b=');
  44. iomwrv(output, b[k], n, numdig);
  45. writeln;
  46. writeln('term=', term: 2);
  47. writeln;
  48. case term of
  49. 1:
  50. begin
  51. writeln('x=');
  52. iomwrv(output, x[k], n, numdig);
  53. writeln;
  54. writeln(' ca = ', ca: 12);
  55. end;
  56. 2: writeln('solution not possible');
  57. 3: writeln(' wrong value of n');
  58. end;
  59. writeln('-----------------------------------------------');
  60. end; {example}
  61. end.