1) Ну изменение прежде всего в сторону уменьшения. (При увеличения растрового изображения качество картинки ухудшается)
Уменьшают для экономии места на диске или траффика конечного пользователя. К примеру если бы ВК сразу грузил полноразмерные картинки в ленте, то у тебя бы на 100~ постов улетало бы по 400-500 мегабайт. А так изображения сжимаются и у тебя уходит на 100 постов с картинками 20-30 мегабайт ~
2) Ну полезного для простых пользователей очень не много. А вот для рекламщиков, которые хотят привлечь людишек красивой картинкой, это отличное решение.
3) Насколько помню, для изменения внешнего вида кривых/объектов.
Пример на продукте - бананы
program v1;
var m,n,sum,t:integer;
st1:string[10];
begin
sum:=0; t:=0;
writeln('Здравствуйте');
writeln('Банан красного цвета стоит 2500, банан синего цвета стоит 3000, банан черного цвета стоит 3700');
writeln('Сколько купите бананов '); readln(n);
writeln('Введите цвет бананов '); readln(st1);
if (st1='Красного') or (st1='красного') or (st1='Красный') or (st1='красный') then sum:=3000*n;
if (st1='Синего') or (st1='синего') or (st1='Синий') or (st1='синий') or (st1='Синей') or (st1='синей') then sum:=2500*n;
if (st1='Черного') or (st1='черного') or (st1='Чёрного') or (st1='чёрного') or (st1='Черный') or (st1='черный') or (st1='чёрный') or (st1='Чёрный') then sum:=3700*n;
writeln('Сумма покупки ', sum);
writeln('Введите сумму'); readln(m);
t:=m-sum;
writeln('Возьмите сдачу ',t);
writeln('Всего доброго, приходите еще');
end.
var x1,x2,y1,y2:integer;
a,b:real;
begin
write ('Введите x1 и x2: ');
readln (x1,x2);
write ('Введите y1 и y2: ');
readln (y1,y2);
a:=sqrt (sqr (x1) + sqr (y1));
b:=sqrt (sqr (x2) + sqr (y2));
if a>b then writeln ('1-я точка ближе')
else writeln ('2-я точка ближе');
end.