<u>PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
begin
var n:=ReadInteger('Количество строк/столбцов в массиве:');
var a:=MatrRandom(n,n,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var (K,L):=ReadInteger2('Укажите номера столбца и строки:');
var e:=a[L-1,K-1];
Writeln('S=',a.ElementsByRow.Where(t->t<e).Sum)
end.
<u>Пример</u>
Количество строк/столбцов в массиве: 7
79 9 98 -38 -9 -64 -69
90 -67 -76 -53 -83 -43 70
85 27 37 51 -75 9 98
-74 -39 -33 34 30 -61 -46
-81 59 -19 -40 3 -21 -71
-41 -21 18 -9 -2 25 -88
34 -84 -73 46 -14 -75 -37
----------------------------
Укажите номера столбца и строки: 5 2
S=-172
Каждый символ несёт в себе 4 бита информации (из формулы N=2^i, где N - мощность алфавита, i - число битов)
всего информации 130*4=520(бит)=65(байт)
<span>По логике так:
Надо расположить по возрастанию, то есть первое </span>меньше второго, второе меньше<span> третьего. Поэтому под цифрами 1 и 2 надо поставить "больше": если цифры поменяются местами, то станет "меньше", что нам и надо. Порядок убывания нам не нужен - нужно возрастание, поэтому в 3 пункте "не расположены". Ну а "к пункту" можно только "вернутся")
1)Начало.
2) Сравни первое и второе числа; если первое </span><u>больше</u><span> второго , то поменяй их местами.
3)Сравни второе и третье числа; если второе </span><u>больше</u><span> третьего, то поменяй их местами.
4)Если теперь три числа <u>не </u></span><u>расположены</u> в порядке убывания, то исполни пункт 5) этого алгоритма; иначе <u>вернись</u><span> к пункту 2).
5</span>)Конец.