Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 794; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.110.145 (0.011 с.) |