Введение. Структура программы. Типы данных
Паскаль – алгоритмический структурированный язык высокого уровня.
Все языки делятся на языки низкого уровня и языки высокого уровня. К языкам низкого уровня относятся машинные языки или ассемблеры. Языки высокого уровня: Бейсик, Паскаль, Си, Фортран, Алгол, ПЛ/1 и т.д.
Структура программы в зыке Паскаль
Общий синтаксис структуры программы
[<Заголовок>]
[USES <Список библиотек>;]
<Описательная часть>
BEGIN
<Исполняемая часть>
END.
Необходимо заметить, что в конце программы ключевое слово END обязательно заканчивается точкой.
Вид заголовка
PROGRAM <Имя>[(<Параметры>)];
Пример
PROGRAM Summa;
PROGRAM Calc(Input,Output);
Параметры программы использовались только в ранних версиях Паскаля и в Delphi игнорируются.
Описательная часть программы содержит описания меток, констант, пользовательских типов, переменных, процедур и функций.
Комментарии
В любое место в тексте программы могут быть вставлены комментарии. Комментарии должны быть заключены в фигурные скобки {…} или (*…*).
В Delphi также поддерживаются однострочные комментарии в стиле языка C, которые начинаются двумя слешами и заканчиваются в конце строки.
Пример
PROGRAM {Комментарий} Summa; // Программа
// вычисления суммы
Раздел описания переменных
Синтаксис
VAR
<Список имен 1>: <Тип 1>;
<Список имен 2>: <Тип 2>;
∙ ∙ ∙
<Список имен N>: <Тип N>;
<Список имен 1>, <Список имен 2>, …, <Список имен N> – списки имен переменных через запятую, <Тип 1>, <Тип 2>, …, <Тип N> – типы переменных.
Пример
VAR
Count:Integer;
A,B:Real;
Имена идентификаторов в языке Паскаль
Имена идентификаторов в языке Паскаль могут начинаться с латинской буквы или знака подчеркивания и содержать латинские буквы, цифры и знаки подчеркивания.
Пример
Count, x1, y2, Count_of_items
Имена идентификаторов могут иметь любую длину, но в разных версиях языка Паскаль значащими может являться только ограниченное количество первых символов, например, в DOS-версии значащими являются только первые 63 символа. Паскаль не чувствителен к регистру символов в именах, т.е., к примеру, имя Count можно записать как count или COUNT. В качестве имен нельзя использовать зарезервированные слова языка Паскаль, как, например, PROGRAM, BEGIN, END, VAR и т.д. В зависимости от версии Паскаля набор этих слов может изменяться. Например, в Delphi их около 65.
Типы данных в языке Паскаль
Общая классификация типов данных языка Паскаль представлена на следующем рисунке.
Порядковыми называются типы, которые для каждого значения такого типа позволяют получить:
· порядковый номер элемента (функция Ord);
· значение предыдущего элемента (функция Pred);
· значение следующего элемента (функция Succ).
Для порядковых типов определены также функции Low и High, которые возвращают минимальное и максимальное возможные значения.
Символьный тип: Char. Представляет отдельные символы, задаваемые в одинарных кавычках, например 'a', 'B', '9', '+' и т.д. Для символьного типа определена функция UpCase(C), которая переводит символ C (только один символ, для строковых значений функция не определена) в верхний регистр.
Логический тип: Boolean. Дополнительно существуют еще три логических типа, выполняющие ту же роль, но имеющие фиксированный размер: ByteBool – 1 байт, WordBool – 2 байта и LongBool – 4 байта). Может иметь два значения: True (истина) и False (ложь).
Примеры использования функций для порядковых типов
Ord('A')=65, Pred('D')='C', Succ(False)=True, High(Word)=65535, UpCase('n')='N'
Целые типы
Название | Знаковый | Размер | Возможные значения | |
Integer | да | DOS: 2 байта (16 битов) Delphi: 4 байта (32 бита) | –32768..32767 –2147483648..2147483647 | –215..215–1 –231..231–1 |
Cardinal | нет | Delphi: 4 байта (32 бита) | 0..4294967295 | 0..232 |
Shortint | да | 1 байт (8 битов) | –128..127 | –27..27–1 |
Smallint | да | 2 байта (16 битов) | –32768..32767 | –215..215–1 |
Longint | да | 4 байта (32 бита) | –2147483648..2147483647 | –231..231–1 |
Int64 | да | Delphi: 8 байтов (64 бита) | ≈ –9.2∙1018..9.2∙1018 263=9223372036854775808 | –263..263–1 |
Byte | нет | 1 байт (8 битов) | 0..255 | 0..28–1 |
Word | нет | 2 байта (16 битов) | 0..65535 | 0..216–1 |
Longword | нет | Delphi: 4 байта (32 бита) | 0..4294967295 | 0..232–1 |
Представления типа Integer (а также и некоторых других типов, которые будут рассмотрены в дальнейшем) зависит от платформы, на которой производится компиляция программы. Например, в 16-битной системе MS‑DOS этот тип занимает 16 битов памяти, а в среде Delphi, которая работает в 32-битной системе Windows, тип Integer имеет размер 32 бита. В зависимости от этого он позволяет представлять различные диапазоны целых чисел.
Некоторые типы (как Cardinal, Int64 и Longword) определены только для 32-битных программ в среде Delphi.
Вещественные типы
Название | Размер | Возможные значения | Количество значащих цифр |
Real | DOS: 6 байтов (48 битов) Delphi: как Double | ≈ 2.9∙10–39..1.7∙1038 | 11–12 |
Single | Delphi: 4 байта (32 бита) | ≈ 1.5∙10–45..3.4∙1038 | 7–8 |
Double | 1 байт (8 битов) | ≈ 5.0∙10–324..1.7∙10308 | 15–16 |
ExtENDed | 2 байта (16 битов) | ≈ 3.6∙10–4951..1.1∙104932 | 19–20 |
Comp | 4 байта (32 бита) | –263..263–1 | 19–20 |
Currency | Delphi: 8 байтов (64 бита) | ≈ –9.2∙1014..9.2∙1014 | 19–20 |
Тип Real применялся в ранних версиях языка Паскаль, в Delphi он работает как Double. Для обеспечения обратной совместимости в Delphi имеется тип Real48, который работает как старый Real.
Тип Comp представляет целые числа от –263 до 263–1, но не является порядковым, а реализован как вещественный тип.
Тип Currency – это вещественные числа с фиксированной запятой с точностью 4 десятичных разряда, фактически представляет числа от 263/104 до (263–1)/104, т.е. хранится как тип Comp, а при выполнении с ним операций автоматически делится на 104.
Раздел описания констант
Синтаксис
CONST
<Имя 1> = <Значение 1>;
<Имя 2> = <Значение 2>;
∙ ∙ ∙
<Имя N> = <Значение N>;
<Имя 1>, <Имя 2>, …, <Имя N> – имена описываемых констант, <Значение 1>, <Значение 2>, …, <Значение N> – константы или выражения-константы.
Пример
CONST
E = 2.7182818284590452354;
Str = 'Строковая константа';
HalfLen = (Length(Str)+1) div 2;
Выражения-константы
Выражения-константы могут являться либо константами, либо выражениями, в которых содержатся только константы и не могут употребляться переменные и функции, кроме следующих стандартных функций языка Паскаль: Abs, Chr, Hi, Length, Lo, Odd, Ord, Pred, Ptr, Round,
SizeOf, Succ, Swap, Trunc.
Исполнительная часть
Исполнительная часть программы на языке Паскаль начинается ключевым словом BEGIN, заканчивается словом END (с точкой) и содержит последовательность операторов, разделенных между собой точкой с запятой.
Лекция 2