Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project1;
- {$APPTYPE CONSOLE}
- {$R *.res}
- uses
- System.SysUtils;
- type
- TIntMatrix = array of array of Integer;
- const
- MIN = - 51;
- MAX = 51;
- function GetNumber(Text: String): Integer;
- const
- MINSIZE = 2;
- MAXSIZE = 6;
- var
- IsCorrect: Boolean;
- Number: Integer;
- begin
- IsCorrect:= False;
- Writeln(Text);
- Writeln('Число должно быть больше либо равно ', MINSIZE,', но меньше либо равно ', MAXSIZE);
- repeat
- try
- Readln(Number);
- IsCorrect:= True;
- except
- Writeln('Число должно быть целым!');
- end;
- if (Number < 2) or (Number > 5) then
- begin
- Writeln('Проверьте границы допустимых значений');
- IsCorrect:= False;
- end;
- until IsCorrect;
- GetNumber:= Number;
- end;
- function GetMatrix(m, n: Integer; WhatMatrix, Output: String): TIntMatrix;
- var
- i, j: Integer;
- Matrix: TIntMatrix;
- IsCorrect: Boolean;
- begin
- Writeln('Вводим ', WhatMatrix,' матрицу');
- SetLength(Matrix, m, n);
- IsCorrect:= False;
- Dec(m);
- Dec(n);
- for i:= 0 to m do
- for j:= 0 to n do
- begin
- repeat
- try
- Writeln('Введите [', i + 1,', ', j + 1, '] элемент матрицы');
- Readln(Matrix[i, j]);
- IsCorrect:= True;
- except
- Writeln('Число должно быть целым!');
- end;
- if (Matrix[i, j] < MIN) or (Matrix[i, j] > MAX) then
- begin
- IsCorrect:= False;
- Writeln('Проверьте границы допустимых значений!');
- end;
- until IsCorrect;
- end;
- Writeln(Output);
- for i:= 0 to n do
- begin
- Writeln;
- for j:= 0 to n do
- Write(Matrix[i, j]: 4);
- end;
- Writeln;
- end;
- procedure CountingNegativeNumbers(FirstMatrix, SecondMatrix: TIntMatrix; m, n: Integer);
- var
- i, j, Number: Integer;
- begin
- Dec(m);
- Dec(n);
- Number:= 0;
- for i:= 0 to m do
- for j:= 0 to n do
- if (FirstMatrix[i, j] < 0) then
- Number:= Number + 1;
- for i:= 0 to n do
- for j:= 0 to n do
- if (SecondMatrix[i, j] < 0) then
- Number:= Number + 1;
- Writeln('Суммарное количество отрицательных элементов в двух матрицах равно ', Number);
- end;
- var
- FirstMatrix, SecondMatrix: TIntMatrix;
- m, n: Integer;
- begin
- Writeln('Эта программа находит суммарное количество отрицательных элементов в двух матрицах и');
- Writeln('определяет, в какой из матриц среднее арифметическое неотрицательных элементов больше');
- m:= GetNumber('Пожалуйста, введите число строк первой матрицы');
- n:= GetNumber('Пожалуйста, введите число строк и столбцов второй матрицы');
- SetLength(FirstMatrix, m, n);
- SetLength(SecondMatrix, n ,n);
- Writeln('Размер элемента матрицы не должен быть меньше ', MIN,' или больше ', MAX);
- FirstMatrix:= GetMatrix(m, n, 'первую','Первая матрица: ');
- SecondMatrix:= GetMatrix(n, n, 'вторую', 'Вторая матрица: ');
- CountingNegativeNumbers(FirstMatrix, SecondMatrix, m, n);
- Readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement