slegbate.pas 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. program slegbate;
  2. uses
  3. iom,
  4. sle,
  5. typ;
  6. const
  7. c = 0;
  8. d = 100;
  9. e = 0;
  10. f = 10;
  11. var
  12. l, r, i, p, q, n, term, ind, rw, vb, nvb: ArbInt;
  13. ca: ArbFloat;
  14. a: array[c..d] of ArbFloat;
  15. b, x: array[e..f] of ArbFloat;
  16. begin
  17. Write(' program results slegbate');
  18. case sizeof(ArbFloat) of
  19. 4: writeln('(single)');
  20. 6: writeln('(real)');
  21. 8: writeln('(double)');
  22. end;
  23. Read(randseed);
  24. writeln;
  25. writeln(' randseed =', randseed: 6);
  26. writeln;
  27. Read(nvb);
  28. writeln(' number of examples:', nvb: 3);
  29. writeln;
  30. for vb := 1 to nvb do
  31. begin
  32. writeln('example', vb: 2);
  33. Read(p, q, n, l, r);
  34. ind := p;
  35. writeln;
  36. writeln(' n=', n: 1, ' l=', l: 1, ' r=', r: 1);
  37. for i := 1 to n do
  38. begin
  39. if i <= l + 1 then
  40. begin
  41. if i <= n - r then
  42. rw := r + i
  43. else
  44. rw := n;
  45. end
  46. else
  47. if i <= n - r then
  48. rw := r + l + 1
  49. else
  50. rw := n - i + l + 1;
  51. iomrev(input, a[ind], rw);
  52. ind := ind + rw;
  53. end;
  54. iomrev(input, b[q], n);
  55. slegba(n, l, r, a[p], b[q], x[q], ca, term);
  56. ind := p;
  57. writeln;
  58. writeln(' A = ');
  59. for i := 1 to n do
  60. begin
  61. if i <= l + 1 then
  62. begin
  63. if i <= n - r then
  64. rw := r + i
  65. else
  66. rw := n;
  67. end
  68. else
  69. begin
  70. if i <= n - r then
  71. rw := r + l + 1
  72. else
  73. rw := n - i + l + 1;
  74. Write('': (i - l - 1) * (numdig + 2));
  75. end;
  76. iomwrv(output, a[ind], rw, numdig);
  77. ind := ind + rw;
  78. end;
  79. writeln;
  80. writeln('b=');
  81. iomwrv(output, b[q], n, numdig);
  82. writeln;
  83. writeln('term=', term: 2);
  84. case term of
  85. 1:
  86. begin
  87. writeln;
  88. writeln('x=');
  89. iomwrv(output, x[q], n, numdig);
  90. writeln;
  91. writeln(' ca=', ca: 12);
  92. end;
  93. 2: writeln('solution not possible');
  94. 3: writeln(' wrong input (l<0, r<0, l>n-1 or r>n-1)')
  95. end;
  96. writeln('---------------------------------------------');
  97. end; {vb}
  98. end.