Задание 1.Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы можно было сохранить любое растровое изображение размером 128×128 пикселей при условии, что в изображении могут использоваться 256 различных цветов? В ответе запишите только целое число, единицу измерения писать не нужно.
3) 137 = 10001001 (нужно число делить на 2, записывая остаток, и так до тех пор пока число уже нельзя будет делить, потом записываем остатки в обратном порядке)
137 / 2 = 68 ( остаток 1)
68 / 2 = 34 (остаток 0)
34 / 2 = 17 (остаток 0)
17 / 2 = 8 (остаток 1)
8 / 2 = 4 (0)
4 / 2 = 2 (0)
2 / 2 = 1 (0)
Теперь записываем остатки в обратном порядке = 10001001
4) Как я понял 8 и 16 это систему счисления, если да то:
а)151 = 1 * 8^2 + 5 * 8^1 + 1 * 8^0 = 64 + 40 + 1 = 105
б) 2С = 2 * 16 + 12(С) = 32 + 12 = 44
program one;
var input,max,min:integer;
i:integer;
begin
readln(input);
max:=input;
min:=input;
for i:=2 to 25 do begin
readln(input);
if input>max then max:=input;
if input<min then min:=input;
end;
writeln(max-min);
end.
2) Гораздо проще не суммировать в цикле степени половины, а воспользоваться тем, что .
program two;
var res:real;
i,n:integer;
begin
readln(n);
res:=0.5;
for i:=2 to n do res*=0.5;
res:=2-res;
writeln(res);
end.
3) Здесь существует несколько реализации; в частности, можно было просто считать число как строку и возвратить ее в перевернутом виде (ReverseString(s)), не заботясь о переполнении, однако я решил, что по логике задания нужно делать через числа. Впрочем, для выявления случаев переполнения все равно используется переворот строки
program three;
var a,b:int64; {можно использовать uint64, если в вашей среде Паскаля этот тип поддерживается, тогда число в строке ниже надо заменить}
begin
readln(a);
if ReverseString(IntToStr(a))>'9223372036854775807' then writeln('Слишком много') else begin
while a>0 do begin
b:=10*b+a mod 10;
a:=a div 10;
end;
writeln(b);
end;
end.