Объяснение:
При работе на персональном компьютере довольно часто возникает необходимость уменьшить размер файла с целью экономии места на диске. Например, требуется перенести файлы с одного компьютера на другой на дискетах. Или нужно переслать большой файл по электронной почте - уменьшив его размер, можно сэкономить и время и деньги. Лучшее решение в таких случаях - создать так называемый архивный файл, или, проще говоря, архив. Это единый файл, в который для компактного хранения информации помещены в сжатом виде один или несколько исходных файлов.
Для работы с архивами предназначены специальные программы, которые называются архиваторами. С архиваторов можно упаковывать файлы в архивы и распаковывать их, а также просматривать содержимое архивов. Упаковка файлов в архив называется архивированием или архивацией, а их извлечение - разархивированием.
Существуют разные форматы архивов: ZIP, ARJ, RAR, CAB, TAR, LZH и др. Когда создается архивный файл, ему присваивается расширение, совпадающее с форматом архива. Например, файл с именем MyDoc.zip - это архив формата ZIP. Формат влияет на эффективность сжатия файлов; к примеру, архив формата RAR занимает на диске меньше места, чем архив формата ZIP, содержащий те же самые исходные файлы. Кроме того, эффективность зависит от типа файлов, упаковываемых в архив. Файлы картинок, имеющие расширение BMP, документы Microsoft Word удается сжать в два-четыре раза, текстовые файлы - приблизительно в два раза. Несколько хуже подвержены сжатию исполняемые файлы (с расширением EXE), а графические файлы, имеющие расширение TIF, практически не сжимаются.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
uses GraphABC;
type point=record
x,y:integer;
end;
procedure plitk(x,y,r:integer);
var p:array[1..9]of point;
a,da:real;
i:byte;
begin
a:=pi/2;
da:=pi/4;
for i:=1 to 9 do
begin
p[i].x:=x+round(r*cos(a));
p[i].y:=y-round(r*sin(a));
a:=a+da;
end;
polygon(p,9);
end;
var r,i,j,x,y,d:integer;
begin
r:=20;
y:=r;
while y<=windowheight do
begin
x:=r;
while x<=windowwidth do
begin
plitk(x,y,r);
x:=x+2*r;
end;
y:=y+2*r
end;
end
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!
begin
var a:=Range(13,99,13); a.Println;
Writeln('S=',a.Sum,', П=',a.Aggregate(Biginteger(1),(m,n)->m*n))
end.
Результат
13 26 39 52 65 78 91
S=364, П=316252525680