Проверил у себя обе программы - всё работает, у Вас тоже должно работать.
Задание 1).
Program Summ_S;
var I, N, DENOMINATOR: integer; S, SUMM: real;
begin N:=1;
for I:=1 to 999 do begin if DENOMINATOR=128 then begin write('S = '+SUMM); break; end; DENOMINATOR:=N*2; S:=1/DENOMINATOR; // 1/1*2, 1/2*2, 1/4*2... N:=DENOMINATOR; SUMM:=SUMM+S; end; end.
Задание 2).
Program Massive;
var num_1, num_2, num_3, num_4, num_5, num_6, num_7, num_8, num_9, num_10, number: longint; i: integer; begin for i:=1 to 10 do begin write('Введите число: '); readln(number); case i of 1:num_1:=number; 2:num_2:=number; 3:num_3:=number; 4:num_4:=number; 5:num_5:=number; 6:num_6:=number; 7:num_7:=number; 8:num_8:=number; 9:num_9:=number; 10:num_10:=number; end; end; writeln('Введенные числа в обратном порядке: ' +num_10,num_9,num_8,num_7,num_6, num_5,num_4,num_3,num_2,num_1); end.
P.S Можно и по другому сделать, но я уже паскаль особо не помню.
4) ✔ префиксный длина А: 2, длина Б: 3, длина В: 1, длина Г: 3 Длина сообщения: 10 * 2 + 5 * 3 + 20 * 1 + 5 * 3 = 20 + 15 + 20 + 15 = 70 бит
Наиболее оптимальный код 4).
Если бы нужно было бы найти какое-нибудь оптимальное префиксное кодирование, можно было бы построить код Хаффмана. Выписываем частоты символов, а затем объединяем наименее часто встречающиеся символы, почлучая кодовое дерево.
А - 10, Б - 5, В - 20, Г - 5 А - 10, (БГ) - 10, В - 20 (А(БГ)) - 20, В - 20 (В(А(БГ)) - 40
Если в этой записи есть (XY), то к коду любой буквы из X приписываем слева 0, для любого символа из Y - 1. Начинаем с пустых кодов: (БГ) -> Б: 0, Г: 1 (А(БГ)) -> А: 0, Б: 10, Г: 11 (В(А(БГ)) -> В: 0, А: 10, Б: 110, Г: 111.
writeln(2*5.6*3.14);
end.