1) Чтобы не было переполнения. s=a+b; Если s будет объявлена как integer, а a и b - как long integer (и значения a и b будут превышать диапазон integer), то ячейка s переполнится и s будет равно не пойми чему.
2) Для корректной работы s=a+b; s - integer; a,b - double - некорректно.
3) Чтобы не было неиспользуемой памяти. Если i изменяется от 1 до 10, а для переменной объявлен тип double, то при выполнении программы будут "висеть" незаполненные ячейки памяти, выделенные под этот тип.
s=a+b;
Если s будет объявлена как integer, а a и b - как long integer (и значения a и b будут превышать диапазон integer), то ячейка s переполнится и s будет равно не пойми чему.
2) Для корректной работы
s=a+b;
s - integer; a,b - double - некорректно.
3) Чтобы не было неиспользуемой памяти.
Если i изменяется от 1 до 10, а для переменной объявлен тип double, то при выполнении программы будут "висеть" незаполненные ячейки памяти, выделенные под этот тип.