1. Кодировка была 16 битная, а стала 8 битная. Значит, объем сообщения сократился в 2 раза (16/8=2). Тогда имеем систему уравнений: Y = X - 480 и Y = X / 2, где Y - длина нового сообщения и X - длина старого сообщения. От сюда X - 480 = X / 2, тогда X/2 = 480 а Х = 960 - это биты. Тогда, 960 / 16 = 60 символов. 2. Длина слова от 5 до 6 знаков по условию. Всего есть 2 знака (точка и тире - по условию). Тогда искомым количеством вариантов будет: количество всех возможных вариантов при 6 знаках плюс количество всех возможных вариантов при 5 знаках. Тогда ответ будет: 2ˆ6+2ˆ5 = 64 + 32 = 96.
А код верный? Судя по тому, что в условии цикла стоит знак <=, цикл будет работать до тех пор, пока i меньше или равно некоторого числа. То есть цикл должен остановиться, когда i станет больше выбранного числа (которое нужно поставить вместо многоточия). Но в цикле стоит операция уменьшения параметра i. То есть i будет только уменьшаться! Цикл будет бесконечным! Пример 1: i:=5; while i<=4 do begin writeln('Привет'); i:=i-1; end; Цикл не сработает ни разу, т.к. условие с самого начала неверное! Пример 2: i:=5; while i<=5 do begin writeln('Привет'); i:=i-1; end; Условие верное, программа "заходит в цикл", выполняет вывод текста, а затем уменьшает значение i на 1, т.е. i=4. Далее идет автоматическая проверка условия цикла, и оно снова верное: 4<=5! Идет снова выполнение всех операторов цикла, и опять уменьшение i на 1, то есть i=3. И снова условие цикла верное: 3<=5! И так далее. Теперь каждое следующее значение параметра i меньше предыдущего, а значит, и условие цикла всегда верное! Цикл никогда не остановится! Пример 3: i:=5; while i<=6 do begin writeln('Привет'); i:=i-1; end; И даже если вместо многоточия поставить число более 5, получим аналогичный результат: условие верное, программа "заходит в цикл", выполняет вывод текста, а затем уменьшает значение i на 1, т.е. i=5. Далее идет автоматическая проверка условия цикла, и оно снова верное: 5<=5! Идет снова выполнение всех операторов цикла, и опять уменьшение i на 1, то есть i=4. И снова условие цикла верное: 4<=5! И так далее. Теперь каждое следующее значение параметра i меньше предыдущего, а значит, и условие цикла всегда верное! Цикл никогда не остановится! Возможно, ошибка в условии цикла? Если записать while i>=3 do..., то цикл сработает 3 раза: при i, равном 5, 4, 3. Либо неверно указано действие в цикле: i:=i-1. Если записать i:=i+1, а вместо многоточия поставить i<=7, то цикл также сработает ровно 3 раза, т.к. i будет менять свое значение 5, 6, 7.
или цикл for