Складіть блок схему алгоритму розв'язування задачі: Дано ціле число. Повторити 4 рази " Помножити попереднє число на 2". Повідомити результат. Виконати складений алгоритм для двох різних цілих чисел
Изображение занимает 480х320х24 бита информации. Это равняется 450х2¹³ битов, что равняется 450кБ. 40 файлов- это 18000кБ. На диске- 1048576кБ. Если блоки стали в 2 раза больше, то пустого места, сответсвенно, тоже стало в 2 раза больше, на 18000кБ, значит до этого было тоже 18000кБ пустого места(если увеличить его в 2 раза, то будет НА 18000кБ больше), 1048576÷18000 даст 58(без остатка), значит изображений было тоже 58. После кажого изображения оставалось 18000/58 кБ пустого места(около 310 кБ), соответсвенно изображение с пустым местом занимало 18310кБ, что являлось размером блока
var f,r,x,n,k1,k2:integer; begin f:=450; r:=1024*1024; x:=2; while x<=r do begin n:=r div x; k1:=Ceil(f/x); k2:=Ceil(f/(2*x)); if (n div k1) = ((n div 2) div k2+40) then begin writeln('1 разбиение: блок = ',x,' Кбайт, блоков на файл ',k1,', файлов ',n div k1); writeln('2 разбиение: блок = ',2*x,' Кбайт, блоков на файл ',k2,', файлов ',(n div 2) div k2); end; x:=2*x; end; end.
Результат: 1 разбиение: блок = 8 Кбайт, блоков на файл 57, файлов 2299 2 разбиение: блок = 16 Кбайт, блоков на файл 29, файлов 2259
40 файлов- это 18000кБ.
На диске- 1048576кБ.
Если блоки стали в 2 раза больше, то пустого места, сответсвенно, тоже стало в 2 раза больше, на 18000кБ, значит до этого было тоже 18000кБ пустого места(если увеличить его в 2 раза, то будет НА 18000кБ больше), 1048576÷18000 даст 58(без остатка), значит изображений было тоже 58. После кажого изображения оставалось 18000/58 кБ пустого места(около 310 кБ), соответсвенно изображение с пустым местом занимало 18310кБ, что являлось размером блока
На 1 файл: 480*320*24 бит = 480*320*3 байт = 450 Кбайт
var f,r,x,n,k1,k2:integer;
begin
f:=450;
r:=1024*1024;
x:=2;
while x<=r do begin
n:=r div x;
k1:=Ceil(f/x); k2:=Ceil(f/(2*x));
if (n div k1) = ((n div 2) div k2+40)
then begin
writeln('1 разбиение: блок = ',x,' Кбайт, блоков на файл ',k1,', файлов ',n div k1);
writeln('2 разбиение: блок = ',2*x,' Кбайт, блоков на файл ',k2,', файлов ',(n div 2) div k2);
end;
x:=2*x;
end;
end.
Результат:
1 разбиение: блок = 8 Кбайт, блоков на файл 57, файлов 2299
2 разбиение: блок = 16 Кбайт, блоков на файл 29, файлов 2259