// PascalABC.NET 3.2, сборка 1447 от 22.05.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк в массиве:'); var m:=ReadInteger('Количество колонок в массиве:'); Writeln('*** Исходный массив [',n,',',m,'] ***'); var a:=MatrRandom(n,m,-99,99); a.Println(5); Writeln(5*a.ColCount*'-'); a.Cols.Select(x->Format('{0,5}',x.Where(y->y<0).Sum)).Print(''); Println(' - суммы отрицательных'); end.
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк в массиве:');
var m:=ReadInteger('Количество колонок в массиве:');
Writeln('*** Исходный массив [',n,',',m,'] ***');
var a:=MatrRandom(n,m,-99,99);
a.Println(5); Writeln(5*a.ColCount*'-');
a.Cols.Select(x->Format('{0,5}',x.Where(y->y<0).Sum)).Print('');
Println(' - суммы отрицательных');
end.
Пример
Количество строк в массиве: 5
Количество колонок в массиве: 9
*** Исходный массив [5,9] ***
-43 -96 34 82 3 92 -59 31 35
65 94 76 66 90 -39 26 -24 83
73 -92 94 -94 44 -35 -66 87 -46
90 56 -37 -60 -9 94 9 -76 -58
-16 97 65 -21 -86 64 -20 46 -26
-59 -188 -37 -175 -95 -74 -145 -100 -130 - суммы отрицательных
1) сначала переведём
1*2^5+0*2^4+1*2^3+1*2^2+0*2^1+1*2^0 = 45 ( в десятой СС) // ^это степень , тобишь разряд умножаем на 2 в степени разряда
1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+0*2^0=50( в десятичной СС)
2) принадлежат интервалу = 45+46+47+48+49+50=285
3) переведём в двоичную СС
285/2 = 142, остаток: 1
142/2 = 71, остаток: 0
71/2 = 35, остаток: 1
35/2 = 17, остаток: 1
17/2 = 8, остаток: 1
8/2 = 4, остаток: 0
4/2 = 2, остаток: 0
2/2 = 1, остаток: 0
1/2 = 0, остаток: 1
285 = 1000111012
ответ: а)45-50 б) 1000111012