Advertisement
Alyks

Untitled

Dec 11th, 2019
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.34 KB | None | 0 0
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.     SysUtils, Windows;
  7.  
  8. type
  9.     TTable = Array of Array of Integer;
  10.  
  11. function Input(): Integer;
  12. var
  13.     NotCorrect: Boolean;
  14.     Value: Integer;
  15. begin
  16.     NotCorrect := true;
  17.     while(NotCorrect) do
  18.     begin
  19.         try
  20.             Readln(Value);
  21.             NotCorrect := false;
  22.         except
  23.             Writeln('Введите число');
  24.         end;
  25.     end;
  26.     Input := Value;
  27. end;
  28.  
  29.  
  30. procedure ShowTable(const Table: TTable);
  31. var
  32.     i, j: Integer;
  33. begin
  34.     for i := 0 to High(Table) do
  35.     begin
  36.         for j := 0 to High(Table[i]) do
  37.             Write(' ', Table[i, j]);
  38.         Writeln;
  39.     end;
  40. end;
  41.  
  42. function CreateTable(Rows, Cols: Integer): TTable;
  43. var
  44.     Table: TTable;
  45.     i, j: Integer;
  46. begin
  47.     SetLength(Table, Rows, Cols);
  48.     for i := 0 to High(Table) do
  49.         for j := 0 to High(Table[i]) do
  50.         begin
  51.             Writeln('Введите ', j + 1, '-ый элемент столбца ', i + 1,
  52.                 '-ой строки');
  53.             Table[i, j] := Input();
  54.         end;
  55.     CreateTable := Table;
  56. end;
  57.  
  58. function FindColumn(const Table: TTable): String;
  59. var
  60.     i, j, k, Count, Last, Col: Integer;
  61. begin
  62.     Last := High(Table[0]);
  63.     Col := 1;
  64.     for i := 0 to High(Table[0]) do
  65.     begin
  66.         Count := 0;
  67.  
  68.         for j := 0 to High(Table) do
  69.             if ((i + j > 0) and (Table[j, i] mod (i + j) = 0)) then
  70.                 Inc(Count);
  71.  
  72.         if(Count < Last) then
  73.         begin
  74.             Last := Count;
  75.             Col := i+1;
  76.         end;
  77.     end;
  78.     FindColumn := 'Столбец, где минимальное количество элементов кратно сумме индексов - '
  79.         + IntToStr(Col);
  80. end;
  81.  
  82. procedure Main();
  83. var
  84.     Rows, Cols: Integer;
  85.     Table: TTable;
  86.     Res: String;
  87. begin
  88.     Writeln('Данная программа находит столбец таблицы, где минимальное количество элементов кратно сумме индексов');
  89.     Writeln;
  90.     Writeln('Введите количество строк таблицы');
  91.     Rows := Input();
  92.     Writeln('Введите количество столбцов таблицы');
  93.     Cols := Input();
  94.     Table := CreateTable(Rows, Cols);
  95.     Writeln('Получившаясь таблица:');
  96.     ShowTable(Table);
  97.     Res := FindColumn(Table);
  98.     Writeln(Res);
  99. end;
  100.  
  101. begin
  102.     SetConsoleCp(1251);
  103.     SetConsoleOutputCp(1251);
  104.     Main();
  105.     Readln;
  106. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement