Xisepe

в рот ебал я это 7 задание

Dec 15th, 2021 (edited)
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.93 KB | None | 0 0
  1. program Task7;
  2.  
  3. Uses sysutils;
  4.  
  5. type
  6. arr = array[1..10, 1..10] of integer;
  7.  
  8. var
  9. a : arr;
  10. l, dialog : integer;
  11.  
  12. function randomInit() : arr;
  13. var
  14.     i, j : integer;
  15.     res : arr;
  16. begin
  17.     randomize();
  18.     for i := 1 to 10 do
  19.         begin
  20.             for j := 1 to 10 do
  21.                 begin
  22.                     res[i,j] := random(10);
  23.                 end;
  24.         end;
  25.     randomInit := res;    
  26. end;
  27.  
  28. function initFromKeyboard(): arr;
  29. var
  30.     i, j : integer;
  31.     res : arr;
  32. begin
  33.    
  34.     for i := 1 to 10 do
  35.         begin
  36.             for j := 1 to 10 do
  37.                 begin
  38.                     readln(res[i,j]);
  39.                 end;
  40.         end;
  41.     initFromKeyboard := res;    
  42. end;
  43.  
  44. function initFromFile(): arr;
  45. var
  46.     i, j : integer;
  47.     res : arr;
  48.     s : string;
  49.     f : textfile;
  50. begin
  51.     assign(f,'in.txt');
  52.     reset(f);
  53.     for i := 1 to 10 do
  54.         begin
  55.             for j := 1 to 10 do
  56.                 begin
  57.                     readln(f,s);
  58.                     res[i,j] := StrToInt(s);
  59.                 end;
  60.         end;
  61.     close(f);
  62.     initFromFile := res;
  63. end;
  64.  
  65. procedure print(res : arr);
  66. var
  67.     i, j : integer;
  68. begin
  69.     for i := 1 to 10 do
  70.         begin
  71.             for j := 1 to 10 do
  72.                 begin
  73.                     write(res[i,j], ' ');
  74.                 end;
  75.             writeln();
  76.         end;
  77. end;
  78.  
  79. function maxLine(a : arr) : integer;
  80. var
  81.     i, j, maxi, max, cur : integer;
  82. begin
  83.     cur := 0;
  84.     maxi := 0;
  85.     max := 0;
  86.    
  87.     for i := 1 to 10 do
  88.         begin
  89.             for j := 1 to 10 do
  90.                 begin
  91.                     cur := cur + a[i,j];
  92.                 end;
  93.             if cur > max then
  94.                 begin
  95.                     max := cur;
  96.                     maxi := i;
  97.                 end;
  98.             cur := 0;
  99.         end;
  100.     maxLine := maxi;    
  101. end;
  102.  
  103. procedure positionsOfMaxSum(a : arr);
  104. var
  105. i, j, max4, max4i, max4j, max8, max8i, max8j, cur : integer;
  106.  
  107. begin
  108.     max4:=0;
  109.     max4i:=0;
  110.     max4j:=0;
  111.     max8:=0;
  112.     max8i:=0;
  113.     max8j:=0;
  114.     for i := 1 to 10 do
  115.         begin
  116.             for j := 1 to 10 do
  117.                 begin
  118.                     if ((i - 1) > 0) and ((j - 1) > 0) and ((i + 1) < 11) and ((j + 1) < 11) then
  119.                         begin
  120.                             cur := a[i-1,j-1]+a[i-1,j]+a[i-1,j+1]+a[i,j+1]+a[i,j-1]+a[i+1,j+1]+a[i+1,j]+a[i+1,j-1];
  121.                             if cur > max8 then
  122.                                 begin
  123.                                     max8 := cur;
  124.                                     max8i := i;
  125.                                     max8j := j;
  126.                                 end;
  127.                             cur := a[i-1,j]+a[i,j+1]+a[i,j-1]+a[i+1,j];
  128.                             if cur > max4 then
  129.                                 begin
  130.                                     max4 := cur;
  131.                                     max4i := i;
  132.                                     max4j := j;
  133.                                 end;
  134.                             cur := 0;    
  135.                         end;
  136.                 end;
  137.         end;
  138.     writeln('Для 4 соседей:', max4i,' ', max4j);
  139.     writeln('Для 8 соседей:', max8i,' ', max8j);
  140. end;
  141.        
  142. begin
  143.     writeln('1)Случайная генерация');
  144.     writeln('2)Клавиатурный ввод');
  145.     writeln('3)Чтение из файла');
  146.     readln(dialog);
  147.     case(dialog) of
  148.         1:a:=randomInit();
  149.         2:a:=initFromKeyboard();
  150.         3:a:=initFromFile();
  151.         end;
  152.     print(a);
  153.     writeln('1)Номер строки с максимальной суммой');
  154.     writeln('2)Координаты элемента с максимальной суммой 4 соседей, 8 соседей');
  155.     readln(dialog);
  156.     case(dialog) of
  157.         1:writeln(maxLine(a));
  158.         2:positionsOfMaxSum(a);
  159.         end;
  160.    
  161. end.
  162.  
  163.  
Add Comment
Please, Sign In to add comment