slegpbte.pas 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. program slegpbte;
  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, 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 slegpbte');
  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);
  34. ind := p;
  35. writeln;
  36. writeln(' n=', n: 1, ' l=', l: 1);
  37. for i := 1 to n do
  38. begin
  39. if i <= l + 1 then
  40. rw := i
  41. else
  42. rw := l + 1;
  43. iomrev(input, a[ind], rw);
  44. ind := ind + rw;
  45. end;
  46. iomrev(input, b[q], n);
  47. slegpb(n, l, a[p], b[q], x[q], ca, term);
  48. ind := p;
  49. writeln;
  50. writeln(' left-under part of A = ');
  51. writeln;
  52. for i := 1 to n do
  53. begin
  54. if i <= l + 1 then
  55. rw := i
  56. else
  57. begin
  58. rw := l + 1;
  59. Write('': (i - l - 1) * (numdig + 2));
  60. end;
  61. iomwrv(output, a[ind], rw, numdig);
  62. ind := ind + rw;
  63. end;
  64. writeln;
  65. writeln('b=');
  66. iomwrv(output, b[q], n, numdig);
  67. writeln;
  68. writeln('term=', term: 2);
  69. case term of
  70. 1:
  71. begin
  72. writeln;
  73. writeln('x=');
  74. iomwrv(output, x[q], n, numdig);
  75. writeln;
  76. writeln(' ca=', ca: 12);
  77. end;
  78. 2: writeln('solution not possible');
  79. 3: writeln(' wrong input (l<0 or l>n-1)')
  80. end;
  81. writeln('---------------------------------------------');
  82. end; {vb}
  83. end.
  84. program slegpbte;
  85. uses
  86. iom,
  87. sle,
  88. typ;
  89. const
  90. c = 0;
  91. d = 100;
  92. e = 0;
  93. f = 10;
  94. var
  95. l, i, p, q, n, term, ind, rw, vb, nvb: ArbInt;
  96. ca: ArbFloat;
  97. a: array[c..d] of ArbFloat;
  98. b, x: array[e..f] of ArbFloat;
  99. begin
  100. Write(' program results slegpbte');
  101. case sizeof(ArbFloat) of
  102. 4: writeln('(single)');
  103. 6: writeln('(real)');
  104. 8: writeln('(double)');
  105. end;
  106. Read(randseed);
  107. writeln;
  108. writeln(' randseed =', randseed: 6);
  109. writeln;
  110. Read(nvb);
  111. writeln(' number of examples:', nvb: 3);
  112. writeln;
  113. for vb := 1 to nvb do
  114. begin
  115. writeln('example', vb: 2);
  116. Read(p, q, n, l);
  117. ind := p;
  118. writeln;
  119. writeln(' n=', n: 1, ' l=', l: 1);
  120. for i := 1 to n do
  121. begin
  122. if i <= l + 1 then
  123. rw := i
  124. else
  125. rw := l + 1;
  126. iomrev(input, a[ind], rw);
  127. ind := ind + rw;
  128. end;
  129. iomrev(input, b[q], n);
  130. slegpb(n, l, a[p], b[q], x[q], ca, term);
  131. ind := p;
  132. writeln;
  133. writeln(' left-under part of A = ');
  134. writeln;
  135. for i := 1 to n do
  136. begin
  137. if i <= l + 1 then
  138. rw := i
  139. else
  140. begin
  141. rw := l + 1;
  142. Write('': (i - l - 1) * (numdig + 2));
  143. end;
  144. iomwrv(output, a[ind], rw, numdig);
  145. ind := ind + rw;
  146. end;
  147. writeln;
  148. writeln('b=');
  149. iomwrv(output, b[q], n, numdig);
  150. writeln;
  151. writeln('term=', term: 2);
  152. case term of
  153. 1:
  154. begin
  155. writeln;
  156. writeln('x=');
  157. iomwrv(output, x[q], n, numdig);
  158. writeln;
  159. writeln(' ca=', ca: 12);
  160. end;
  161. 2: writeln('solution not possible');
  162. 3: writeln(' wrong input (l<0 or l>n-1)')
  163. end;
  164. writeln('---------------------------------------------');
  165. end; {vb}
  166. end.