При таком подходе независимые

При таком подходе независимые (до известной степени) части, на которые распадается программа, принято называть модулями, а сам подход — модульным программированием. Этому подходу будут посвящены все оставшиеся параграфы. Но и при этом нам не удастся разобрать все особенности модульного программирования. Ограничимся лишь основными понятиями.
Продолжим исследование предыдущего примера. С точки зрения, на которую мы стали, в нем следует выделить, по меньшей мере, три модуля: основной модуль, в котором возникает потребность вычислить интеграл и вырабатываются исходные данные для этого вычисления, подпрограмму 14.3.2 (модуль вычисления интеграла по формуле трапеций), подпрограмму / (модуль вычисления подынтегральной функции). Кроме этих модулей, программа примера должна содержать связующие части, организующие совместную работу модулей.
Каждый модуль обладает своими рабочими ячейками. Так, мы уже условились, что основной модуль готовит исходные данные в ячейках аъ Ьъ % и ждет, что значение интеграла будет заслано в ячейку /х. Подпрограмма 14.3.2 использует ряд рабочих ячеек, в частности, ячейки а, Ь, п, х, у, /. В духе модульного подхода следует считать, что подпрограмма / составляется независимо от подпрограммы 14.3.2, что она берет значение аргумента, скажем, из ячейки х' и помещает значение подынтегральной функции в ячейку у', что адрес входа в эту подпрограмму (ее начальной команды) равен /н, а адрес выхода (ячейки, куда попадает управление по завершении вычисления функции) равен /к. Следовательно, ячейки /и и /к уже не относятся к подпрограмме /, их (наряду с ячейками х, у и др.) следует считать рабочими ячейками подпрограммы 14.3.2.
Как же должна выглядеть часть, связывающая подпрограммы 14.3.2 и /? Очевидно, в нее должны входить команды
операций для обращения из основного модуля к подпрограмме
14.3.2. Эта операция должна входить в часть, связывающую эти два модуля, которая может быть такой:

Но и это еще не все. Если основной модуль составляется независимо от подпрограммы 14.3.2, то в нем команда обращения к модулю вычисления интеграла имеет вид

где р1н и р1к — это адреса рабочих ячеек основного модуля, а многоточие обозначает адрес возврата в основной модуль (адрес, не известный нам, но известный составителю основного модуля). Тогда команду k + 5 следует заменить командой

а также предусмотреть засылку заготовки

в ячейку р1п (усложняя вид этой заготовки, можно сэкономить команду k, подобно тому, как команда q была исключена из части, связывающей подпрограмму 14.3.2 с подпрограммой /). Команда

аналогичная команде k + 3, должна войти в состав группы команд обращения к основному модулю.