Advertisement
LilAsian

lab9var 11

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