Const n=10; var a:array[1..n] of integer; i,s1,s2:integer; begin Randomize; writeln('Массив A:'); for i:=1 to n do begin a[i]:=random(51)-25; write(a[i]:4); end; writeln; s1:=0; s2:=0; for i:=1 to n do if a[i]<0 then s1:=s1+a[i] else s2:=s2+a[i]; writeln('s1 = ',s1,' s2 = ',s2); if abs(s1)>s2 then writeln('Yes, |',s1,'| > ',s2) else writeln('No, |',s1,'| <= ',s2); end.
Var a: array[1..n] of integer; k, i, m: byte; min: integer;
begin Write('Razmer massiva: '); Readln(k); if (k < 0) or (k > 100) then begin Writeln('Razmer dolzhen byt bolshe 0 i menshe 100'); Readln; Exit; end; Randomize; Writeln('Ishodn. massiv: '); for i:=1 to k do begin a[i]:=Random(101)-50; write(a[i]:4); end; min:=a[1]; for i:=2 to k do if a[i] < min then begin min:=a[i]; m:=i; end; a[m] := a[1]; a[1] := min; Writeln; Writeln('Min element = ', min:4, ' v posicii ', m:3); Writeln('Rezult. massiv: '); for i:=1 to k do write(a[i]:4); readln; end.
Предлагается хранить типы блоков в массиве. Каждый элемент - 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.
var a:array[1..n] of integer;
i,s1,s2:integer;
begin
Randomize;
writeln('Массив A:');
for i:=1 to n do
begin
a[i]:=random(51)-25;
write(a[i]:4);
end;
writeln;
s1:=0; s2:=0;
for i:=1 to n do
if a[i]<0 then s1:=s1+a[i] else s2:=s2+a[i];
writeln('s1 = ',s1,' s2 = ',s2);
if abs(s1)>s2
then writeln('Yes, |',s1,'| > ',s2)
else writeln('No, |',s1,'| <= ',s2);
end.
Пример:
Массив A:
-3 16 5 -14 -14 -4 -13 -25 13 16
s1 = -73 s2 = 50
Yes, |-73| > 50