Есть ответ 👍

Перетворити стовпці матриці а(nxn) так: якщо кількість елементів у стовпці , які перевищують мінімальне додатне значення цього стовця ,більша за 3 , то всі додатні елементи відповідного стовця розділити на 2

179
244
Посмотреть ответы 2

Ответы на вопрос:


// pascalabc.net 3.2, сборка 1485 от 15.06.2017 // внимание! если программа не работает, обновите версию! begin   var n: =readinteger('количество строк/столбцов в матрице: ');   writeln('*** исходная матрица [',n,',',n,'] ***');   var a: =matrrandom(n,n,-99,99);   a.println(4); writeln(4*a.colcount*'-');   var j: =0;   var nr: =arrfill(n,false);   foreach var c in a.cols do begin       var s: =c.where(x-> x> 0);       if s.count> 0 then begin           var min: =s.min;           var k: =c.where(x-> x> min).count;           nr[j]: =k> 3; j+=1           end       end;   writeln('*** результирующая матрица ***');   for var i: =0 to n-1 do       if nr[i] then a.setcol(i,a.col(i).select(x-> (x> 0? x div 2: );   a.println(4) end. пример количество строк/столбцов в матрице: 10 *** исходная матрица [10,10] ***   -12  16  82  17  61 -19 -54  30 -27  77   72 -88  64 -50  85  16    3 -90  72  69   -26  22  27 -72 -83  23 -39 -56  -6  87     2 -56  -4 -43 -15 -31  75  85 -96  -7   42 -17  67  55  32  74  28 -92 -81 -97   -44  80 -50  81  -8  66  89  55    0 -61   -79 -97 -64 -15 -25  28  15    7  64  17   41  17 -93 -20 -72  91  54  71  -5 -57   95 -47 -74  -8  32  22  94  15  64  19   -20 -79 -15  65 -28  39 -52 -18 -20 -96 *** результирующая матрица ***   -12  16  82  17  61 -19 -54  15 -27  38   36 -88  64 -50  85    8    1 -90  72  34   -26  22  27 -72 -83  11 -39 -56  -6  43     1 -56  -4 -43 -15 -31  37  42 -96  -7   21 -17  67  55  32  37  14 -92 -81 -97   -44  80 -50  81  -8  33  44  27    0 -61   -79 -97 -64 -15 -25  14    7    3  64    8   20  17 -93 -20 -72  45  27  35  -5 -57   47 -47 -74  -8  32  11  47    7  64    9   -20 -79 -15  65 -28  19 -52 -18 -20 -96

Число 15 > 0       прямой код 15 :   0000 1111 число - 8< 0     прямой код:         0000 1000     обратный код:     1111  0111 дополнительный:     1111 1000     15 =       0000 1111 -8     =       1111   1000 15+(-8) =0000 0 111     = 7(в 10с/с)

Популярно: Информатика