invgente.pas 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. program invgente;
  2. uses
  3. typ,
  4. iom,
  5. inv;
  6. const
  7. m1 = -10;
  8. m2 = 10;
  9. n1 = -5;
  10. n2 = 10;
  11. var
  12. t, aantal, kk, ii, jj, k, j, n, term: ArbInt;
  13. s: ArbFloat;
  14. u, h, a: array[m1..m2, n1..n2] of ArbFloat;
  15. begin
  16. Write(' program results invgente');
  17. case sizeof(ArbFloat) of
  18. 4: writeln('(single)');
  19. 6: writeln('(real)');
  20. 8: writeln('(double)');
  21. end;
  22. Read(aantal);
  23. writeln;
  24. writeln(' number of examples:', aantal: 3);
  25. for t := 1 to aantal do
  26. begin
  27. writeln;
  28. writeln(' example nr ', t: 3);
  29. Read(k, j, n);
  30. iomrem(input, a[k, j], n, n, n2 - n1 + 1);
  31. writeln;
  32. writeln('a =');
  33. iomwrm(output, a[k, j], n, n, n2 - n1 + 1, numdig);
  34. for ii := 1 to n do
  35. for jj := 1 to n do
  36. h[k - 1 + ii, j - 1 + jj] := a[k - 1 + ii, j - 1 + jj];
  37. invgen(n, n2 - n1 + 1, a[k, j], term);
  38. writeln;
  39. writeln('term=', term: 2);
  40. if term = 1 then
  41. begin
  42. writeln('inv(a)=');
  43. iomwrm(output, a[k, j], n, n, n2 - n1 + 1, numdig);
  44. for ii := 1 to n do
  45. for jj := 1 to n do
  46. begin
  47. s := 0;
  48. for kk := 1 to n do
  49. s := s + h[k - 1 + ii, j - 1 + kk] * a[k - 1 + kk, j - 1 + jj];
  50. u[ii, jj] := s;
  51. end; {ii,jj}
  52. writeln;
  53. writeln('a x inv(a) =');
  54. iomwrm(output, u[1, 1], n, n, n2 - n1 + 1, numdig);
  55. end; {term=1}
  56. end; {t}
  57. Close(input);
  58. Close(output);
  59. end.
  60. program invgente;
  61. uses
  62. typ,
  63. iom,
  64. inv;
  65. const
  66. m1 = -10;
  67. m2 = 10;
  68. n1 = -5;
  69. n2 = 10;
  70. var
  71. t, aantal, kk, ii, jj, k, j, n, term: ArbInt;
  72. s: ArbFloat;
  73. u, h, a: array[m1..m2, n1..n2] of ArbFloat;
  74. begin
  75. Write(' program results invgente');
  76. case sizeof(ArbFloat) of
  77. 4: writeln('(single)');
  78. 6: writeln('(real)');
  79. 8: writeln('(double)');
  80. end;
  81. Read(aantal);
  82. writeln;
  83. writeln(' number of examples:', aantal: 3);
  84. for t := 1 to aantal do
  85. begin
  86. writeln;
  87. writeln(' example nr ', t: 3);
  88. Read(k, j, n);
  89. iomrem(input, a[k, j], n, n, n2 - n1 + 1);
  90. writeln;
  91. writeln('a =');
  92. iomwrm(output, a[k, j], n, n, n2 - n1 + 1, numdig);
  93. for ii := 1 to n do
  94. for jj := 1 to n do
  95. h[k - 1 + ii, j - 1 + jj] := a[k - 1 + ii, j - 1 + jj];
  96. invgen(n, n2 - n1 + 1, a[k, j], term);
  97. writeln;
  98. writeln('term=', term: 2);
  99. if term = 1 then
  100. begin
  101. writeln('inv(a)=');
  102. iomwrm(output, a[k, j], n, n, n2 - n1 + 1, numdig);
  103. for ii := 1 to n do
  104. for jj := 1 to n do
  105. begin
  106. s := 0;
  107. for kk := 1 to n do
  108. s := s + h[k - 1 + ii, j - 1 + kk] * a[k - 1 + kk, j - 1 + jj];
  109. u[ii, jj] := s;
  110. end; {ii,jj}
  111. writeln;
  112. writeln('a x inv(a) =');
  113. iomwrm(output, u[1, 1], n, n, n2 - n1 + 1, numdig);
  114. end; {term=1}
  115. end; {t}
  116. Close(input);
  117. Close(output);
  118. end.