* в-третьих,
*
в-третьих, использует меньше ресурсов памяти.
Первые два из указанных преимуществ, полагаем, очевидны. Что касается ресурсов памяти, то первому фрагменту, кроме буфера обмена для чтения данных с внешнего устройства, нужно лишь место для пары глобальных переменных, - и все! А вот рекурсивные вызовы описанной процедуры, кроме “всего”, еще и загружают программный стек, размер которого, между прочим, может оказаться недостаточным при чтении всего файла. Помимо данных об адресации, при каждом очередном вызове SumElem место в стеке занимает еще и локальная переменная a. Если переделать процедуру в функцию и “загнать” переменную в параметр-значение:
function SumElem (a : integer) : integer;
- то все равно в ресурсах мы ничего не выигрываем, поскольку и для параметра отводится место в стеке; использование же параметра-переменной
function SumElem (var a : integer) : integer;
ничем не лучше работы с глобальной переменной в итерационном механизме.
Пора уже сказать, что
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа