Я никогда не чувствую себя слишком сильным. Если вы знаете, что ваши данные всегда будут в пределах фиксированного диапазона, то добавляйте накладные расходы на пересчет эпсилона при каждом расчете. Рассчитайте подходящий эпсилон один раз, затем сделайте так, чтобы ваш эпсилон был постоянным.

олкнулись с проблемой двойного сравнения типов данных:

if(p > pmax) then
begin
  Showmessage('');
end

Если оба значения равны 100 (p = 100 и pmax = 100), то оно также входит внутрь условия if.

Ответы на вопрос(2)

Ваш ответ на вопрос