slegtrte.pas 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. program slegtrte;
  2. uses
  3. typ,
  4. iom,
  5. sle;
  6. const
  7. m1 = -10;
  8. m2 = 10;
  9. type
  10. array1dr = array[m1..m2] of ArbFloat;
  11. var
  12. k, nex, ex, i, n, term: ArbInt;
  13. ca: ArbFloat;
  14. l, d, u, b, x: array1dr;
  15. begin
  16. Write('program results slegtrte ');
  17. case SizeOf(ArbFloat) of
  18. 4: writeln('(single)');
  19. 8: writeln('(double)');
  20. 6: writeln('(real)');
  21. end;
  22. Read(nex);
  23. writeln;
  24. writeln(' number of examples : ', nex: 2);
  25. for ex := 1 to nex do
  26. begin
  27. writeln;
  28. writeln(' example number :', ex: 2);
  29. writeln;
  30. Read(n, k);
  31. iomrev(input, l[k + 1], n - 1);
  32. iomrev(input, d[k], n);
  33. iomrev(input, u[k], n - 1);
  34. iomrev(input, b[k], n);
  35. slegtr(n, l[k + 1], d[k], u[k], b[k], x[k], ca, term);
  36. writeln;
  37. writeln(' l (lower diagonal of A) = ');
  38. iomwrv(output, l[k + 1], n - 1, numdig);
  39. writeln;
  40. writeln(' d (main diagonal of A) =');
  41. iomwrv(output, d[k], n, numdig);
  42. writeln;
  43. writeln(' u (upper diagonal of A) =');
  44. iomwrv(output, u[k], n - 1, numdig);
  45. writeln;
  46. writeln(' A =');
  47. for i := 1 to n do
  48. begin
  49. if i > 1 then
  50. Write('': (i - 2) * (numdig + 2), l[k + i - 1]: numdig, '': 2);
  51. Write(d[k + i - 1]: numdig, '': 2);
  52. if i < n then
  53. Write(u[k + i - 1]: numdig);
  54. writeln;
  55. end;
  56. writeln;
  57. writeln(' b =');
  58. iomwrv(output, b[k], n, numdig);
  59. writeln;
  60. writeln('term=', term: 2);
  61. case term of
  62. 1:
  63. begin
  64. writeln('x=');
  65. iomwrv(output, x[k], 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. Close(input);
  75. Close(output);
  76. end.