Advertisement
LilAsian

lab8

Dec 8th, 2019
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.60 KB | None | 0 0
  1. program vvod;
  2. {$APPTYPE CONSOLE}
  3. uses
  4. SysUtils;
  5.  
  6. //обязательно для работы с исключениями!
  7. const
  8. nmax=10;
  9. mmax=10;
  10. type matr =array[1..nmax,1..mmax] of integer;
  11. var
  12. a:matr;
  13. n, i, j: byte;
  14. ca,b,u:integer;
  15. dat, res: textFile;
  16. m:real;
  17. procedure kal(const a:matr; const n: integer; out ca,b:integer; var c:textfile);
  18. var i,j:byte;
  19. begin
  20. ca:=0;
  21. b:=0;
  22. for i:=1 to n do
  23. begin
  24. for j:=1 to n do
  25. if (a[i,j]>a[j,j]) then
  26. begin
  27. ca:=ca+a[i,j];
  28. b:=b+1;
  29. end;
  30. end;
  31. end;
  32.  
  33. procedure puk( const a:matr; out u:integer);
  34. var i,j:byte;
  35. begin
  36. begin
  37. u:=0;
  38. for i:=1 to n do
  39. begin
  40. for j:=1 to n do
  41. u:=u+a[j,j];
  42. end;
  43. end;
  44. end;
  45. begin
  46.  
  47. assignFile(dat, paramstr(1)); assignFile(res, paramstr(2));
  48. try // попытаться открыть {1}
  49. reset(dat);
  50. try // не забыть закрыть в любом случае, раз открыли {2}
  51. try // попытаться открыть/создать {3}
  52. rewrite(res);
  53. try // не забыть закрыть в любом случае, раз открыли {4}
  54. try // ошибки при вводе/выводе в файл {5}
  55. writeln(res,' ':20,'Обработка матрицы'); { вывод по обр1}
  56. readln(dat, n); {ввод n, m}
  57. {ввод по строчно элементов матрицы}
  58. for i:=1 to n do
  59. begin
  60. for j:=1 to n do read(dat, a[i,j]); {ввод из одной строки}
  61. readln(dat); {переход на след.строку в файле}
  62. end;
  63. writeln(res,' Исходная матрица из ',n:2,' строк и ',n:2,' столбцов'); {вывод n,m по обр2}
  64. {вывод по строкам элементов матрицы}
  65. for i:=1 to n do
  66. begin
  67. for j:=1 to n do write(res, a[i,j]:5 ,' '); {вывод в одну строку: элемент с указанием
  68. формата и разделитель (пробел)}
  69. writeln(res); {переход на след.строку в файле}
  70.  
  71. kal (a,n,ca,b,dat);
  72. puk(a,u);
  73. m:=ca/b;
  74. writeln (res,'Среднее арифметическое',m:3:2);
  75. writeln(res, 'Сумма ээо-тов главной диагонали',u);
  76. end;
  77. write('Ok. File ',paramstr(2),' is ready.');
  78. Except writeln('Ошибка при считывании или записи в файл') End; {5}
  79. Finally closeFile(res) End; {4}
  80. Except writeln('Ошибка при создании выходного файла ', paramstr(2)) End; {3}
  81. Finally closeFile(dat) End; {2}
  82. Except writeln('Ошибка при открытии файла с исходными данными ', paramstr(1)) End; {1}
  83. write('Press ENTER'); readln;
  84. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement