Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.60 KB | None | 0 0
  1. program variant22;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6. uses
  7. System.SysUtils;
  8. const
  9. MinInt = -2147483648;
  10. MaxInt = 2147483648;
  11. type
  12. TMatrix = array[1..10,1..10] of Integer;
  13.  
  14. procedure FindingTheSumOfRowElements(ArrayA: TMatrix; ArraySize: Integer);
  15. var
  16. SumOfRowElements, i, j: Integer;
  17. ArrayB: array [1..10] of Integer;
  18. begin
  19. SumOfRowElements := 0;
  20. for i := 1 to ArraySize do
  21. begin
  22. SumOfRowElements:= 0;
  23. for j:=1 to ArraySize do
  24. SumOfRowElements := SumOfRowElements + ArrayA[i,j];
  25. ArrayB[i]:= SumOfRowElements;
  26. end;
  27. Writeln('Массив сумм по строкам: ');
  28. for i := 1 to ArraySize do
  29. Write(ArrayB[i],' ');
  30. end;
  31. procedure InputFromFile(FileName: String);
  32.  
  33. var
  34. Input: TextFile;
  35. ArraySize, i, j: Integer;
  36. ArrayA: TMatrix;
  37. IsCorrect: Boolean;
  38. begin
  39. AssignFile(Input, FileName);
  40. Reset(Input);
  41. while not Eof(Input) do
  42. begin
  43. Read(Input, ArraySize);
  44. Writeln('Исходная матрица:');
  45. for i:=1 to ArraySize do
  46. begin
  47. for j:=1 to ArraySize do
  48. begin
  49. IsCorrect:= False;
  50. repeat
  51. Read(Input, ArrayA[i,j]);
  52. if (ArrayA[i,j]< MinInt)or(ArrayA[i,j]> MaxInt) then
  53. begin
  54. Writeln('В вашем массиве обнаружен недопустимый элемент!');
  55. IsCorrect:= False;
  56. end
  57. else
  58. begin
  59. Write(ArrayA[i,j],' ');
  60. IsCorrect:= True;
  61. end;
  62.  
  63. until IsCorrect;
  64. end;
  65. Writeln;
  66. end;
  67. end;
  68. CloseFile(Input);
  69. FindingTheSumOfRowElements(ArrayA, ArraySize);
  70. end;
  71.  
  72. procedure CheckInputFromFile();
  73. var
  74. FileName: String;
  75. Input: TextFile;
  76. IsCorrect: boolean;
  77. begin
  78. repeat
  79. Write('Введите имя вашего файла, с которого вы хотите ввести число: ');
  80. Readln(FileName);
  81. if FileExists(FileName) then
  82. IsCorrect:= True
  83. else
  84. begin
  85. IsCorrect:= False;
  86. Writeln('Вы ввели неверное имя. Пожалуйста, попробуйте ещё раз!');
  87. end;
  88. until IsCorrect;
  89. InputFromFile(FileName);
  90. end;
  91.  
  92. procedure InputFromConsole();
  93.  
  94. var
  95. ArraySize, i, j, Number: Integer;
  96. IsCorrect: Boolean;
  97. ArrayA: TMatrix;
  98. begin
  99. IsCorrect:= False;
  100. repeat
  101. Write('Введите размер вашего массива: ');
  102. try
  103. Readln(ArraySize);
  104. if (ArraySize < 2)or(ArraySize > 10) then
  105. begin
  106. Writeln('Вы ввели неверное значение! Пожалуйста, попробуйте ещё раз!');
  107. IsCorrect:= False
  108. end
  109. else
  110. IsCorrect:= True;
  111. except
  112. Writeln('Вы ввели неверное значение! Пожалуйста, попробуйте ещё раз!');
  113. end;
  114. until IsCorrect;
  115.  
  116. for i := 1 to ArraySize do
  117. for j := 1 to ArraySize do
  118. begin
  119. IsCorrect:= False;
  120. repeat
  121. Write('Введите [',i,'][' ,j, '] элемент вашего массива: ');
  122. try
  123. Readln(Number);
  124. if (Number < MinInt)or(Number > MaxInt) then
  125. begin
  126. Writeln('Вы ввели недопустимый элемент массива! Пожалуйста, попробуйте ещё раз!');
  127. IsCorrect:= False;
  128. end
  129. else
  130. IsCorrect:= True;
  131. except
  132. Writeln('Вы ввели недопустимый элемент массива! Пожалуйста, попробуйте ещё раз!');
  133. end;
  134.  
  135. until IsCorrect;
  136.  
  137. ArrayA[i, j]:= Number;
  138. end;
  139. Writeln('Ваша матрица: ');
  140. for i := 1 to ArraySize do
  141. begin
  142. for j := 1 to ArraySize do
  143. Write(ArrayA[i][j],' ');
  144. Writeln(' ');
  145. end;
  146. FindingTheSumOfRowElements(ArrayA, ArraySize);
  147. end;
  148. procedure ChooseConsoleOrFile;
  149. var
  150. Letter: String;
  151. IsCorrect: boolean;
  152. begin
  153. repeat
  154. Write('Пожалуйста, введите "Ф" , если хотите ввести число из файла, или введите "К", если хотите ввести из консоли: ');
  155. begin
  156. Readln(Letter);
  157. IsCorrect:= True;
  158. if Letter = 'Ф' then
  159. CheckInputFromFile
  160. else
  161. if Letter = 'К' then
  162. InputFromConsole
  163. else
  164. begin
  165. IsCorrect:= False;
  166. Writeln('Извините, вы можете ввести только Ф или К. Пожалуйста, попробуйте еще раз!');
  167. end;
  168. end;
  169. until IsCorrect;
  170. end;
  171.  
  172. procedure Main;
  173. begin
  174. Writeln('Эта программа находит сумму элементов строк вашего массива!!!');
  175. ChooseConsoleOrFile();
  176. end;
  177. begin
  178. Main;
  179. Readln;
  180. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement