Модули в Паскале по отношению к основной части программы напоминают подпрограммы (процедуры и функции). Но по определению они являются самостоятельными программами, ресурсы которых могут быть задействованы в других программах. Кроме того описание модулей происходит вне вызывающего приложения, а в отдельном файле, поэтому модуль – это отдельно компилируемая программа. Файл скомпилированного модуля (именно такой нужен для использования) будет иметь расширение предусмотренное средой программирования (например, .tpu, .ppu, .pcu).
Модули создаются, как правило, для обеспечения компактности кода, о чем приходиться заботиться крупным проектам. Стоит также отметить, что использование модулей в каком-то смысле снимает ограничение на сегментацию памяти, так как код каждого модуля располагается в отдельном сегменте.
Структура модуля выглядит так:
Далее мы поочередно рассмотрим каждый из данных разделов.
Имя модуля (Unit)
Имя модуля, следующее после ключевого слова Unit, должно совпадать с названием файла (без .pas), в котором находиться его код. Также с помощью имени, модуль подключается к другому модулю, либо к основной программе. Для этого необходимо указать служебное слово Uses, и перечислить через запятую список подключаемых модулей:
Как создать программу в PascalABC
Интерфейсная часть (Interface)
В интерфейсной части описываются заголовки объектов, к которым будут иметь доступ другие модули и программы. Это константы, типы, переменные и подпрограммы. Например, так может выглядеть интерфейсная часть модуля Search, содержащего в себе алгоритмы поиска элементов в массиве.
1
2
3
4
5
6
unit Search;
Interface
type arr = array [ 1 .. 5 ] of integer ;
var s : string ;
procedure binary_search ( x : integer ; Ar : arr; var s : string ) ;
procedure line_search ( x : integer ; Ar : arr; var s : string ) ;
Для объявления данного модуля, в программе нужно указать его имя:
После чего станет возможным использование всех описанных в интерфейсной части объектов.
Исполняемая часть (Implementation)
Начинается этот раздел со слова Implementation (реализация). Именно здесь нужно описать подпрограммы, объявленные в интерфейсной части. При этом в их заголовках разрешается не указывать формальные параметры, иначе они должны полностью совпадать с таковыми в интерфейсной части. Кроме этого, интерфейсная часть может содержать локальные (недоступные вызывающей программе) для модуля объекты.
Инициирующая часть
Инициирующая часть начинает свою работу до начала выполнения основной программы. В ней (между Begin и End), как правило, описываются операторы, предназначенные для разного рода вспомогательной работы. Данная часть может отсутствовать, либо не иметь в себе никакого кода. В первом случае нужно указать End с точкой, во втором – оставить пустое место внутри Begin и End.
Компиляция модулей
Использовать в программе можно лишь скомпилированные модули, имеющие расширение, предусмотренное вашей средой разработки приложений. Рассмотрим три наиболее популярные из них:
#1 PascalABC.NET — SCHOOL — Первая программа
Turbo Pascal
Итогом компиляции модуля в Turbo Pascal, будет файл с расширением .tpu (Turbo Pascal Unit), хранящий его код.
Free Pascal
После компиляции модуля в среде Free Pascal, создаются два файла с разными разрешениями: .ppu и .o. Первый содержит интерфейсную часть модуля, а второй (необходим для компоновки программы) – часть реализаций.
Pascal ABC.NET
Pascal ABC.Net во время компиляции модуля не генерирует код на машинном языке. В случае, если компиляция выполнена успешна код сохраняется в файле с разрешением .pcu.
Для сред программирования Turbo Pascal и Free Pascal предусмотрены три режима компиляции: Compile, Make и Build. В режиме Compile все используемые в программе модули должны быть заранее скомпилированы. Приложение в режим Make-компиляции проверяет все подключенные модули на наличие файлов с соответствующим для среды программирования разрешением (.tpu или .o).
Если какой-то из них не найден, то происходит поиск файла с названием ненайденного модуля и расширением .pas. Самый надежный из режимов – Build. Поиск и компиляция файлов (с расширением .pas) в данном режиме происходит даже тогда, когда модульные файлы уже имеются.
Пример
Создадим небольшой модуль, содержащий в себе процедуры двоичного и линейного поиска элементов в массиве. Код модуля:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
unit Search;
Interface
type arr = array [ 1 .. 5 ] of integer ;
var s : string ;
procedure binary_search ( x : integer ; Ar : arr; var s : string ) ;
procedure line_search ( x : integer ; Ar : arr; var s : string ) ;
Implementation
var a , b , c , i : integer ;
procedure binary_search ( x : integer ; Ar : arr; var s : string ) ;
begin
a := 1 ; b := 5 ; s := ‘NO’ ;
while a < = b do
begin
c := a + ( b — a ) div 2 ;
if ( x b := c — 1
else if ( x>Ar [ c ] ) then
a := c + 1
else
begin s := ‘YES’ ; break ; end ;
end ;
end ;
procedure line_search ( x : integer ; Ar : arr; var s : string ) ;
begin
s := ‘NO’ ;
for i := 1 to 5 do
begin
if ( Ar [ i ] = x ) then
begin
s := ‘YES’ ; break ;
end ;
end ;
end ;
end .
Весь этот код должен находиться в отдельном файле. Теперь напишем основную программу, в которую подключим наш модуль Search.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program modul_search;
uses Crt , Search;
var
mas : array [ 1 .. 5 ] of integer ;
n , j : integer ; str : string ;
y : char ;
begin
clrscr;
writeln ( ‘Enter the array elements’ ) ;
for j := 1 to 5 do
readln ( mas [ j ] ) ;
write ( ‘Enter number search: ‘ ) ; readln ( n ) ;
write ( ‘This array is ordered? (y/n) ‘ ) ; readln ( y ) ;
if y = ‘y’ then binary_search ( n , mas , str )
else line_search ( n , mas , str ) ;
write ( str ) ;
readkey;
end .
После компиляции файлов данное приложение должно исправно работать. Конечно, если вы, отвечая на вопрос “Этот массив упорядочен?” укажите программе ложную информацию, то и она может ответить тем же.
Источник: kvodo.ru
Задание на обработку файлов
В качестве примера задания на обработку файлов рассмотрим задание File48.
Напомним, что программу-заготовку для решения этого задания можно создать с помощью команды меню «Модули | Создать шаблон программы», кнопки или клавиатурной комбинации Shift+Ctrl+L. Эта заготовка будет иметь следующий вид:
uses PT4; begin Task(‘File48’); end.
После запуска данной программы на экране появится окно задачника:
В первой строке раздела исходных данных указаны имена трех исходных файлов (SA, SB и SC) и одного результирующего (SD). В последующих строках раздела исходных данных показано содержимое исходных файлов. Элементы файлов отображаются бирюзовым цветом, чтобы подчеркнуть их отличие от обычных исходных данных (желтого цвета) и комментариев (светло-серого цвета).
Поскольку размер файлов, как правило, превышает количество элементов, которое может уместиться на одной экранной строке, для отображения содержимого файла может отводиться более одной экранной строки. Слева от каждой строки с содержимым файла указывается порядковый номер файлового элемента, значение которого указано первым в этой строке (элементы нумеруются от 1).
Запуск нашей программы признан ознакомительным (и поэтому правильность решения не анализировалась), так как в ходе ее выполнения не было введено ни одного элемента исходных данных. При ознакомительном запуске раздел результатов не отображается, однако приводится пример верного решения, т. е. те числа, которые должны содержаться в результирующем файле при правильной обработке исходных файлов.
Ввод части исходных данных
Добавим в программу фрагмент, позволяющий ввести имена исходных файлов и связать с этими файлами соответствующие файловые переменные. Поскольку мы собираемся работать с четырьмя файлами одного типа, удобно предусмотреть массив для хранения всех файловых переменных:
uses PT4; var i: integer; s: string; f: array [1..4] of file of integer; begin Task(‘File48’); for i := 1 to 3 do begin read(s); Assign(f[i], s); end; end.
Как создавать программы в pascal abc
- Вы здесь:
- Главная
- Видеотека
- Программирование и сеть
- Языки программирования
- Pascal
- Pascal от TheMrDen3D
- Программирование на языке Pascal ( Паскаль, Pascal ABC ).
Программирование на языке Pascal ( Паскаль, Pascal ABC ).
Материалы
- Естествознание
- Физика
- Математика
- Химия
- Биология
- Экология
- Обществознание — как наука
- Иностранные языки
- История
- Психология и педагогика
- Русский язык и литература
- Культурология
- Экономика
- Менеджмент
- Логистика
- Статистика
- Философия
- Бухгалтерский учет
- Черчение и инженерная графика
- Материаловедение
- Сварка
- Электротехника и электроника
- АСУТП и КИПИА
- Технологии
- Теоретическая механика и сопромат
- САПР
- Метрология, стандартизация и сертификация
- Геодезия и маркшейдерия
- Информатика
- Языки программирования
- Алгоритмы и структуры данных
- СУБД
- Web разработки и технологии
- Архитектура ЭВМ и основы ОС
- Системное администрирование
- Создание программ и приложений
- Создание сайтов
- Тестирование ПО
- Теория информации и кодирования
- Функциональное и логическое программирование
- Редакторы и компиляторы
- Офисные программы
- Работа с аудио видео
- Работа с компьютерной графикой и анимацией
- Автоматизация бизнеса
- Музыка
- Природное земледелие
- Рисование и живопись
Источник: forkettle.ru