Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program variant22;
- {$APPTYPE CONSOLE}
- {$R *.res}
- uses
- System.SysUtils;
- const
- MinInt = -2147483648;
- MaxInt = 2147483648;
- type
- TMatrix = array[1..10,1..10] of Integer;
- procedure FindingTheSumOfRowElements(ArrayA: TMatrix; ArraySize: Integer);
- var
- SumOfRowElements, i, j: Integer;
- ArrayB: array [1..10] of Integer;
- begin
- SumOfRowElements := 0;
- for i := 1 to ArraySize do
- begin
- SumOfRowElements:= 0;
- for j:=1 to ArraySize do
- SumOfRowElements := SumOfRowElements + ArrayA[i,j];
- ArrayB[i]:= SumOfRowElements;
- end;
- Writeln('Массив сумм по строкам: ');
- for i := 1 to ArraySize do
- Write(ArrayB[i],' ');
- end;
- procedure InputFromFile(FileName: String);
- var
- Input: TextFile;
- ArraySize, i, j: Integer;
- ArrayA: TMatrix;
- IsCorrect: Boolean;
- begin
- AssignFile(Input, FileName);
- Reset(Input);
- while not Eof(Input) do
- begin
- Read(Input, ArraySize);
- Writeln('Исходная матрица:');
- for i:=1 to ArraySize do
- begin
- for j:=1 to ArraySize do
- begin
- IsCorrect:= False;
- repeat
- Read(Input, ArrayA[i,j]);
- if (ArrayA[i,j]< MinInt)or(ArrayA[i,j]> MaxInt) then
- begin
- Writeln('В вашем массиве обнаружен недопустимый элемент!');
- IsCorrect:= False;
- end
- else
- begin
- Write(ArrayA[i,j],' ');
- IsCorrect:= True;
- end;
- until IsCorrect;
- end;
- Writeln;
- end;
- end;
- CloseFile(Input);
- FindingTheSumOfRowElements(ArrayA, ArraySize);
- end;
- procedure CheckInputFromFile();
- var
- FileName: String;
- Input: TextFile;
- IsCorrect: boolean;
- begin
- repeat
- Write('Введите имя вашего файла, с которого вы хотите ввести число: ');
- Readln(FileName);
- if FileExists(FileName) then
- IsCorrect:= True
- else
- begin
- IsCorrect:= False;
- Writeln('Вы ввели неверное имя. Пожалуйста, попробуйте ещё раз!');
- end;
- until IsCorrect;
- InputFromFile(FileName);
- end;
- procedure InputFromConsole();
- var
- ArraySize, i, j, Number: Integer;
- IsCorrect: Boolean;
- ArrayA: TMatrix;
- begin
- IsCorrect:= False;
- repeat
- Write('Введите размер вашего массива: ');
- try
- Readln(ArraySize);
- if (ArraySize < 2)or(ArraySize > 10) then
- begin
- Writeln('Вы ввели неверное значение! Пожалуйста, попробуйте ещё раз!');
- IsCorrect:= False
- end
- else
- IsCorrect:= True;
- except
- Writeln('Вы ввели неверное значение! Пожалуйста, попробуйте ещё раз!');
- end;
- until IsCorrect;
- for i := 1 to ArraySize do
- for j := 1 to ArraySize do
- begin
- IsCorrect:= False;
- repeat
- Write('Введите [',i,'][' ,j, '] элемент вашего массива: ');
- try
- Readln(Number);
- if (Number < MinInt)or(Number > MaxInt) then
- begin
- Writeln('Вы ввели недопустимый элемент массива! Пожалуйста, попробуйте ещё раз!');
- IsCorrect:= False;
- end
- else
- IsCorrect:= True;
- except
- Writeln('Вы ввели недопустимый элемент массива! Пожалуйста, попробуйте ещё раз!');
- end;
- until IsCorrect;
- ArrayA[i, j]:= Number;
- end;
- Writeln('Ваша матрица: ');
- for i := 1 to ArraySize do
- begin
- for j := 1 to ArraySize do
- Write(ArrayA[i][j],' ');
- Writeln(' ');
- end;
- FindingTheSumOfRowElements(ArrayA, ArraySize);
- end;
- procedure ChooseConsoleOrFile;
- var
- Letter: String;
- IsCorrect: boolean;
- begin
- repeat
- Write('Пожалуйста, введите "Ф" , если хотите ввести число из файла, или введите "К", если хотите ввести из консоли: ');
- begin
- Readln(Letter);
- IsCorrect:= True;
- if Letter = 'Ф' then
- CheckInputFromFile
- else
- if Letter = 'К' then
- InputFromConsole
- else
- begin
- IsCorrect:= False;
- Writeln('Извините, вы можете ввести только Ф или К. Пожалуйста, попробуйте еще раз!');
- end;
- end;
- until IsCorrect;
- end;
- procedure Main;
- begin
- Writeln('Эта программа находит сумму элементов строк вашего массива!!!');
- ChooseConsoleOrFile();
- end;
- begin
- Main;
- Readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement