Дан двумерный массив размерностью 8x7, заполненный случайным образом. сначала вывести исходный массив, далее: - заменить все элементы первых трех столбцов на их квадраты. - вставить между средними строками первую строку. - удалить все столбцы, в которых первый элемент больше последнего. - поменять местами первую и последнюю строку. язык: pascal ,завтра надо сдать.

marta894 marta894    1   09.09.2019 11:20    0

Ответы
Арте2281337 Арте2281337  07.10.2020 03:00
// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!

begin
  Writeln('*** Исходный массив 8x7 ***');
  var a:=MatrRandom(8,7,-99,99);
  a.Println(5); Writeln(5*a.ColCount*'-'); // исходный массив
  // заменить все элементы первых трех столбцов на их квадраты
  for var i:=0 to 2 do
    a.SetCol(i,a.Col(i).Select(x->x*x).ToArray);
  Writeln('*** После замены в 3х первых столбцах ***');  
  a.Println(5); Writeln(5*a.ColCount*'-');
  // вставить между средними строками первую строку
  SetLength(a,9,7);
  for var i:=7 downto 4 do
    a.SetRow(i+1,a.Row(i));
  a.SetRow(4,a.Row(0));
  Writeln('*** После вставки первой строки в середину ***');  
  a.Println(5); Writeln(5*a.ColCount*'-');
  // удалить все столбцы, в которых 1-й элемент больше последнего
  var d:=0;
  for var i:=0 to 6 do
    if a[0,i]>a[8,i] then d+=1
    else
      if d>0 then a.SetCol(i-d,a.Col(i));
  SetLength(a,9,7-d);
  Writeln('*** После удаления столбцов ***');
  a.Println(5); Writeln(5*a.ColCount*'-');
  // поменять местами первую и последнюю строку
  a.SwapRows(0,a.RowCount-1);
  Writeln('*** Результирующий массив ***');
  a.Println(5)
end.

Пример
*** Исходный массив 8x7 ***
  -42   10  -92  -23   51  -50   31
   62  -75   25  -37   87   -9   63
  -99   67   61  -19  -27   17  -96
  -45   -7   83  -34   33   35  -95
   29   86  -85  -94   43  -89   63
  -38   64  -93   55  -53  -56   98
  -34  -20   34   -2  -89   92   85
  -11   48  -75  -81  -38   73  -97

*** После замены в 3х первых столбцах ***
 1764  100 8464  -23   51  -50   31
 3844 5625  625  -37   87   -9   63
 9801 4489 3721  -19  -27   17  -96
 2025   49 6889  -34   33   35  -95
  841 7396 7225  -94   43  -89   63
 1444 4096 8649   55  -53  -56   98
 1156  400 1156   -2  -89   92   85
  121 2304 5625  -81  -38   73  -97

*** После вставки первой строки в середину ***
 1764  100 8464  -23   51  -50   31
 3844 5625  625  -37   87   -9   63
 9801 4489 3721  -19  -27   17  -96
 2025   49 6889  -34   33   35  -95
 1764  100 8464  -23   51  -50   31
  841 7396 7225  -94   43  -89   63
 1444 4096 8649   55  -53  -56   98
 1156  400 1156   -2  -89   92   85
  121 2304 5625  -81  -38   73  -97

*** После удаления столбцов ***
  100  -50
 5625   -9
 4489   17
   49   35
  100  -50
 7396  -89
 4096  -56
  400   92
 2304   73

*** Результирующий массив ***
 2304   73
 5625   -9
 4489   17
   49   35
  100  -50
 7396  -89
 4096  -56
  400   92
  100  -50
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика