Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Операции. Выражения

Читайте также:
  1. Вторая глава. Метафора – стилистический прием выражения экспрессивности в художественной литературе
  2. Выражения в PHP
  3. Выражения с переменными
  4. Дать определения и аналитические выражения для волнового сопротивления и добротности.
  5. Доходность и риск финансовой операции.
  6. Использование выражения "прототокос" ("первенец" или "первородный") Павлом
  7. Конкретные операции.

Язык Паскаль был разработан профессором Никлаусом Виртом в Швейцарском техническом институте в Цюрихе в 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), записями (recordend), объектами как своеобразным развитием записей (objectend). Особое место занимают процедурные (функциональные) типы, объединяющие какие-то множества процедур или функций, и ссылочные типы (указатели), которые бывают типизированные и нетипизированные (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 | Нарушение авторских прав


Читайте в этой же книге: Глоссарий | Краткий курс лекций | Хранение информации | Классификация структур данных | Безусловного перехода, | Лекция 11. Подпрограммы-функции. | Interface | Лекция 13. Ссылочный тип. | Лекция 14. Алгоритмы поиска и выборки. | Бинарный поиск |
<== предыдущая страница | следующая страница ==>
Операции над структурами данных| Лекция 3 Структура программы.

mybiblioteka.su - 2015-2024 год. (0.008 сек.)