В данном задании достаточно перевести число, напротив нужного символа в двоичную(бинарную) систему счисления.
Разбиваем число на слагаемые степени по основанию 2:
//174=128+32+8+4+2//
Теперь те разряды, где есть степень в нашем разложении, записываем как 1,а где нет - 0
(нулевая степень-первый разряд, разряды возрастают справа налево)
сначала подробно, потом кратко:
0 разряд = 0
1 разряд = 1
2 разряд = 1
3 разряд = 1
4 разряд = 0
5 разряд = 1
6 разряд = 0
7 разряд = 1
Итого:
10101110 - это буква"о" (которая зашифрована числом 174)
Едем далее...
Подводим итог:
1000 0000
1010 0010
1110 0010
1010 0001
1110 0011
1110 0001
10 0000
11 0010
11 1001
Пробел между каждого четвертого разряда, начиная справа, для наглядности, чтобы в нулях и единицах не запутаться ;-)
Первая задача = 2;
Вторая задача = 3;
Третья задача = 2.
Объяснение:
Решение первой задачи просто:
Мы решаем всё в битах = 16*32*30*16 = 245760 бит . В одном килобайте 8000 бит. Итог = 245760 бит делим на 8000 и получаем ответ 30 Кбайт.
Решение второй задачи также просто:
Так как в 1 байте 8 бит , мы делим 160 бит на 8 бит и получаем 20 символов по 1 байту каждое.
Решение третьей задачи тоже просто:
В предложении 52 символа(вместе с пробелами - это тоже символы). После чего ты умножаешь 52 на 16 и получаешь 832 бита.
ответ:После завершения цикла остается только вывести на экран значения переменных pos и neg, которые содержат количества положительных и отрицательных элементов массива.
Исходный код программы поиска количества положительных и отрицательных элементов массива на языке Pascal:
const N = 30;
var
a: array[1..N] of integer;
i, pos, neg: byte;
begin
randomize;
pos := 0;
neg := 0;
for i:=1 to N do begin
a[i] := random(100) - 50;
write(a[i]:4);
if a[i] < 0 then
neg := neg + 1
else
if a[i] > 0 then
pos := pos + 1;
end;
writeln;
writeln('Положительных: ', pos);
writeln('Отрицательных: ', neg);
end.
Объяснение: