Pascal. Delphi. Lazarus. Структура программы на языке Паскаль

Структура программы на языке Паскаль в системах программирования Delphi и Lazarus. Консольное приложение

В данной теме рассматривается структура программы на языке Паскаль для наиболее распространенных видов приложений, которые хорошо подходят для изучения основ этого языка. Рассматриваются структуры программ для систем Lazarus и Delphi.


Содержание


Поиск на других ресурсах:




1. Виды программ в системе программирования Lazarus

В системе программирования Lazarus создание нового приложения начинается с вызова последовательности команд

File -> New...

В результате система откроет окно «New …» (рисунок 1), в котором во вкладке Project предлагается несколько видов проектов.

Lazarus. Окно выбора проекта. Вкладка Project.

Рисунок 1. Система Lazarus. Окно выбора проекта, модуля или элемента который будет создан. Вкладка Project

Предлагаются следующие основные виды проектов:

  • Application — проект, поддерживающий графический интерфейс Windows с использованием кроссплатформености и LCL (Lazarus Component Library — библиотека компонент Lazarus). Это аналог шаблона Windows Forms в других системах программирования;
  • Simple Program — простой шаблон для создания простых программ на языке Паскаль. Программы имеют вид командной строки;
  • Program — шаблон программы в виде командной строки с некоторыми дополнительными опциями;
  • Console Application — шаблон программы типа Console Application, основанный на использовании класса TMyApplication с возможностью его расширения;
  • Library — динамически загружаемая библиотека, которая размещается в файлах с расширением *.dll (Dynamic Link Library). Такая библиотека может добавляться к другим программам (*.exe — файлам) и не может запускаться автономно;
  • другие проекты.

 

2. Виды программ в системе программирования Delphi

Чтобы создать программу (проект) в системе программирования Delphi нужно выбрать последовательность команд

File -> New -> Others...

В результате откроется окно, изображенное на рисунке 2.

Delphi. Виды проектов. Вкладка Delphi Projects

Рисунок 2. Виды проектов в системе программирования Delphi

Здесь предлагаются следующие основные виды проектов (программ):

  • Console Application — консольное приложение, имеет классическую структуру программы. Это аналог шаблона Program или Simple Program в системе Lazarus. Такой вид приложения лучше всего подходит для изучения основ программирования на языке Паскаль;
  • VCL Forms Application — вид приложения, поддерживающего интерфейс Windows. Этот вид приложения базируется на использовании библиотеки VCL (Visual Component Library);
  • Dynamik Link Library (библиотека динамической компоновки) — это вид приложения, которое прилагается к другой программе в виде *.dll файла. В файлах *.dll формируются библиотеки функций, которые используются в других программах;
  • другие виды приложений.

 

3. Структура простейшего приложения в системах Lazarus и Delphi. Рисунок

Лучше всего для изучения основ программирования на языке Паскаль подходит приложение типа:

  • Simple Program в системе программирования Lazarus;
  • Console Application в системе программирования Delphi.

Такой вид приложения работает в режиме командной строки Windows. Для обеих систем структура простого приложения одинакова и содержит следующие основные разделы:

  • заголовок программы;
  • раздел подключения модулей, используемых в программе;
  • раздел описаний;
  • раздел операторов.

Из перечисленных разделов обязательным является раздел операторов. Все другие разделы (если это допускает программа) необязательны и могут быть опущены.

 

3.1. Заголовок программы (program)

Заголовок программы объявляется следующим образом

program ProgramName(parameters);

здесь

  • ProgramName — имя программы, которое задается программистом;
  • parameters — параметры, которые получает программа.

Чаще всего программа объявляется без параметров

program ProgramName;

Если программа получает параметры в виде потоков (файлов) ввода вывода то заголовок может быть, например, таким

program ProgramName(Output, Input, FileName);

 

3.2. Раздел подключения модулей (uses)

Этот раздел начинается с ключевого слова uses и имеет следующую общую форму

uses ModuleName1, ModuleName2, ..., ModuleNameN;

здесь

  • ModuleName1, ModuleName2, ModuleNameN – имена модулей, подключаемых к программе.

Например, при создании приложения типа VCL Forms Application в системе Delphi, раздел uses выглядит следующим образом

...

uses
  Windows, Messages, Variants, Classes, Graphics, Controls, Forms, Dialogs;

...

 

3.3. Раздел описаний

Раздел описаний состоит из нескольких частей, которые, в свою очередь, также описывают:

  • метки (label);
  • константы (const);
  • типы (type);
  • переменные (var);
  • процедуры и функции (procedure, function).

Все вышеприведенные разделы могут быть объявлены в произвольном порядке. Однако, рекомендуется следующий порядок следования разделов: label, const, type, var, procedure или function. Такой порядок соответствует логике построения программ на языке Паскаль.

Допускается повторение разделов label, const, type, var, procedure и function (примеры ниже).

Раздел операторов обрамлен операторными скобками begin … end и имеет следующий вид

begin
  ...
end.

На рисунке 3 изображена структура программы на языке Паскаль для консольного приложения.

Pascal. Структура консольного приложения

Рисунок 3. Структура консольного приложения на языке Паскаль. Объявление всех разделов

 

4. Пример консольного приложения, в котором объявляются произвольные элементы в разделе описаний

В примере демонстрируется возможность произвольного порядка следования разделов label, const, type, var, function, procedure. Рассматривается консольное приложение в системе программирования Delphi.

program Project1;

{$APPTYPE CONSOLE}

// Раздел uses следует первым и только один,
// следующие разделы могут следовать друг за другом
// в произвольном порядке
uses
  SysUtils;

// Некоторая функция - обращает строку
function ReverseString(s : string) : string;
var
  s_reverse : string;
  i: Integer;
begin
  s_reverse := '';
  for i := 1 to length(s) do
    s_reverse := s[i] + s_reverse;
  ReverseString := s_reverse;
end;

// Раздел описания переменных
var
  f:Integer;

// Раздел описания меток
label
  m1;

// Раздел описания констант
const
  Max = 220;

// Еще один раздел описания констант
const
  Min = 100;

// Еще один раздел описания переменных
var
  z : Char = 'z';

// Объявить раздел описания типов
type
  MyInt = Integer;

// Объявить переменную типа MyInt
var
  mi : MyInt = 288;

begin
  // Вывести значения объявленных констант
  Writeln('Max = ', Max);
  Writeln('Min = ', Min);

  // Вывести значения объявленных переменных
  Writeln('z = ', z);
  Writeln('mi = ', mi);

  // Вывести результат функции
  Writeln(ReverseString('ABCD'));

  Readln;
end.

Тестовый пример

Max = 220
Min = 100
z = z
mi = 288
DCBA

 


 Связанные темы