Задание 3. Архивация файлов WinRar 1. Запустите WinRar (Пуск >Все программы > WinRar).
2. В появившемся диалоговом окне выберите папку, в которой будет создан архив: Рабочий стол\Archives\Pictures.
3. Установите курсор на имя графического файла Зима.jpg.
4. Выполните команду Добавить. В появившемся диалоговом окне введите имя архива Зима.rar. Выберите формат нового архива - RAR, метод сжатия - Обычный. Убедитесь, что в группе Параметры архивации ни в одном из окошечек нет флажков. Щелкните на кнопке ОК для создания архива. Во время архивации отображается окно со статистикой. По окончании архивации окно статистики исчезнет, а созданный архив станет текущим выделенным файлом.
5. Аналогичным образом создайте архивы для файлов Рябина.bmp, Документ1.doc, Документ2.doc, Документ3.doc. Сравнительные характеристики исходных файлов и их архивов занести в таблицу 1.
6. Создайте самораспаковывающийся RAR – архив, включающий в себя текстовые и графические файлы.
7. Определите процент сжатия файлов и заполните таблицу_1. Процент сжатия определяется по формуле P=S/S0, где S – размер архивных файлов, So – размер исходных файлов.
Таблица 1
Архиваторы
Размер исходных файлов
WinZip
WinRar
Текстовые файлы:
1. Документ1.doc
2. Документ2.doc
3. Документ3.doc
Графические файлы:
1. Зима.jpg
2. Рябина.bmp
Процент сжатия текстовой информации (для всех файлов)
Процент сжатия графической информации (для всех файлов)
Для того, чтобы в последовательности из n элементов удалить последний путем вычеркивания каждого k-го элемента, n должно быть кратно k - это и есть условие успешного удаления. Запишем его в виде n mod k = 0, где mod - операция получения остатка целочисленного деления n на k.
Если n не кратно k, то будут вычеркнуты [n / k] элементов последовательности. Здесь [ ] - обозначение операция взятия целой части числа (антье), введенное в математику К. Гауссом.
После вычеркивания [n / k] элементов, в последовательности останется n₁ = n - [n / k] элементов. Если повторять этот процесс, то либо на шаге m будет вычеркнут последний элемент, либо количество элементов станет меньше k.
Рассмотрим приведенный в задании пример.
n=13, k=2
n mod k ≠ 0, поэтому полагаем n₁ = n - [n / k] = 13 - [13 / 2] = 13 - 6 = 7
n₁ mod k ≠ 0, поэтому полагаем n₂ = n₁ - [n₁ / k] = 7 - [7 / 2] = 7 - 3 = 4
n₂ mod k = 0, следовательно на третьем шаге вычеркивания мы получим нужный результат.
PascalABC.NET 3.4.2, сборка 1884 от 24.11.2018Внимание! Если программа не работает, обновите версию!begin
var (n, k) := ReadInteger2;
var m := 0;
while n >= k do
begin
if n mod k = 0 then
begin
Print(m + 1);
exit
end
else
begin
n := n - n div k;
Inc(m)
end
end;
Print(0)
end.
Пример13 23Вводить данные можно как через пробел, так и построчно
1) 119 > 0, пишем в прямом коде.
119 = 64 + 32 + 16 + 4 + 2 + 1 = 01110111.
-61 < 0, пишем в дополнительном коде.
Прямой код: 61 = 32 + 16 + 8 + 4 + 1 = 00111101
Инверсия: ~61 = 11000010
Дополнительный код: - 61 = ~61 + 1 = 11000011.
2) При сложении без знака при переполнении надо просто вычесть из суммы число 2^8 = 256.
70 + 200 = 270 = 270 - 256 = 14 = 8 + 4 + 2 = 00001110 + (cf = 1)
При этом устанавливается в 1 флаг переноса cf, который означает, что результат больше, чем 256.
3) При сложении со знаком при переносе 1 в разряд знака устанавливается в 1 флаг переполнения of.
55 + 176 = 231 = 128 + 64 + 32 +. 4 + 2 + 1 = 11100111 + (of = 1)
Но первая 1 в арифметике со знаком означает минус, поэтому получается
-(256-231) = - 25