2. Длинный "школьный" вариант ("почувствуйте разницу")
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 var a:array[1..50] of integer; i,s:integer; begin Randomize; s:=0; for i:=1 to 50 do begin a[i]:=Random(31)-10; Write(a[i],' '); if (a[i]>0) and Odd(i) then s:=s+a[i] end; Writeln; Writeln('Sпол.неч = ',s) end.
Считаем количество символов: "собака, " содержит 8 символов. Значит объем текста до замены: 681*8 символов.
После замены количество символов в каждом слове увеличилось на 2: вместо 2-х символов a стало 4 символа _, т.е на 4 - 2 = 2 символа больше. Всего слов 681, следовательно объем текста увеличился на 2*681.
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016
begin
Writeln('Sпол.неч = ',ArrRandom(50,-10,20).Println
.Where((x,i)->(x>0) and (i.IsEven)).Sum)
end.
Тестовое решение
15 16 0 17 20 7 -3 -4 9 9 -3 -8 14 10 10 11 7 18 -8 8 0 15 1 4 11 1 9 -10 -7 -7 12 17 8 13 7 15 1 13 12 11 4 -5 -3 -6 -5 -10 -9 -8 8 -8
Sпол.неч = 148
2. Длинный "школьный" вариант ("почувствуйте разницу")
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016
var
a:array[1..50] of integer;
i,s:integer;
begin
Randomize;
s:=0;
for i:=1 to 50 do begin
a[i]:=Random(31)-10; Write(a[i],' ');
if (a[i]>0) and Odd(i) then s:=s+a[i]
end;
Writeln;
Writeln('Sпол.неч = ',s)
end.
Тестовое решение
4 14 4 7 9 -4 3 6 20 -10 3 -3 15 12 9 0 3 12 13 -1 9 -2 -2 16 18 -2 5 9 17 -3 4 -6 10 10 -5 10 8 13 12 15 13 1 12 1 7 6 9 2 -9 -6
Sпол.неч = 207
13620 байт
Объяснение:
Считаем количество символов: "собака, " содержит 8 символов. Значит объем текста до замены: 681*8 символов.
После замены количество символов в каждом слове увеличилось на 2: вместо 2-х символов a стало 4 символа _, т.е на 4 - 2 = 2 символа больше. Всего слов 681, следовательно объем текста увеличился на 2*681.
(681*8 + 681*2)*16 = 6810*16 (бит) = 6810*2*8 = 6810*2 (байт) = 13620 байт
P.S. Можно рассуждать проще: было "собака, ", стало "соб__к__, ", т.е. 10 символов в слове. Скопировано 680 раз, т.е 10 + 680*10 = 6810.
Информационный объем равен 6810*16 бит = 13620 байт