Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.32 KB | None | 0 0
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6.  
  7. uses
  8.   System.SysUtils;
  9.  
  10.  
  11. type
  12.    line = array of Integer;
  13.    matrix = array of line;
  14.  
  15.  
  16. function getMax(mass: matrix): line;
  17. var
  18.    Max: Integer;
  19.    i, j: Integer;
  20.    maxArr: line;
  21. begin
  22.    setLength(maxArr, length(mass));
  23.    for j := 0 to High(mass) do
  24.    begin
  25.       Max := mass[0,j];
  26.       for i := 1 to High(mass) do
  27.       begin
  28.          if mass[i,j] > Max then
  29.          Max := mass[i,j];
  30.       end;
  31.       maxArr[j] := Max;
  32.    end;
  33.    result := maxArr;
  34. end;
  35.  
  36.  
  37. function getMin(mass: matrix): line;
  38. var
  39.    Min: Integer;
  40.    i, j: integer;
  41.    minArr: line;
  42. begin
  43.    setLength(minArr, length(mass));
  44.    for i := 0 to High(mass) do
  45.    begin
  46.       Min := mass[i,0];
  47.       for j := 1 to High(mass) do
  48.       begin
  49.          if mass[i,j] < Min then
  50.          Min := mass[i, j];
  51.       end;
  52.       minArr[i] := Min;
  53.    end;
  54.    result := minArr;
  55. end;
  56.  
  57.  
  58. procedure getPoint(mass: matrix; minArr, maxArr: line);
  59. var
  60.    res, i, j: Integer;
  61. begin
  62.    AssignFile(Output,'D:\Labs\labs 2-3\result\result.txt');
  63.    rewrite(Output);
  64.    Writeln('Программа находит седловые точки матрицы.');
  65.    Writeln('');
  66.    res := 0;
  67.    for i := 0 to High(mass) do
  68.       for j := 0 to High(mass) do
  69.          if (( mass[i, j] = minArr[i] ) and ( mass[i, j] = maxArr[j] )) then
  70.          begin
  71.             Writeln('Седловой точкой заданной матрицы является число ', mass[i, j],' в ',i + 1,'-ой стороке ',j + 1,'-ого столбца.');
  72.             res := res + 1
  73.          end;
  74.          if res = 0 then
  75.          begin
  76.             Writeln('В данной матрице седловых точек нет.');
  77.          end;
  78.    close(Output);
  79. end;
  80.  
  81.  
  82. function getMatrix(): matrix;
  83. var
  84.    input: TextFile;
  85.    size, i, j: Integer;
  86.    mass: matrix;
  87. begin
  88.    AssignFile(input, 'D:\Labs\labs 2-3\text\task.txt');
  89.    Reset(input);
  90.    Read(input, size);
  91.    SetLength(mass, size, size);
  92.  
  93.    for i := 0 to High(mass) do
  94.       for j := 0 to High(mass) do
  95.          Read(input, mass[i][j]);
  96.    closeFile(input);
  97.    result := mass;
  98. end;
  99.  
  100.  
  101. procedure Main();
  102. var
  103.    Mass: matrix;
  104. begin
  105.    Mass := getMatrix();
  106.    getPoint(Mass, getMin(Mass), getMax(Mass));
  107. end;
  108.  
  109.  
  110. begin
  111.    Main;
  112. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement