N= 2^{i}
"N" - мощность алфавита.
информационный вес символа алфавита "i"
#1. N=2 в степени i
Так как N=32, отсюда следует, что i=5 битам.
#2. По аналогии выше. Только теперь N=8. А 8 - это 2 в степени 3.
то есть i=3. 3 бита.
#3. 64 символа. (смотреть задачу 1). 2 в 6 степени.
#4. Определим, сколько бит занимает все сообщение.
1/512 Мбайт = 1024/512 = 2 Кбайт. (1 Мбайт = 1024 Кбайт);
2 Кбайт = 2 * 1024 = 2048 байт (1 Кбайт = 1024 байт);
2048 байт = 2048 * 8 = 16384 бит.
Текст состоит из 2048 символов ⇒ занимает 16384 бит ⇒ один символ занимает 16384 : 2048 = 8 бит = 1 байт.
Если для хранения 1 символа алфавита используют 8 бит, согласно формуле (смотреть выше) 2 ^ 8 = 256 символов.
ответ: размер алфавита - 256 символов.
Объясняю: создаёте переменную, лучше целочисленную (int foo), после чего можно либо перевести число в строку и найти сумму цифр путём сложения двух символов (sum = bar[0] - '0' + bar[1] - '0'), либо с остатка от деления (конечно, это не очень красиво, но если известно, что число двузначное, то можно так: sum = (foo / 10) + (foo % 10)). Дальше банальная обработка условия: <если сумма чётная (if (sum % 2 == 0)), то увеличить число на 2 (foo += 2), иначе (else) уменьшить число на 2 (foo -= 2)>. После этого можете вывести результат на монитор (printf("%d\n", &sum)). :)
uses crt;
var a,b,c,d,ch:integer; sr:real;
begin
readln(ch);
a:= ch div 1000;
b:= ( ch div 100) mod 10;
c:= ( ch div 10) mod 10;
d:=ch mod 10;
if ch mod 2 = 0 then
writeln((a+b+c+d)/4)
else
writeln(sqr(a),' ',sqr(b),' ',sqr(c),' ',sqr(d));
readln;
end.