//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) const n = 20; var a: array[1..20] of integer; i, min, max: integer;
begin min := MaxInt;max := -MaxInt; writeln('Исходный массив :'); for i := 1 to n do begin a[i] := random(-10, 10);write(a[i]:4); if a[i] < min then min := a[i]; if a[i] > max then max := a[i]; end; writeln; writeln('min = ',min,' max = ',max); writeln('Массив после обработки:'); for i := 1 to n do begin if a[i] < 0 then a[i] := max else a[i] := min; write(a[i]:4); end; end.
Для удобства вычислений переведём размер сканируемого изображения в дюймы: 20,32 × 20,32 (см) = 8 × 8 (inch).
Сначала найдём количество пикселей по горизонтали, по вертикали, затем общее количество пикселей, исходя из разрешающей сканера. Зная, что каждый пиксель кодируется 4 битами, найдём объём памяти, необходимый для хранения графической информации, что и будет являться информационным объёмом файла.
1) 600 × 8 = 4800 (px) – количество пикселей по горизонтали.
2) 1200 × 8 = 9600 (px) – количество пикселей по вертикали.
Если число 49 записывается как 121, значит первый остаток от деления равен 1, то есть основанием системы счисления является число, кратное 48.
121 имеет 3 разряда, значит основание однозначно меньше 10 и больше 2. Подходят 3, 4, 6, 8.
Учитывая, что в числе 121 три разряда, значит число 48 делилось всего три раза. Число 8 не подойдет, т.к. 48/8=6, значит будет всего два деления. Число 3 не подойдет, т.к. 48/3 = 16, 16/3=5 - то есть тут будет больше трёх знаков. Число 4 не подойдет, т.к. 48/4=12, а 12 делится на 4 без остатка, но, судя по числу, во втором делении остаток должен быть равен 2. Остаётся число 6. Проверим
const n = 20;
var
a: array[1..20] of integer;
i, min, max: integer;
begin
min := MaxInt;max := -MaxInt;
writeln('Исходный массив :');
for i := 1 to n do
begin
a[i] := random(-10, 10);write(a[i]:4);
if a[i] < min then min := a[i];
if a[i] > max then max := a[i];
end;
writeln;
writeln('min = ',min,' max = ',max);
writeln('Массив после обработки:');
for i := 1 to n do
begin
if a[i] < 0 then a[i] := max
else a[i] := min;
write(a[i]:4);
end;
end.
Тестовое решение:
Исходный массив :
7 -9 0 -3 -2 7 -1 3 -4 2 0 3 -6 5 -1 -9 7 -7 6 6
min = -9 max = 7
Массив после обработки:
-9 7 -9 7 7 -9 7 -9 7 -9 -9 -9 7 -9 7 7 -9 7 -9 -9