- Милая, на сколько кусков разрезать тортик,
на четыре или на шесть? - Режь на четыре, шесть я не съем!
Анекдотичный пример женской логики
- Резать к чёртовой матери!
Решительная фраза врачихи из к/ф Покровские ворота
Во всех современных языках программирования большие программы делятся на отдельные части (модули), которые не зависят друг от друга, поэтому их легче отлаживать, чем программу необъятных размеров. Другое преимущество модульного программирования состоит в реализации важнейшего принципа: «Никогда не пишите дважды один и тот же код!». Отлаженные модули могут быть легко присоединены к любой программе и будут работать там «без шума и пыли».
В отдельные модули обычно помещают процедуры и функции общего назначения, которые могут потребоваться во многих программах. Например, процедура Soundв наших программах воспроизводит звуковые файлы, функция GetRandom генерирует случайные числа в заданном интервале... У вас по мере написания программ также накопится множество таких полезных подпрограмм, которые есть смысл сгруппировать вместе и перенести в отдельный модуль.
Каждый класс (о классах речь пойдёт дальше) тоже желательно упрятать в отдельный модуль - как для удобства отладки и повторного использования, так и для сокрытия деталей реализации класса от посторонней публики.
Модульный принцип позволяет разрабатывать сложную программу по частям, что гораздо эффективнее и быстрее, чем «монолитное» приложение. Этот же принцип действует и на уровне каждого модуля, который и сам сложен из отдельных «кирпичей» программного кода - подпрограммам, которые в Delphi называются процедурами и функциями.
Подпрограмма - это часть программы, выполняющая некоторую последовательность действий (операторов) для решения какой-либо частной
задачи. Например, подпрограммы могут воспроизводить звук, генерировать числа, вычислять значения, делать паузу в программе - да что угодно! Обычно подпрограмма служит для разбивки большого куска кода на отдельные части, удобные для написания и отладки, а также для повторного их использования в разных частях программы. По структуре подпрограммы очень похожи на программы в миниатюре.
Примером модульного подхода может служить книга: она состоит из отдельных частей (томов), разбитых на главы. Сами главы разбиты на параграфы, абзацы, строки. А любой механизм состоит из отдельных узлов, а те, в свою очередь, - из деталей. И даже венец природы являет собой лучший образец модульного мышления Создателя нашего: человек - это совокупность отдельных органов (пищеварения, дыхания, кровообращения, слуха и других), что и позволяет лечить болезни узким специалистам (увы, не всегда успешно именно из-за своей узкой специализации).
Процедуры и функции очень похожи друг на друга, поэтому мы будем изучать их параллельно. Кстати говоря, в языке С процедур нет - только функции. Здесь роль процедур играют функции, не возвращающие значений. Именно этим принципиально отличаются процедуры и функции: процедура только выполняет свои операторы, а функция ещё и возвращает некоторое значение (вычисленное в ней) в ту точку программного кода, откуда она была вызвана.
Прежде чем использовать подпрограммы, их нужно объявить в разделе interface модуля (после объявления переменных) и описать в разделе implementation. Объявление представляет собой заголовок процедуры или функции, которые, естественно отличаются друг от друга.