Advertisement
VadimThink

Untitled

Dec 10th, 2019
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.45 KB | None | 0 0
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6.  
  7. uses
  8.   System.SysUtils;
  9.  
  10. type
  11.     TIntMatrix = array of array of Integer;
  12.  
  13. const
  14.     MIN = - 51;
  15.    MAX = 51;
  16.  
  17. function GetNumber(Text: String): Integer;
  18.  
  19. const
  20.     MINSIZE = 2;
  21.    MAXSIZE = 6;
  22. var
  23.     IsCorrect: Boolean;
  24.    Number: Integer;
  25. begin
  26.     IsCorrect:= False;
  27.    Writeln(Text);
  28.    Writeln('Число должно быть больше либо равно ', MINSIZE,', но меньше либо равно ', MAXSIZE);
  29.     repeat
  30.     try
  31.         Readln(Number);
  32.          IsCorrect:= True;
  33.       except
  34.         Writeln('Число должно быть целым!');
  35.       end;
  36.       if (Number < 2) or (Number > 5) then
  37.       begin
  38.         Writeln('Проверьте границы допустимых значений');
  39.          IsCorrect:= False;
  40.       end;
  41.    until IsCorrect;
  42.    GetNumber:= Number;
  43. end;
  44. function GetMatrix(m, n: Integer; WhatMatrix, Output: String): TIntMatrix;
  45.  
  46. var
  47.    i, j: Integer;
  48.    Matrix: TIntMatrix;
  49.    IsCorrect: Boolean;
  50.  
  51. begin
  52.    Writeln('Вводим ', WhatMatrix,' матрицу');
  53.     SetLength(Matrix, m, n);
  54.    IsCorrect:= False;
  55.    Dec(m);
  56.    Dec(n);
  57.     for i:= 0 to m do
  58.     for j:= 0 to n do
  59.       begin
  60.         repeat
  61.             try
  62.                 Writeln('Введите [', i + 1,', ', j + 1, '] элемент матрицы');
  63.                 Readln(Matrix[i, j]);
  64.                IsCorrect:= True;
  65.             except
  66.                 Writeln('Число должно быть целым!');
  67.             end;
  68.             if (Matrix[i, j] < MIN) or (Matrix[i, j] > MAX) then
  69.             begin
  70.                 IsCorrect:= False;
  71.                Writeln('Проверьте границы допустимых значений!');
  72.             end;
  73.          until IsCorrect;
  74.       end;
  75.    Writeln(Output);
  76.    for i:= 0 to n do
  77.     begin
  78.     Writeln;
  79.       for j:= 0 to n do
  80.         Write(Matrix[i, j]: 4);
  81.    end;
  82.    Writeln;
  83. end;
  84.  
  85. procedure CountingNegativeNumbers(FirstMatrix, SecondMatrix: TIntMatrix; m, n: Integer);
  86.  
  87. var
  88.    i, j, Number: Integer;
  89.  
  90. begin
  91.     Dec(m);
  92.    Dec(n);
  93.     Number:= 0;
  94.    for i:= 0 to m do
  95.     for j:= 0 to n do
  96.          if (FirstMatrix[i, j] < 0) then
  97.             Number:= Number + 1;
  98.    for i:= 0 to n do
  99.     for j:= 0 to n do
  100.         if (SecondMatrix[i, j] < 0) then
  101.             Number:= Number + 1;
  102.    Writeln('Суммарное количество отрицательных элементов в двух матрицах равно ', Number);
  103. end;
  104.  
  105. var
  106.     FirstMatrix, SecondMatrix: TIntMatrix;
  107.    m, n: Integer;
  108.  
  109. begin
  110.    Writeln('Эта программа находит суммарное количество отрицательных элементов в двух матрицах и');
  111.    Writeln('определяет, в какой из матриц среднее арифметическое неотрицательных элементов больше');
  112.    m:= GetNumber('Пожалуйста, введите число строк первой матрицы');
  113.    n:= GetNumber('Пожалуйста, введите число строк и столбцов второй матрицы');
  114.    SetLength(FirstMatrix, m, n);
  115.    SetLength(SecondMatrix, n ,n);
  116.    Writeln('Размер элемента матрицы не должен быть меньше ', MIN,' или больше ', MAX);
  117.    FirstMatrix:= GetMatrix(m, n, 'первую','Первая матрица: ');
  118.    SecondMatrix:= GetMatrix(n, n, 'вторую', 'Вторая матрица: ');
  119.    CountingNegativeNumbers(FirstMatrix, SecondMatrix, m, n);
  120.    Readln;
  121. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement