eigsv1te.pas 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. program eigsv1te;
  2. uses
  3. typ,
  4. iom,
  5. eig;
  6. const
  7. m1 = -2;
  8. m2 = 40;
  9. n1 = -3;
  10. n2 = 30;
  11. l1 = -2;
  12. l2 = 30;
  13. rw = n2 - n1 + 1;
  14. var
  15. ex, nex, k, i, j, m, n, p, term, l: ArbInt;
  16. a: array[m1..m2, n1..n2] of ArbFloat;
  17. q: array[l1..l2] of ArbFloat;
  18. begin
  19. Write(' program results eigsv1te');
  20. case sizeof(ArbFloat) of
  21. 4: writeln('(single)');
  22. 6: writeln('(real)');
  23. 8: writeln('(double)');
  24. end;
  25. Read(nex);
  26. writeln;
  27. writeln('number of examples', nex: 2);
  28. writeln;
  29. for ex := 1 to nex do
  30. begin
  31. writeln;
  32. writeln(' example number :', ex: 2);
  33. Read(k, p, l, m, n);
  34. if ex < nex then
  35. iomrem(input, a[k, p], m, n, rw)
  36. else
  37. for i := 1 to m do
  38. for j := 1 to n do
  39. if i > j then
  40. a[k - 1 + i, p - 1 + j] := 0
  41. else
  42. if i = j then
  43. a[k - 1 + i, p - 1 + j] := 1
  44. else
  45. a[k - 1 + i, p - 1 + j] := -1;
  46. eigsv1(a[k, p], m, n, rw, q[l], term);
  47. writeln;
  48. writeln(' A =');
  49. iomwrm(output, a[k, p], m, n, rw, numdig);
  50. writeln;
  51. writeln('term=', term: 2);
  52. if term = 1 then
  53. begin
  54. writeln;
  55. writeln('q=');
  56. iomwrv(output, q[l], n, numdig);
  57. end;
  58. end;
  59. Close(input);
  60. Close(output);
  61. end.