Читайте также:
|
|
Язык Паскаль был разработан профессором Никлаусом Виртом в Швейцарском техническом институте в Цюрихе в 1968 – 1971 годах. Паскаль не был продуктом какого-то регулярного подхода к созданию языка, а появился в результате "творческого" акта. Создав Паскаль, Н. Вирт попытался объяснить, как это он сделал, но это уже было объяснение после выигранного сражения. Разработка принципов структурного программирования велась в те же годы, что, по мнению автора, позволяет связывать одно с другим. Во всяком случае, этот язык специально конструировался так, чтобы в нём нашли отражение самые фундаментальные понятия программирования в естественной, ясной и сжатой форме.
Язык Турбо Паскаль был создан фирмой Борланд (Borland) в 1983 году как расширение языка Паскаль.
В алфавит языка входят:
1. Латинские прописные и строчные буквы: A, …, Z, a, …, z.
2. Цифры от 0 до 9.
3. Символ подчёркивания "_". Из этих и только из этих трёх видов символов составляются слова (идентификаторы, имена). Слово всегда начинается с буквы, прописные и строчные буквы не различаются.
4. Простые специальные символы:
+ - * / = > < [ ] () { } .,:; ^ @ $ # '
Из некоторых пар этих символов образуются составные специальные символы, воспринимаемые как один символ:
<= >= <> := (* *) (..) ..
5. Пробельный символ. Этот символ является разделителем в языке. Он не может входить в состав слов и составных специальных символов.
Остальные символы клавиатуры могут входить в состав комментариев, а также символьных и строковых констант.
Слова языка подразделяются на следующие:
1. Ключевые (зарезервированные) слова – являются составной частью языка, имеют однозначно определённый смысл, изменить который в программе невозможно.
2. Стандартные директивы и имена – обозначают заранее определённые конструкции языка: дополнительные характеристики объектов языка, типы, константы, функции и процедуры. Их смысл можно изменять в программе, но нежелательно.
3. Пользовательские имена – используются для обозначения переменных, констант, типов, меток, подпрограмм, модулей и самой программы.
Полный набор ключевых слов представлен в таблице:
And | array | asm | begin | case | const |
Constructor | destructor | div | do | downto | else |
End | exports | file | for | function | goto |
If | implementation | in | inherited | inline | interface |
Label | library | mod | nil | not | object |
Of | or | packed | procedure | program | record |
Repeat | set | shl | shr | string | then |
To | type | unit | until | uses | var |
While | with | xor |
Стандартные директивы языка представлены словами:
Absolute | assembler | export | external | far | forward | index |
Interrupt | near | private | public | resident | virtual |
Некоторые стандартные типы языка:
Boolean | Byte | Char | Comp | Double | Extended | Integer |
LongInt | Pointer | Real | ShortInt | Single | Text | Word |
Некоторые стандартные константы языка: False и True.
Некоторые стандартные переменные языка: Input, Output, RandSeed.
Имена некоторых стандартных функций и процедур модуля System:
Abs | Addr | Append | ArcTan | Assign | Assigned |
BlockRead | BlockWrite | Break | ChDir | Chr | Close |
Concat | Continue | Copy | Cos | CSeg | Dec |
Delete | Dispose | DSeg | Eof | Eoln | Erase |
Exit | Exclude | Exp | FilePos | FileSize | FillChar |
Flush | Frac | FreeMem | GetDir | GetMem | Halt |
Hi | High | Inc | Include | Insert | Int |
IOResult | Length | Ln | Lo | Low | MaxAvail |
MemAvail | MkDir | Move | New | Odd | Ofs |
Ord | ParamCount | ParamStr | Pi | Pos | Pred |
Ptr | Random | Randomize | Read | ReadLn | Rename |
Reset | Rewrite | RmDir | Round | RunError | Seek |
SeekEof | SeekEoln | Seg | Sin | SizeOf | SPtr |
Sqr | Sqrt | SSeg | Str | Succ | Swap |
Trunc | Truncate | UpCase | Val | Write | WriteLn |
Важное для программирования понятие типа основывается на трёх положениях: 1) тип – это множество допустимых значений какого-то данного; 2) с типом связано допустимое множество операций над данными этого типа; 3) с типом связан формат внутримашинного представления значений этого типа.
Паскаль – язык с сильной типизацией: 1) в нём имеется большой набор стандартных типов; 2) можно конструировать разнообразные новые типы; 3) любая переменная, функция, параметр подпрограммы должны быть описаны до их использования, то есть должен быть задан их тип.
Различают простые (скалярные) и сложные (структурные, структурированные) типы, а среди простых типов – порядковые и вещественные. Данные простых типов занимают только одну ячейку памяти с одним значением. Данные сложных типов могут занимать более одной ячейки памяти с разными значениями в них. Сложные типы составляются на основе одного или нескольких простых типов, а иногда – и на основе сложных.
Порядковые типы отличаются от вещественных тем, что каждый имеет ограниченное конечное число возможных значений. Эти значения можно упорядочить, то есть сопоставить каждому значению целое число. Порядковые типы делятся на: целые (ShortInt, Byte, Integer, Word, LongInt), логический или булевский (Boolean – состоит из двух констант False и True), символьный (Char), перечислимый и ограниченный (последние два типа конструируются программистом). К данным всех порядковых типов применимы стандартные функции Ord, Succ и Pred и стандартные процедуры Inc и Dec, а к остальным типам они неприменимы.
Вещественные типы представлены стандартным типом Real, а также типами, введёнными в Турбо Паскале: Single, Double, Extended.
Сложные типы представлены: массивами (array of), строками как особым случаем массивов символов (string), файлами (текстовыми – Text, типизированными – file of, бестиповыми – file), множествами (set of), записями (record … end), объектами как своеобразным развитием записей (object … end). Особое место занимают процедурные (функциональные) типы, объединяющие какие-то множества процедур или функций, и ссылочные типы (указатели), которые бывают типизированные и нетипизированные (Pointer) и содержат адреса данных в оперативной памяти.
Для константы можно задавать имя – это повышает удобство программирования и косвенно защищает от ошибок. Тип констант при этом определяется по их значению.
Тип переменных обязательно задаётся в описании. Их значение при этом остаётся неопределённым. В Турбо Паскале введено новое понятие – типизированная константа. Фактически оно обозначает переменную, для которой задано начальное значение, то есть здесь можно констатировать использование неудачного термина: слово константа (неизменная) представляет изменяемую величину.
Подробнее смотри литературу: 2 – 13.
Операции. Стандартные функции. Выражения
Все операции в языке Паскаль делятся на четыре группы в соответствии с их приоритетами. Первый (высший) приоритет имеют унарные операции (@, +, -, not), второй приоритет – мультипликативные операции (*, /, div, mod, and, shl, shr), третий приоритет – аддитивные операции (+, -, or, xor), четвёртый (низший) приоритет – сравнения и принадлежность множеству (=, <>, >, <, >=, <=, in).
Операнды для каждой бинарной операции обычно должны быть одинакового типа. Разрешается только "смешивать" вещественный и целый тип (тогда целый операнд автоматически преобразуется в вещественный), символьный и строковый тип (символьный операнд автоматически преобразуется в строковый).
Один и тот же знак операции может использоваться для операндов разных типов, например: операция not для логического операнда задаёт логическое отрицание, а для целочисленного – побитовое отрицание; операция "+" для числовых операндов задаёт сложение, для строковых – сцепление, а для множеств – объединение.
Для арифметического деления специально введены две разных операции: "/" и div. Первая даёт вещественный результат независимо от типов операндов, а вторая – целый результат (остаток отбрасывается), причём операнды обязательно должны быть целые.
В языке Паскаль в вычислениях также можно использовать функции из стандартной библиотеки. Обычно, в общем случае, обращение к функции имеет вид F(X), где F – это имя функции, а X – её аргумент (фактический параметр), соответствующего типа. В качестве аргумента может использоваться константа, переменная, а также и выражение общего вида.
Обращение является целостным неразделяемым объектом и используется в качестве операнда наряду с константами и переменными. В этом случае вычисляется значение функции определённого типа, соответствующее значению аргумента, замещает собой обращение к ней и может использоваться в дальнейших вычислениях. Одиночное обращение, как и одиночная константа или переменная, представляет собой элементарное выражение.
Выражение, как формула из операндов, операций и скобок, вычисляется в следующем порядке: 1) подвыражения в самых вложенных скобках; 2) обращения к функциям; 3) операции в соответствии с их приоритетами. В языке Паскаль необходимо обратить внимание на высокий приоритет логических операций. Поэтому, например, запись на языке Паскаль математического двойного неравенства 4 < x < 8 в виде выражения 4 < X and X < 8 вызовет сообщение об ошибке несоответствия типов. Правильная запись выглядит так: (4 < X) and (X < 8).
Подробнее смотри литературу: 2 – 13.
Дата добавления: 2015-07-15; просмотров: 113 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Операции над структурами данных | | | Лекция 3 Структура программы. |