Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Структура программы на Free Pascal.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Любая программа на языке Pascal имеет следующую структуру:
// Раздел описания программы program _1; // _1 – название программы
uses // Подключение модулей (например, CRT, Graph, Strings и др.)
const // Описание констант, определяемых на этапе компиляции type // Описание пользовательских типов var // Описание переменных label // Описание меток
procedure …; // Описание подпрограмм – процедур и функций function …;
// Раздел реализации Begin // Тело программы (операторы) End.
Программа подразделяется на 2 раздела: - Раздел описания (interface), где помещаются все данные, необходимые для правильной компиляции и организации взаимосвязей элементов программы. - Раздел реализации (implementation), где содержится непосредственно набор операторов для решения задачи по поставленному алгоритму.
Описание элементов программы.
program name; // name – имя программы, состоящее из [a..z, A..Z, 0..9, _] Нельзя, чтобы имя программы начиналось с цифры. После названия программы ставится точка с запятой ("; ").
uses CRT, Graph; Pascal имеет в своем составе набор библиотечных модулей, в которых определены служебные функции, например, функции для работы с экраном и функции для математических вычислений. Для использования этих функций необходимо указать требуемый модуль в секции "uses". Названия модулей указываются через запятую.
Для подключения стандартного (поставляемого с компилятором или со средой разработки) модуля необходимо указать его имя в секции uses; то же самое справедливо и для пользовательских модулей.
Const C = 10; C2 = C * 4 + 3;
Секция const определяет перечень констант с установленными значениями. Данная секция является глобальной, если она описывается в контексте программы (т.е. на самом верхнем уровне видимости), и локальной, если она описывается в контексте подпрограммы (видима только для подпрограммы и ее вложенных подпрограмм).
Константные выражения вычисляются компилятором без выполнения программы на этапе ее создания.
Type T1 = Integer; T2 = record A, B: T1; C: Real; end;
В процессе создания программ возникает необходимость создания собственного типа. Тип – это структура данных, отличная от стандартных; также, это множество значений и множество операций, которые можно выполнять над этими значениями, т.е. правила манипулирования данными. 1900..2014 – интервальный (_1, _2, _3) – перечисляемый array [1..12] of String – структурированный
Секция type определяет типы, созданные пользователем. После определения каждого типа ставится точка с запятой. Некоторые типы (например, Byte, Integer, String и др.) не разрешается переопределять.
Аналогично (как для const) определяется видимость секции type.
Var X, X2, X3: Integer; X4: T2;
Секция var определяет переменные, используемые в программе или подпрограмме.
В Pascal применяется строгая типизация переменных. Для того, чтобы использовать какую-то переменную, необходимо заранее определить ее имя и тип.
Явное описание: A, B: TData; Неявное описание: A, B: (_1, _2); Аналогично (как для const и type) определяется видимость секции var.
Label L1, L2;
Секция label определяет метки для безусловного перехода. При выполнении оператора goto происходит переход на метку, имя которой описано как в секции label, так и в теле программы или подпрограммы. Данный метод редко применяется на практике, так как структурированный язык программирования (каким является Pascal) подразумевает, что любой алгоритм можно реализовать на основе последовательного исполнения операций, ветвления и цикла. Единственное исключение – выход из 2 и более вложенных циклов; в таком случае использование оператора goto и секции label может быть оправдано.
procedure P1; function P2: Integer;
function имя(параметры): возвр. значение // заголовок раздел описания (const, type, var, label) begin // тело раздел реализации end;
В программе могут быть определены процедуры и функции (подпрограммы), при этом в разделе описания указываются их имена. Кроме того, процедуры и функции могут быть импортированы извне (например, из системных библиотек).
Раздел реализации – набор операторов, решающий задачу по поставленному алгоритму. Этот раздел ограничивается ключевыми словами begin и end ("операторные скобки") и содержит непосредственно набор операторов для решения задачи.
После описания раздела реализации ставится ключевое слово end. с точкой.
3. Типы данных. Понятие "переменная" и "идентификатор".
Основные свойства концепции типов языка Pascal: - Любой тип данных определяет множество значений, которые может принимать переменная, выражение или вырабатывать операция/функция. - Каждая операция или подпрограмма требует аргументов фиксированного типа и выдает результат фиксированного типа (строгая типизация).
Тип определяет: - возможные значения констант, переменных, функций, выражений; - внутреннюю форму представления данных в ЭВМ; - операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.
Все типы данных можно разделить на 4 основных класса: - скалярные: Значения не зависят от составных частей. Такие типы подразделяются на порядковые и вещественные. - порядковые: Значение элементов можно четко определить по количеству и порядку. Пример – Byte, Integer, подинтервалы (1..31), перечисление и т.д. В свою очередь, порядковые типы могут подразделяться еще на 6 подклассов: целый, символьный, логический, адресный, перечисляемый, интервальный.
- вещественные: числа с точкой (фиксированной или плавающей).
- структурированные: Такие типы представляют собой набор элементов скалярного либо структурированного типа. Пример – записи (record), массивы (array), множества (set), файлы (file).
- объектные: Типы, определяющие совокупность данных и методы их обработки.
- процедурные: Типы, определяющие набор операций, имеющих общий заголовок (типизированные указатели на процедуру/функцию).
Целые типы:
На 16-битных платформах тип Integer по размеру и значению совпадает с Smallint; на 32-битных – с Longint (т.е. размер Integer не гарантируется). То же самое справедливо и для Cardinal (Word и LongWord соответственно).
Компилятор Free Pascal по умолчанию использует 16-битный вариант.
Логический тип – Boolean, имеет 2 возможных значения: False или True. (False < True). В памяти данный тип занимает 1 байт. По умолчанию происходит сравнивание типа Boolean со значением True, т.е. формы записи if Bool = True then и if Bool then являются идентичными.
Операции not, and, or и xor над типом Boolean являются логическими, над другими порядковыми типами – битовыми.
Над переменными типа Boolean можно применять операции Ord, Succ, Pred, Inc, Dec.
Символьный тип – Char (AnsiChar – ANSI, WideChar – Unicode). К символу можно обратиться по имени ('a'), коду (#63) или порядку (Chr(63)).
Множество значений символьного типа есть множество символов, упорядоченных в соответствии с их ASCII-кодами. Любое значение символьного типа может быть получено с помощью стандартной функции Chr из его кода ASCII (Chr(32) = ' ').
Перечислимый тип определяет упорядоченное множество значений путем перечисления идентификаторов, обозначающих эти значения. Упорядочивание значений определяется порядком следования идентификаторов, определяющих эти значения (т.е. при перечислимом типе (_1, _2) будет принято _1 < _2; кроме этого, Ord(_1) = 0, Ord(_2) = 1).
Интервальный тип представляет собой поддиапазон значений из некоторого порядкового типа, называемого базовым (TData = 1..31, базовый тип – Byte).
Для порядковых типов применяются следующие функции: Ord: по значению перечислимого типа возвращает порядковый номер значения (например, код символа). Pred, Succ – возвращают предшествующее или последующее значение по значению порядкового типа. Low, High – возвращают наименьшее или наибольшее значение по перечислимому типу или переменной данного типа. . Вещественный тип - подмножество множества действительных чисел, которые могут быть представлены в формате с плавающей точкой.
Вещественные типы представляются в памяти компьютера как mE+p, где m – мантисса (целое/дробное с десятичной точкой), p – порядок (целое число). -36.142E+2 = -36.142 * 10^2 = -3614.2 7.25E-5 = 7.25 * 10^-5 = 0.0000725
Строковый тип: String. Позволяет создавать строковые массивы, состоящие из заданного числа символов. Каждый символ занимает 1 байт (в кодировке ANSI). Максимально допустимое число символов в строке – 255. Однако, при использовании нуль-терминированных строк это ограничение не применяется.
Строковый тип – последовательность символов с атрибутом "динамическая длина" (зависит от фактического количества символов во время выполнения программы) и с атрибутом "размер" (от 1 до 255). Текущее значение длины строки можно получить с помощью стандартной функции "Length". Для значений строкового типа определен лексикографический порядок (bc > ac, abc < ac, ab < aba). Символы строки доступны как элементы массива (т.е. запись S[1] является допустимой и возвратит первый символ в строке, если ее длина больше или равна 1). В символе с индексом "0" хранится длина строки.
В Pascal имеется тип PChar (PAnsiChar, PWideChar), который описывает "длинные строки" (или ASCIIZ-строки), у которых длина не указывается явно, а строка завершается символом #0.
Структурные типы.
Структурный тип данных представляет собой "объекты", содержащие сразу несколько значений, называемых элементами.
Структурный тип характеризуется типом (или типами) элементов, составляющих объект, и способом доступа к элементам.
Элементы объекта структурного типа сами могут иметь структурный тип (многоуровневая структуризация). Количество уровней структуризации не ограничено.
Массив – структурированный тип, содержащий фиксированное число элементов одного типа. В качестве индексного допускается любой порядковый тип, кроме Longint и ограниченных типов, основанных на нем (на 16-битной архитектуре). Стандартные функции Low и High выдают верхнюю и нижнюю границы массива соответственно.
Запись – структурированный тип данных, являющийся неоднородной неупорядоченной структурой с прямым доступом к компонентам. Компоненты записи называют полями записи.
Множество – всевозможные подмножества значений некоторого порядкового типа, называемого базовым. Базовый тип не может иметь более 256 возможных значений.
Type C = set of Char;
Ссылочные типы используются для описания указателей. Указатель – значение, задающее адрес другого значения в памяти.
PInteger = ^Integer;
Файл – линейная последовательность компонент некоторого типа. Тип компонентов файла (file of …) не может быть файловым типом, структурным типом, содержащим элементы файлового типа, и объектным типом. Количество компонент не фиксируется при определении файлового типа.
Процедурный тип предоставляет возможность использования переменных-подпрограмм. Type TFunc = function (X: Real): Real;
Переменные процедурного типа представляют собой указатель на процедуру/функцию.
Объектный тип введен для поддержки концепций объектно-ориентированного программирования (ООП).
Переменная – имя физического участка в памяти, в котором в каждый момент времени может находиться только одно значение. Содержимое этого участка может изменяться. Размер выделенной области однозначно определяется объявленным типом переменной. Типы переменных являются взаимозаменяемыми по правилу эквивалентности и правилу совместимости.
Идентификатор – имя объекта (установление соответствия объекта некоторому набору символов). Правила создания идентификаторов: - могут начинаться только с буквы или некоторых специальных символов (_) (кроме специальных идентификаторов меток); - может состоять из букв, цифр и знака подчеркивания; - при написании идентификаторов можно использовать строчные и прописные буквы (регистронезависимость); - между двумя идентификаторами должен стоять хотя бы 1 пробел или специальный символ (>, <,,).
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2016-08-26; просмотров: 923; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.012 с.) |