8^1023 = 2^1026 ( в 2c/c это число принимает вид: 1 и 1026 штук нулей)
2^1024 - в 2 c|c это число = 1 и 1024 штуки нулей. (100000......0)
3 = 11 (в 2с/с)
2^1024 -11 = 111111.....101 ( всего цифр в числе =1024, только один 0, остальные единицы - 1023 штуки.)
1+1023 = 1024 - количество единиц в двоичной записи числа, которое получается при вычислении данного выражения.
Var x:real;
begin
read(x);
if x>0 then x:=x/2 else
x:=x*5;
write(x);
end.
Готово. Не пугайтесь swap, просто благодаря ему "пузырёк" выглядит лучше. Программа во вложении.
UPD: Чтобы увеличить рандомность генерации массива, измените аргумент в функции random из первого цикла.
<span>Пронумеруем для наглядности: </span>
<span>1, 2, 3, 4 </span>
<span>Итак: </span>
<span>1) Сравниваем первую пару, например 1 и 2 </span>
<span>2) Сравниваем вторую пару — 3 и 4 </span>
<span>3) Сравниваем победителей первых двух пунктов между собой. Победитель будет самым тяжёлым </span>
<span>4) Сравниваем проигравших первых двух пунктов между собой. Проигравший будет самым лёгким </span>
<span>5) Теперь сравниваем те 2 арбуза, которые остались посерединке.</span>
a = int(input("введите 1 число = "))
b = int(input("введите второе число = "))
op = str(input("оператор: "))
if op == 'pow':
result = a**b
print(result)
if op == '+':
result = a+b
print(result)
if op == '*':
result = a*b
print(result)
if op == '/':
if b == 0:
print("Деление на 0")
else:
result = a/b
print(result)