Предлагается хранить типы блоков в массиве. Каждый элемент - 2Б, количество элементов - 2^20 => всего требуется 2МБ.
При перезаписи блока и очередной переоценке необходимо учитывать типы данных в блоке до перезаписи (T0), после перезаписи (T1) и в соседних блоках (TL, TR).
Если T0 = T1, то количество кусков данных не изменяется, т.е. W[i+1] = W[i] TL = T0 = TR <> T1 -> W[i+1] = W[i] + 2 TL = T1 = TR <> T0 -> W[i+1] = W[i] - 2 TL = TR, T0 <> TL, T1 <> TL -> W[i+1] = W[i]
Если все четыре типа не совпадают, то W[i+1] = W[i] Если перезаписывается блок с адресом 0, считать, что тип TL не совпадает ни с одним из трех других.Аналогично при перезаписи блока с адресом , но для TR.
Вроде все?
Александрович_Викторовна
09.03.2021
// PascalABC.NET 3.0, сборка 1073 const m=5; n=4; a:array[1..m] of real=(2,-7.1,3.2,-5.4,6.9); b:array[1..n] of real=(8.1,3.2,-6.4,-3.5); k=3; var i,j:integer; sk:real; s:array[1..m,1..n] of real; begin Writeln('Массив S'); for i:=1 to m do begin for j:=1 to n do begin s[i,j]:=a[i]*b[j]; Write(s[i,j]:7:2) end; Writeln end; sk:=0; for i:=1 to m do sk:=sk+s[i,k]; Writeln('Сумма элементов столбца ',k,' равна ',sk) end.
Результат выполнения программы: Массив S 16.20 6.40 -12.80 -7.00 -57.51 -22.72 45.44 24.85 25.92 10.24 -20.48 -11.20 -43.74 -17.28 34.56 18.90 55.89 22.08 -44.16 -24.15 Сумма элементов столбца 3 равна 2.56
При перезаписи блока и очередной переоценке необходимо учитывать типы данных в блоке до перезаписи (T0), после перезаписи (T1) и в соседних блоках (TL, TR).
Если T0 = T1, то количество кусков данных не изменяется, т.е. W[i+1] = W[i]
TL = T0 = TR <> T1 -> W[i+1] = W[i] + 2
TL = T1 = TR <> T0 -> W[i+1] = W[i] - 2
TL = TR, T0 <> TL, T1 <> TL -> W[i+1] = W[i]
Далее рассмотрим случаи, когда TL <> TR
(TL = T0, TR = T1) или (TR = T0, TL = T1) -> W[i+1] = W[i]
(TL = T0, TR <> T1) или (TR = T0, TL <> T1) -> W[i+1] = W[i] + 1
(TL = T1, TR <> T0) или (TR = T1, TL <> T0) - > W[i+1] = W[i] - 1
Если все четыре типа не совпадают, то W[i+1] = W[i]
Если перезаписывается блок с адресом 0, считать, что тип TL не совпадает ни с одним из трех других.Аналогично при перезаписи блока с адресом , но для TR.
Вроде все?