VitalyD

Untitled

Dec 18th, 2018
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.81 KB | None | 0 0
  1. var
  2.   A: array[1..15, 1..15] of integer;  //двухмерный массив
  3.   B: array[1..15] of integer;  //одномерный массив
  4.   i, j, m, n, max: integer;   //переменные
  5.  
  6.  
  7. function MaxElement(max,val: integer): integer;
  8. begin
  9.   if (max < val) then                           //функция поиска макс элемента, ей на вход приходит max (предыдущее максимальное значе
  10.     begin                                       //ние и val (текущее значение), если max < val, то max принимает значение val
  11.       MaxElement:= val;                         // или ничего не меняется
  12.     end
  13.     else
  14.       begin
  15.         MaxElement:= max;
  16.       end;
  17. end;
  18.  
  19. procedure DrawMass(i, j: integer);
  20. begin
  21.   writeln('Двумерный массив:');
  22.   writeln;
  23.   randomize;
  24.   n := 1 + random(15); //размерность, случайное число от 1 до 15   //случаное кол-во строк массива
  25.   m := 1 + random(15); //размерность, случайное число от 1 до 15   // случайное кол-во столбцов массива
  26.   for i := 1 to n do
  27.   begin
  28.     max := 0;
  29.     for j := 1 to m do
  30.     begin
  31.       a[i, j] := random(200); //элемент i-строки и j столбца равен случайному число от 1 до 199.
  32.       write(a[i, j]:4);
  33.       max:=MaxElement(max,a[i, j]);     //переменная max принимает в себя значение которые получается в функции MaxElement
  34.     end;
  35.     writeln('max = ':10, max);
  36.     B[i]:=max;                      //заполняется одномерный массив с максимальными значениями
  37.   end;
  38. end;
  39.  
  40. begin
  41.   DrawMass(i,j);
  42.   Writeln('________________________________________');
  43.   Writeln('Максимальные элементы двумерного массива:');
  44.   Writeln();
  45.   for var z:=1 to High(B) do
  46.     begin
  47.       if (B[z] = 0) then            //вывод одномерного массива, а для того, чтобы не выводились 0, то как только мы получаем элемент  
  48.         begin                       // у которого значение 0, то вызываем break т.к. завершение цикла и завершение программы.
  49.           break;                    //это сделано потому, что не все элементы массива будут иметь значения.
  50.         end                         //Максимум значений может быть 15 ( High(B) ), а по факту может быть только 1.
  51.       else                          //выглядеть это будет так [230, 0, 0, 0, 0 и тд]
  52.         begin
  53.           write(B[z]:4);  
  54.         end;
  55.     end;
  56. end.
Advertisement
Add Comment
Please, Sign In to add comment