
- •Вопросы для подготовки к экзамену (1 семестp).
- •1972Г – Дейкстра – Книга о базисе и структурированном программировании.
- •Структурные уровни языка программирования. Уровни языка Паскаль. Особенности языка Паскаль.
- •_____________________________________________________________________________________Билет №26
- •1. Использовать процедуры с параметрами (чистые процедуры), за исключением явных случаев, когда параметры не нужны. Доводы в пользу использования чистых процедур:
- •2. Глобальные переменные в процедуре целесообразно использовать в след. Основных случаях:
- •1. Постановка задачи (спецификация задачи: в спецификации различают две существенно разные ее части: функциональную и эксплуатационную спецификацию.
Структурные уровни языка программирования. Уровни языка Паскаль. Особенности языка Паскаль.
5 уровней языка программирования:
1) программа;
2) предложения;
3) выражения;
4) слова;
5) символы языка (алфавит).
АЛФАВИТ:
Метаязык (для описания синтаксиса языка).
1) Бэкус-Науровы формы (БНФ) - строится с помощью рекурсии.
2) Расширенные БНФ - повторение циклическое.
3) Синтаксические диаграммы - графическое представление.
Основные символы: ASCII+ключевые слова.
ASCII:
<буква>::=A,B,C...a,b,c...z;
<цифра>::=1,2,3,4,5,6,7,8,9,0;
<специальный символ>::=*,/...
<ключевое слово>::=begin,end,if,then,else...
СЛОВА:
Константы и переменные.
Константа - это величина, которая не изменяет своего значения.
вещ. - 0.56;
цел. - integer (maxint=const=32767);
лог. true, false;
лит. '<символ>' или '<строка>'.
Переменные обозначаются именем:
<имя>::=<имя><буква>=<имя><цифра>.
ВЫРАЖЕНИЯ:
- правило для вычисления какого-либо значения.
Структура выражения: операнды, соединенные знаками операции.
1) Арифметические;
2) Вещественные;
3) Логические;
4) Литерные.
ПРЕДЛОЖЕНИЯ:
1) Описание:
var x,y:real; p,r:boolean; i,k:integer; l:char; S1:srting;
2) Оператор.
Особенность паскаля в том, что это очень строгий, структурированный язык, требующий точного изложения решения задачи для ее многократного решения при подстановки различных значений переменных, которые заданы в условий.
_____________________________________________________________________________________
Билет №10
Простейшие конструкции языка Паскаль. Основные символы, слова, выражения.
Символы, элементарные конструкции, выражения и операторы составляют иерархическую структуру, поскольку элементарные конструкции образуются из последовательности символов, выражения - это последовательность элементарных конструкций и символов, а оператор-последовательность выражений, элементарных конструкций и символов.
ЭЛЕМЕНТАРНЫЕ КОНСТРУКЦИИ - это минимальные единицы языка, имеющие самостоятельный смысл. Они образуются из основных символов языка.
Основные символы языка-буквы, цифры и специальные символы - составляют его алфавит.
ТУРБО ПАСКАЛЬ включает следующий набор основных символов:
1) 26 латинских строчных и 26 латинских прописных букв:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
2) “_” подчеркивание
3) 10 цифр:
0 1 2 3 4 5 6 7 8 9
4) знаки операций:
+ - * / = <> < > <= >= :=
5) ограничители:
. , ' ( ) [ ] (. .) { } (* *) .. : ;
6) спецификаторы:
^ # $
7) служебные (зарезервированные) слова:
AND MOD DIV CONST PROGRAM WHILE USES DOWNTO ARRAY TYPE CASE GOTO FUNCTION OF UNTIL IF DO FOR PROCEDURE OR ELSE XOR END THEN BEGIN NOT TO FORWARD REPEAT STRING INTEGER REAL TEXT
Кроме перечисленных, в набор основных символов входит пробел. Пробелы нельзя использовать внутри сдвоенных символов и зарезервированных слов.
Элементарные конструкции языка ПАСКАЛЬ включают в себя имена, числа и строки.
Имена (идентификаторы) называют элементы языка - константы, метки, типы, переменные, процедуры, функции, модули, объекты. Не разрешается в языке ПАСКАЛЬ использовать в качестве имен служебные слова и стандартные имена, которыми названы стандартные константы, типы, процедуры, функции и файлы.
Имя - это последовательность букв и цифр, начинающаяся с буквы. В именах может использоваться символ _ подчеркивание. Имя может содержать произвольное количество символов, но значащими являются 63 символа.
_____________________________________________________________________________________
Билет №11
Элементарные инструкции языков программирования. Особенности кодирования инструкции на язык Паскаль.
Инструкция ( англ. Statement ) - в программировании, команда языка программирования, которым задается определенный шаг процесса обработки информации на ЭВМ. Программа обычно состоит из последовательности инструкций.
Через определенное плутаниту в переводах с английского и собственно определенную разнообразие терминологий в языках программирования, часто statement переводят как оператор, хотя в англ. operator (+, -,% и т.д.) служит для обозначения операций над операндами, что породило немало шероховатостей в отечественной терминологии. Так в украинских и российских источниках можно встретить, например, перевод if-statement как инструкция if и как оператор if. В ряде переводов книг где англ.statement переводят как оператор, вместо англ.operator употребляют термин операция. Также для обозначения остальных инструкций (присвоение, вызов, и т.д.), что также сказывается как англ.statement в отечественной литературе ряд переводчиков употребляют иногда оператор, иногда выражение, иногда команда. Также при обозначении составных инструкций (if, if-else, while и др.). В отечественных источниках встречается термин конструкция (например, конструкция while).
Типы инструкций
Далее приведены основные типы инструкций. После двоеточия идет пример текст кода.
Простые инструкции
Присвоение : A := A + 1
Вызов : CLEARSCREEN()
Возвращение : return 5;
Безусловный переход : goto 1
Предположение : assert (ptr != NULL);
Составлены инструкции
Блок : begin integer NUMBER; WRITE ('Number?'); READLN (NUMBER); A := A * NUMBER end
Инструкция if: if A > 3 then WRITELN(A) else WRITELN("NOT YET"); end
Инструкция переключатель : switch (c) {case 'a': alert (); break; case 'q': quit (); break;}
Цикл с предусловием : while NOT EOF DO begin READLN end
Цикл из писляумовою : do {computation (& i);} while (i <10);
Цикл for : for A: = 1 to 10 do WRITELN (A) end
_____________________________________________________________________________________
Билет №12
Кодирование арифметических(+,-), логических(><=) и литерных(for, case,repeat) инструкций на язык Паскаль.
Логические операций в языках программирования имеют приоритет выше, чем операций умножения, сложения, вычитания, деления, потому при работе с ними необходимо использовать скобки, они имеют наивысшую степень приоритетности. Эти операций могут использоваться как при работе с присваивающим оператором, так и писаться непосредственно в условий какого-либо другого оператора, таких как case, for, repeat и других. Цикл for кодируется такими литерными инструкциями как for <переменная>:=<значению> to <до такого-то значения> do <операция>. Если операция одна, то можно не использовать операторные скобки begin end, если операций больше, то их использование обязательно. По окончанию цикла необходимо поставить “;” для того, что бы отделить данный оператор от других.
_____________________________________________________________________________________
Билет №13
Организация ввода данных из стандартного файла INPUT. Процедуры ввода.
Стандартная файловая переменная Input - это доступный только по чтению файл, связанный со стандартным файлом ввода операционной системы (обычно это клавиатура), а стандартная файловая переменная Оutput - это доступный только по записи файл, связанный со стандартным файлом вывода операционной системы (обычно это дисплей). Перед началом выполнения программы DOS файлы Input и Оutput автоматически открываются.
Для некоторых из стандартных процедур и функций, список которых приведен в данном разделе, не требуется явно указывать в качестве параметра файловую переменную. Если этот параметр опущен, то по умолчанию будут рассматриваться переменные Input или Output, в зависимости от того, будет ли процедура или функция ориентирована на ввод или на вывод. Например, Read(х) соответствует Read(Input,х) и Write(х) соответствует Write(Output,х). Всё из описания модуля System турбо паскаля
_____________________________________________________________________________________
Билет №14
Ввод данных из текстового файла в Турбо-среде.
1) Для того, что бы считывать файл необходимо указать путь к директорий, где находится файл и выделить участок памяти, задав ему текстовый тип данных. Далее уже из получившейся переменной текстового типа необходимо считать, преобразовывая данные в другой тип. Для начала считывания файла необходимо перевести курсор в начальное положение определенным оператором для данного ЯП. (reset в паскале) Данные из стандартного файла input вводятся посимвольно или построчно в зависимости от оператора ввода данных. Для того, что бы ввести посимвольно используем оператор read в паскале, для ввода построчно используем оператор readln. Можно считывать данные и существующей переменной текстового типа, задав в описаний переменных длину считываемой переменной, тогда при считывание будут считываться все элементы их переменной текстового типа. Далее будет учтен пробел до следующего символа или группы символов и будет считан следующей. При считывание этого следующего элемента должен быть учтен тип считываемых данных в месте задачи переменных. 2) Процедура ввода, на примере паскаля, как говорилось ранее - это read, readln в зависимости от того, что мы считываем: один единый символ или строчку целиков. Данные могут считываться в память компьютера как из файла, так и с клавиатуры в зависимости от задачи.
_____________________________________________________________________________________
_____________________________________________________________________________________
Билет №15
Вывод данных в текстовый файл в среде Турбо-Паскаль.
1) Для того, что бы вывести файл необходимо указать путь к директорий, где находится файл и выделить участок памяти, задав ему текстовый тип данных. Далее необходимо записать данные в данную текстовую переменную, а уже из нее в текстовый документ. Для начала записи файла его можно отчистить (или проще говоря перезаписать по новой) . Данные из переменной вводятся посимвольно или построчно в зависимости от оператора ввода данных. Для того, что бы вывести посимвольно используем оператор write в паскале, для вывода построчно используем оператор writeln. Можно считывать данные и существующей переменной текстового типа, задав в описаний переменных длину считываемой переменной, тогда при считывание будут записываться все элементы из переменной текстового типа. Д 2) Процедура ввода, на примере паскаля, как говорилось ранее - это write, writeln в зависимости от того, что мы считываем: один единый символ или строчку целиков. Данные могут выводиться как в текстовый файл, так и на устройство вывода(монитор, принтер…).
_____________________________________________________________________________________
Билет №16
Концепция структурного программирования. Принцип Дейкстры.
Концепция структурного программирования:
Структурное программирование - новый подход к разработке программ, возникший в 70-х годах как одно из прогрессивных направлений в современном программировании. Стержнем этого направления является создание ясных, легко понимаемых, программ - необходимого условия надежности и правильности программных продуктов.
Под разработкой программ будем понимать все этапы решения задачи, начиная с постановки задачи и кончая получением корректных (правильных) результатов на ЭВМ.
Появление структурного программирования оценивается как революционный шаг на пути создания методологии разработки качественных программ, учитывающей комплексные требования надежности, эффективности, работоспособности, правильности в условиях реальных ограничений на ресурсы в процессе разработки. Под ресурсами понимаются не только машинные ресурсы, но прежде всего человеко-временные ресурсы.
Важнейшими концепциями структурного программирования, направленными на получение качественных программ, являются:
1. Упорядочение и ограничение управляющих и информационных структур таким образом, чтобы структура программы и данных отражала структуру решаемой задачи. Другими словами, должен выполняться следующий принцип (Э. Дейкстра): соответствие текстуальной упорядоченности программы порядку вычислений.
2. Разработка структуры программы путем систематизированного пошагового уточнения (метода "сверху-вниз"), ограничивающего сложность разработки на каждом уровне иерархии до приемлемой.
3. Использование системы обозначений, которая облегчает разработку и преобразование управляющих структур в конечный программный продукт.
Большая часть существующих языков программирования при своем создании не ориентировалась на поддержку структурного программирования, хотя многие из них имеют соответствующие управляющие структуры и при введении ограничений на использование ряда средств прекрасно согласуется со структурным подходом.
_____________________________________________________________________________________
Билет №17
Основные правила композиции структурированных программ. Базисы Вирта и Дейкстры. Эквивалентность базисов.
Основные правила композиции структурированных программ.
Структурированные алгоритмы - это алгоритмы, которые строятся с использованием только трех правил композиции вычислительных действий (3 управляющие структуры):
- последовательные действия (следование);
- альтернативные действия (выбор);
- повторяемые действия (цикл).
Ограничение этими тремя правилами обеспечивает разработку алгоритмов и программ, удовлетворяющих принципу Э.Дейкстры, согласно которому текстуальная упорядоченность программ должна совпадать с порядком их выполнения.
Структурированные алгоритмы и программы легко понимаемы, модифицируемы, в них легче находить ошибки, по ним легче производить анализ правильности программ.
Управляющие структуры образуют базис. Базис Дейкстры: следование, выбор, цикл «пока». Базис Вирта: следование, выбор, цикл «до». Св-ва базиса:
- независимость (каждая из базисных структур не может быть представлена комбинацией 2-х других);
- полнота (любой алгоритм может быть осуществлен с помощью них);
- эквивалентность базисов (следование и выбор сохраняются, а циклы «до» и «пока» взаимозаменяемы).
_____________________________________________________________________________________
Билет №18
Последовательность действий. Особенность реализации в языке Паскаль.
Паскаль – компилятор, то есть, прежде чем начать исполнение программы, Паскаль полностью прочитывает исходный текст, написанный программистом, и составляет последовательность машинных кодов, выполняющую те действия, которые описал программист в hqundmnl тексте. Эта последовательность сохраняется в файл с расширением “.EXE” и является самостоятельным исполняемым файлом, который может быть запущен сам по себе, уже без участия Паскаля и, даже, на другом компъютере, на котором Паскаль может быть не установлен.
_____________________________________________________________________________________
Билет №19
Альтернативные действия. Альтернатива и полуальтернатива. Особенность реализации в языке Паскаль. Синтаксис и семантика.
Выбор из нескольких альтернатив. Реализация в Pascal.
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора - выражение любого порядкового типа (любого из рассмотренных, кроме типов REAL и STRING).
Структура оператора выбора такова:
CASE <ключ_выбора> OF <список_выбора> [ELSE <операторы>] END;
Здесь CASE, OF, ELSE, END - зарезервированные слова (случай, из, иначе, конец);
<ключ_выбора> - ключ выбора;
<список_выбора> - одна или более конструкций вида:
<константа_выбора> : <оператор>;
<константа_выбора> - константа того же типа, что и выражение.
<ключ_выбора>; <операторы> - произвольные операторы Турбо Паскаля.
Оператор выбора работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности операторов <список_выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом ELSE. Часть ELSE <оператор> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу.
_____________________________________________________________________________________
Билет №20
Повторяемые действия. Реализация итерационных циклов ПОКА и ДО в языке Паскаль. Синтаксис и семантика, особенность реализации.
В паскале повторяемые действия риализуюция при помощи циклов. Пока – это оператор while, после данного оператора пишется условие, которое не должно выполнятся до какого-то момента, далее пишется do. Когда условие выполнится цикл перестанет выполнятся и программа пойдет выполняться дальше.
While <условие> do <оператор> ; До – это оператор repeat until – повторять до какого-то условия, когда которое выполнится, выполнять программу дальше или выдать ошибку о его не выполнений.
Repeat <оператор> until <условие>;
_____________________________________________________________________________________
Билет №21
Реализация параметрического цикла в языке Паскаль. Синтаксис и семантика, ограничения при использовании.
Параметрический цикл for в паскале производит действие, которое заключено в его операторные скобки какое-то определенное количество раз, которое можно задать или до какого-то условия.
for <переменная>:=<значение> to <до значения> do <оператор или операция>;
_____________________________________________________________________________________
Билет №22
Выбор из нескольких альтернатив. Реализация в стандартном и Турбо-Паскале.
Выбор из нескольких альтернатив. Реализация в Pascal.
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора - выражение любого порядкового типа (любого из рассмотренных, кроме типов REAL и STRING).
Структура оператора выбора такова:
CASE <ключ_выбора> OF <список_выбора> [ELSE <операторы>] END;
Здесь CASE, OF, ELSE, END - зарезервированные слова (случай, из, иначе, конец);
<ключ_выбора> - ключ выбора;
<список_выбора> - одна или более конструкций вида:
<константа_выбора> : <оператор>;
<константа_выбора> - константа того же типа, что и выражение.
<ключ_выбора>; <операторы> - произвольные операторы Турбо Паскаля.
Оператор выбора работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности операторов <список_выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом ELSE. Часть ELSE <оператор> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу.
_____________________________________________________________________________________
Билет №23
Скалярные типы данных в языке Паскаль. Упорядоченные и неупорядоченные типы.
СКАЛЯРНЫЕ ТИПЫ ДАННЫХ в языке Pascal.
В основе тип переменной – мн-во значений, которые принимает переменная. С каждым типом связан набор операций.
Типы бывают:
- структурированными
- простыми
- указатели
- строки
- процедурные типы
- объекты
В свою очередь простые типы подразделяются на:
- стандартный
- определяемый (задается с помощью правил)
СТАНДАРТНЫЙ ТИП:
1) упорядоченный:
1. целый:
- integer -32768..+32767
- byte 0..255
- word 0..65535
- shortint -128..+128
- longint -2147483648..+2147483647
Стандартные процедуры и функции:
abs, chr, dec, inc, odd, random, sqr, sqrt
2. логический:
true/false (1/0)
3. литерный: ASCII – American Standard Code for Information Interchange
Стандартные процедуры и функции:
ord, upcase
4. перечисляемый:
Перечисляемый тип задается перечислением тех значений, которые он может получать. Каждое значение именуется некоторым идентификатором и располагается в списке, обрамленном круглыми скобками, например:
type
colors = (red, white, blue);
Соответствие между значениями перечисляемого типа и порядковыми номерами этих значений устанавливается порядком перечисления: первое значение в списке получает порядковый номер 0, второе - 1 и т.д. Максимальная мощность перечисляе¬мого типа составляет 65536 значений, поэтому фактически перечисляемый тип задает некоторое подмножество целого типа WORD и может рассматриваться как компактное объявление сразу группы целочисленных констант со значениями 0, 1 и т.д.
Использование перечисляемых типов повышает надежность программ благодаря возможности контроля тех значений, которые получают соответствующие переменные.
5. тип-диапазон:
Тип-диапазон есть подмножество своего базового типа, в качестве которого может выступать любой порядковый тип, кроме типа-диапазона. Тип-диапазон задается границами своих значений внутри базового типа:
<мин.знач.>..<макс.знач.>
Здесь <мин.знач> - минимальное значение типа-диапазона; <макс.знач> - максимальное его значение.
2) неупорядоченный:
вещественный.
Расширение для вещественного типа в Турбо-Паскале:
- real 11..12
- single 7..8
- double 15..16
- extended 19..20
- comp 19..20
_____________________________________________________________________________________
Билет №24
Структурный тип данных "массив". Реализация массивов переменной длины.
МАССИВЫ.
Массив – структурна переменная, все компоненты которой одного типа.
Свойства:
1) К любой компоненте можно обратиться. Она явно обозначена, прямой доступ.
2) Чисто компонент определяется при описании и в программе не меняется
3) Каждой компоненте сопоставляется индекс, который опр местом в массиве.
Типовые действия над массивами:
- ввод массива;
- просмотр элементов массива, поиск;
- накопление суммы, произведения;
- нахождение экстремума.
Описание типа массива задается следующим образом:
<имя типа> = ARRAY [ <сп.инд.типов>] OF <тип>
Здесь <имя типа> - правильный идентификатор;
ARRAY, OF - зарезервированные слова (массив, из);
<сп.инд.типов> - список из одного или нескольких индексных типов, разделенных запятыми; квадратные скобки, обрамляющие список, - требование синтаксиса;
<тип> - любой тип Турбо Паскаля.
В качестве индексных типов в Турбо Паскале можно использовать любые порядковые типы, кроме LONGINT и типов-диапазонов с базовым типом LONGINT.
Обычно в качестве индексного типа используется тип-диапазон в котором задаются границы изменения индексов.
В Турбо Паскале можно одним оператором присваивания передать все элементы одного массива другому массиву того же типа, например:
var
a,b begin
array [1. .5] of Single;
a := b;
end
После этого присваивания все пять элементов массива А получат те же значения, что и в массиве В. Однако над массивами не определены операции отношения. Нельзя, например, записать (if a=b then).
Сравнить два массива можно поэлементно.
_____________________________________________________________________________________
Билет №25
Правила записи программного модуля.
МОДУЛИ
Модуль - независимая часть программы, которая описывает абстрактное действие и к которому можно обращаться по имени. Структура модуля:
{<Абстрактное действие >}
<Заголовок>
<Блок> // <Блок> ::=<Раздел описаний>
<Составной оператор>
При проектировании используется 2 типа модуля: главный модуль и процедурный модуль (процедура). Структура главного модуля (с главного модуля начинается выполнение программы):
{Цель программы}
Program <имя> (<имена файлов>); //Перечислены имена файлов с входными и выходными данными программы.
Раздел описаний //Должен содержать определение типов входных, выходных данных задачи.
begin
Главный алгоритм
end.
Процедура - это вспомогательный алгоритм, который описывает некоторое абстрактное действие и к которому можно обращаться по имени.
Аппарат процедур в языках программирования состоит из двух частей: описание процедуры и вызов процедуры.
Описание процедуры (процедура) - это фрагмент программы, оформленный по определенным правилам и имеющий имя, по которому его можно вызвать.
Структура процедурного модуля (описание процедуры) (Выполняется процедура только при выполнении оператора процедуры, вызове ее из другого модуля):
{Цель, описание входных, выходных данных}
Procedure <имя> (<описание параметров>); //Содержит описания типов входных выходных данных процедуры.
Раздел описаний //Содержит описания внутренних данных процедуры.
begin
Алгоритм
end.
Процедура обязательно содержит имя, тело процедуры и может содержать или не содержать параметры, которые называются формальными параметрами.
<Описание входных формальных параметров>:=<список описаний переменных>
<Описание выходных формальных параметров>:=var<список описаний переменных>
В языке Паскаль существует два вида процедур: процедуры общего вида и функции. Результатом вычисления процедуры общего вида могут быть несколько переменных, как скалярного, так и структурного типа. Функция может вычислять только одно значение скалярного типа. Формальные параметры функции могут быть только аргументами (входными данными функции).
{Цель, описание входных, выходных данных}
Function <имя> (<описание параметров>): <тип>;
Раздел описаний
begin
Алгоритм //Должен содержать оператор, который присваивает результат имени функции.
end.
С точки зрения структурного программирования оператор процедуры является элементарным оператором наряду с оператором присваивания, т.е. рассматривается как однократное действие по преобразованию входных данных в выходные. Указатель функции рассматривается как одноместная операция в выражении.
Среди входных параметров процедуры может быть формальное имя функции (процедуры). Для описания типа этой функции в языке Турбо Паскаль существует
процедурный тип, который описывает заголовок этой формальной функции (процедуры).
Дпя того чтобы установилась такая связь формального и фактического процедурного параметра, необходимо перед описанием функции вставить директиву компилятора {$F+}. Параметры, предаваемые процедуре при вызове, называются фактическими параметрами.
Вызов процедуры включает следующие шаги:
- среди описаний процедур ищется процедура с именем <имя процедуры>;
- вместо формальных параметров подставляются (передаются) соответствуют фактические параметры;
- выполняется модифицированное тело процедуры;
- управление возвращается из процедуры к оператору, следующему за оператором процедуры.
*********************Вариант 2**************************************************************
МОДУЛИ
Стандартный Паскаль не предусматривает механизмов раздельной компиляции программы с последующей их сборкой перед выполнением. Разработчики Турбо Паскаля включили в язык механизм так называемых модулей.
Модуль - это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции) и, возможно, некоторые исполняемые операторы инициирующей части.
Модули представляют собой прекрасный инструмент для разработки библиотек прикладных программ и мощное средство модульного программирования. Важная особенность модулей заключается в том, что компилятор Турбо Паскаля размещает их программный код в отдельном сегменте памяти. Максимальная длина сегмента не может превышать 64 Кбайта, однако количество одновременно используемых модулей ограничивается лишь доступной памятью, что дает возможность создавать весьма крупные программы.
СТРУКТУРА МОДУЛЕЙ
модуль имеет следующую структуру:
UNIT <имя>;
INTERFACE
<интерфейсная часть>
IMPLEMENTATION
<исполняемая часть>
BEGIN
<инициирующая часть>
END.
Таким образом, модуль состоит из заголовка и трех составных частей, любая из которых может быть пустой.
ЗАГОЛОВОК МОДУЛЯ И СВЯЗЬ МОДУЛЕЙ ДРУГ С ДРУГОМ
Для правильной работы среды Турбо Паскаля и возможности подключена средств, облегчающих разработку крупных программ, это имя должно совпадать с именем дискового файла, в который помещается исходный текст модуля. Модули могут использовать другие модули. Предложение USES Может располагаться в обеих частях модуля (интерфейс, исполнительная).
ИТЕРФЕЙСНАЯ ЧАСТЬ
Объявление всех глобальных объектов модуля, а так же заголовков глобальных подпрограмм.
ИСПОЛНЯЕМАЯ ЧАСТЬ
Описание подпрограмм, объявленных в интерфейсной части, список формальных параметров можно опустить.
ИНИЦИИРУЮЩАЯ ЧАСТЬ
В инициирующей части размещаются исполняемые операторы, содержащие некоторый фрагмент программы. Эти операторы исполняются до передачи управления основной программе и обычно используются для подготовки ее работы. Например, в них могут инициироваться переменные, открываться нужные файлы, и т.п.