Самое принципиальное отличие: это тип носителя. Во флешках - это микросхема памяти или набор из таких микросхем, а обычный жесткий диск (не гибридный и не SSD) - это набор дисковых пластин со специальной поверхностью, восприимчивой к магнитному полю. А так данные разбиваются на биты или группы битов и хранятся в специальных ячейках носителя, а контроллер носителя определяет работу диска при поступлении команды, например, на чтение или на запись. Если нужно ответить более развернуто - смотрим в спецальных справочниках и энциклопедиях.
В данной задаче не учитываются затраты времени на сжатие (при передаче по сети оно чаще всего блочное). В реальности из-за этого передача начинается позднее из-за необходимости сжать первый блок данных. Но в этой задаче это не учитывается (по крайней мере не известны временные затраты на запаковку/распаковку блока). На современных машинах с данной скоростью передачи данных по каналу -- это время ничтожно мало.
Итак. Объём сжатого файла: 0.30 * 10 Мбайт = 3Мбайт. Время передачи данных: 3 Мбайт / 218 бит/с = 3 * 1024*1024*8 бит / 218 бит/c = 115439.55 секунд
Время передачи исходного файла: 10 Мбайт / 218 бит/с = 103 * 1024*1024*8 бит / 218 бит/c = 384798.53 секунд.
Итого: быстрее передача первым на 269358.97 секунд.
var
a,b,c,p,s:real;
flag:boolean;
begin
flag:=false;
repeat
write('Введите стороны a,b,c: '); readln(a,b,c);
if (a+b>c) and (a+c>b) and (b+c>a) and (a*b*c>0) then
flag:=true
else
writeln('Некорректные данные.');
until flag;
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln('S=',s);
end.