SHARE
TWEET

Untitled

a guest Dec 11th, 2019 80 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top