// PascalABC.NET 3.2, сборка 1382 от 06.02.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк (столбцов) в массиве:'); Writeln('*** Исходный массив [',n,',',n,'] ***'); var a:=MatrRandom(n,n,-10,10); a.Println(4); Writeln(5*a.ColCount*'-'); var k,l:integer; Write('Введите L,K: '); Read(l,k); var lim:=a[l-1,k-1]; var s:=a.Rows.SelectMany(x->x).Where(x->x<lim).Sum; Writeln('Искомая сумма равна ',s) end.
Шестой (6) => Второй (2) => Четвёртый (4) => Первый (1) => Пятый (5) => Третий (3)
Объяснение:
Первый: 600 Кбайт
Второй: 200 байт
Третий: 1 Терабайт
Четвёртый: в 10 раз больше, чем Шестой (400 бит) * 10 = 4 000 бит
Пятый: 3 Мбайта
Шестой: 400 бит
Приравняем всё к одной системе, учитывая что:
1 байт = 8 бит
1 Кбайт = 1000 байт
1 Мбайт = 1000 Кбайт
1 Терабайт = 1000 Гбайт
Приравнивать будем к байтам
Первый: 600 Кбайт = 600 * 1000 = 600 000 байт
Второй: 200 байт
Третий: 1 Терабайт = 1 000 Гбайт (это много, дальше можно не считать)
Четвёртый: 4 000 бит = 4000 / 8 = 500 байт
Пятый: 3 Мбайта = 3 * 1000 * 1000 = 3 000 000 байт
Шестой: 400 бит = 50 байт
Теперь расставляем в порядке возрастания (от меньшего к большему)
Шестой: 50 байт
Второй: 200 байт
Четвёртый: 500 байт
Первый: 600 000 байт
Пятый: 3 000 000 байт
Третий: 1 000 Гбайт
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк (столбцов) в массиве:');
Writeln('*** Исходный массив [',n,',',n,'] ***');
var a:=MatrRandom(n,n,-10,10);
a.Println(4); Writeln(5*a.ColCount*'-');
var k,l:integer;
Write('Введите L,K: '); Read(l,k);
var lim:=a[l-1,k-1];
var s:=a.Rows.SelectMany(x->x).Where(x->x<lim).Sum;
Writeln('Искомая сумма равна ',s)
end.
Пример
Количество строк (столбцов) в массиве: 6
*** Исходный массив [6,6] ***
-4 -8 -7 -3 -6 -4
2 -9 1 9 -6 6
-9 -2 -8 -3 -1 -4
-1 -9 -3 -7 3 -3
5 9 -6 8 -1 -10
-1 -1 -5 -8 -9 4
Введите L,K: 2 3
Искомая сумма равна -138