Advertisement
dxvmxnd

Untitled

Oct 23rd, 2023
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.32 KB | None | 0 0
  1. Program L2_3_D;
  2.  
  3. uses
  4. System.SysUtils, System.StrUtils;
  5.  
  6. Var
  7. LengthI, LengthJ, JSize, ISize, I, J, MaxR, Res : Integer;
  8. Matrix : Array of Array of Integer;
  9. IsCorrect : Boolean;
  10. Choise : String;
  11.  
  12.  
  13. Function name(Arr : Array of Array of Integer) : Integer;
  14.  
  15. Begin
  16.  
  17. End;
  18.  
  19. Procedure FromConsole;
  20.  
  21. Begin
  22.  
  23. Repeat
  24. IsCorrect := True;
  25. Write('Введите колличество элементов массива: ');
  26. Try
  27. Readln(Size);
  28. Except
  29. IsCorrect := False;
  30. Writeln('Неверный тип данных!');
  31. End;
  32. Until IsCorrect;
  33.  
  34. Length := Size - 1;
  35. SetLength(A, Size);
  36.  
  37. For I := 0 To Length Do
  38. Begin
  39. Repeat
  40. IsCorrect := True;
  41. Write('Введите ', I+1, ' элемент массива: ');
  42. Try
  43. Readln(A[I]);
  44. Except
  45. IsCorrect := False;
  46. Writeln('Неверный тип данных!');
  47. End;
  48. Until IsCorrect;
  49. End;
  50.  
  51. MaxR := name(Matrix);
  52. Writeln('Максимальное количество единиц, идущих подряд: ', MaxR);
  53. End;
  54.  
  55. Procedure FromFile;
  56.  
  57. Begin
  58.  
  59. Var
  60. TextFile : TextFile;
  61. line: TStringDynArray;
  62.  
  63. Begin
  64. Writeln('При записи данных из файла, учтите, что на первой строке написано количество строк матрицы, на второй - количество столбцов, а далее с новой строки прописывается сама матрица.');
  65.  
  66. AssignFile(TextFile, 'C:\Users\Рустамчик\Desktop\ЛАБА 2\Дельфи\4\input.txt');
  67. Reset(TextFile);
  68. IsCorrect := True;
  69. Writeln('Запись размера матрицы...');
  70. Try
  71. Readln(TextFile, ISize);
  72. Except
  73. IsCorrect := False;
  74. End;
  75. If (ISize < 1) Then
  76. Begin
  77. IsCorrect := False;
  78. Writeln('Ошибка! Неверный ввод размера! Измените входные данные в input.txt, затем перезапустите программу.');
  79. End;
  80. Writeln('Количество строк: ', ISize);
  81.  
  82. IsCorrect := True;
  83. Try
  84. Readln(TextFile, JSize);
  85. Except
  86. IsCorrect := False;
  87. End;
  88. If (JSize < 1) Then
  89. Begin
  90. IsCorrect := False;
  91. Writeln('Ошибка! Неверный ввод размера! Измените входные данные в input.txt, затем перезапустите программу.');
  92. End;
  93. Writeln('Количество столбцов: ', JSize);
  94.  
  95. LengthI := Isize - 1;
  96. LengthJ := Jsize - 1;
  97. SetLength(Matrix, ISize, JSize);
  98.  
  99. For I := 0 To LengthI Do
  100. Begin
  101. Readln(TextFile, line);
  102. line := SplitString(line, ' ');
  103. For J := 0 To LengthJ Do
  104. Try
  105. Readln(TextFile, line);
  106. Except
  107. IsCorrect := False;
  108. Writeln(' Неверный ввод данных! Исправьте пункт ', I+1, ' ', J+1, ' пункт!');
  109. End;
  110. End;
  111.  
  112. MaxR := CoutNumber(A);
  113.  
  114. Rewrite(TextFile);
  115. Writeln(TextFile, MaxR);
  116.  
  117. Writeln('Данные записаны в файл.');
  118.  
  119. CloseFile(TextFile);
  120.  
  121. End;
  122. End;
  123.  
  124.  
  125. Begin
  126. Writeln('Данная программа находит наибольшую сумму элементов строк матрицы.');
  127. Writeln('Выберите, откуда будут вводиться данные:');
  128.  
  129. Repeat
  130. IsCorrect := True;
  131. Writeln('Напишите ONE, если с консоли. Напишите TWO, если с файла.');
  132. Try
  133. Readln(Choise);
  134. Except
  135. IsCorrect := False;
  136. Writeln('Неверный тип данных!');
  137. End;
  138. If ((Choise <> 'ONE') And (Choise <> 'TWO')) Then
  139. Begin
  140. IsCorrect := False;
  141. Writeln('Неверный тип данных!');
  142. End;
  143. Until IsCorrect;
  144.  
  145. If Choise = 'ONE' Then
  146. FromConsole
  147. Else
  148. FromFile;
  149.  
  150. Readln;
  151. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement