Модульне програмування на Pascal: практичний приклад

08.03.2026 0 By AdminA

Вступ: навіщо використовувати модулі в Pascal

Модулі (units) у Pascal дозволяють структурувати код, відокремлювати інтерфейс від реалізації та повторно використовувати компоненти в різних проєктах. Для розробників, які працюють зі складнішими програмами або з навчальними проєктами, модульний підхід знижує кількість помилок та полегшує тестування.

Коротко про переваги

  • Чітке розділення функцій і даних між компонентами.
  • Легше читати й підтримувати великий код.
  • Можливість повторного використання модулів у нових проєктах.
  • Прискорення компіляції при мінімальних змінах у великих кодових базах.

Структура модуля в Pascal

Типовий unit складається з секцій interface та implementation. У секції interface оголошуються типи, змінні, константи та сигнатури процедур і функцій, які будуть доступні зовні. У implementation розміщується код реалізації цих процедур і додаткові допоміжні елементи.

Приклад простого модуля

Нижче — приклад unit, який реалізує базові операції з масивом чисел: обчислення середнього, максима та підрахунок позитивних значень.

unit ArrayUtils;

interface

function Average(const A: array of Integer): Real;
function MaxValue(const A: array of Integer): Integer;
function CountPositive(const A: array of Integer): Integer;

implementation

function Average(const A: array of Integer): Real;
var
  i, sum: Integer;
begin
  sum := 0;
  for i := Low(A) to High(A) do
    sum := sum + A[i];
  if Length(A) = 0 then
    Result := 0
  else
    Result := sum / Length(A);
end;

function MaxValue(const A: array of Integer): Integer;
var
  i: Integer;
begin
  if Length(A) = 0 then
  begin
    Result := 0; // або інше значення за замовчуванням
    Exit;
  end;
  Result := A[Low(A)];
  for i := Low(A)+1 to High(A) do
    if A[i] > Result then
      Result := A[i];
end;

function CountPositive(const A: array of Integer): Integer;
var
  i: Integer;
begin
  Result := 0;
  for i := Low(A) to High(A) do
    if A[i] > 0 then
      Inc(Result);
end;

end.

Головна програма, що використовує модуль

Після створення unit, у головній програмі потрібно підключити його через секцію uses. Ось простий приклад:

program TestArrayUtils;
uses
  ArrayUtils;

var
  data: array of Integer;
  avg: Real;
begin
  SetLength(data, 5);
  data[0] := 3; data[1] := -1; data[2] := 7; data[3] := 0; data[4] := 4;
  avg := Average(data);
  Writeln('Average: ', avg:0:2);
  Writeln('Max: ', MaxValue(data));
  Writeln('Positive count: ', CountPositive(data));
end.

Компіляція та запуск

  • Збережіть unit у файлі ArrayUtils.pas і головну програму в TestArrayUtils.pas.
  • За допомогою Free Pascal (fpc) компілювання виглядає так: fpc TestArrayUtils.pas.
  • Компілятор автоматично знайде і підключить unit, якщо він знаходиться в тій же директорії або в шляхах пошуку.

Поради для практичного використання модулів

  • Чітко визначайте інтерфейс: оголошуйте лише те, що потрібно зовнішнім користувачам.
  • Уникайте глобальних змінних у інтерфейсі — це ускладнює тестування та повторне використання.
  • Документуйте функції та їх очікувані параметри, особливо поведінку при порожніх або некоректних даних.
  • Розбивайте великі модулі на підмодулі за відповідальністю (наприклад: обробка файлів, алгоритми, інтерфейс користувача).
  • Тестуйте модулі окремо, перш ніж інтегрувати в основну програму.

Висновок

Модульне програмування в Pascal — простий і ефективний спосіб зробити код структурованим і підтримуваним. Навіть прості утиліти, винесені в окремі units, значно полегшують подальше розширення програми. Почніть з малого: виділіть в окремі модулі функціональність, яка має логічний зв’язок, і поступово нарощуйте архітектуру додатку.

Comments

comments