- •Программирование на языке высокого уровня
- •1 Часть Учебное пособие Москва 2007
- •Оглавление
- •1. Основы алгоритмизации
- •1.1. Алгоритмизация и требования к алгоритму
- •1.2. Блок-схемы алгоритмов
- •1.2.1. Способы записи алгоритма
- •1.2.2. Блок-схемы
- •1.2.3. Следование, ветвление, цикл
- •1.3. Этапы разработки программы
- •1.3.1. Язык программирования. Программа
- •1.3.2. Этапы разработки
- •1.4. Ошибки
- •1.4.1. Компилятор. Синтаксис и семантика
- •1.4.2. Типы ошибок
- •2. Алфавит языка Турбо Паскаль. Программа
- •2.1. Идентификаторы
- •2.2. Разделители
- •2.3. Специальные символы
- •2.4. Структура Pascal-программы
- •Пример простейшей программы на языке Pascal
- •3. Типы данных
- •3.1. Структура типов данных
- •3.2. Простые типы
- •3.2.1. Порядковые типы
- •3.2.1.1 Целые типы.
- •3.2.1.1.1. Встроенные процедуры и функции, применимые к целым типам
- •3.2.1.2. Логический тип.
- •3.2.1.3. Символьный тип.
- •3.2.1.4. Перечисляемый тип.
- •3.2.2. Вещественные типы
- •3.3. Константы и переменные
- •3.4. Преобразование типов
- •4. Операторы
- •4.1. Ввод данных
- •4.2. Вывод данных
- •4.3. Составной оператор
- •4.4. Условный оператор
- •4.5. Операторы циклов
- •4.5.1. Оператор for
- •4.5.2. Оператор while
- •4.5.3. Оператор repeat
- •4.5.4. Стандартные функции для циклов
- •4.6. Оператор выбора case
- •5. Массивы
- •5.1 Определение массива
- •5.2. Ввод/вывод одномерного массива (вектора).
- •5.3 Типизированные константы – массивы
- •5.4. Сортировка массивов (ранжирование)
- •6. Процедуры и функции
- •6.1. Подпрограммы
- •6.2. Параметры. Глобальные и локальные описания
- •6.3. Процедуры
- •6.4. Функции
- •6.5. Процедура exit
- •6.6. Рекурсия
- •6.7. Директивы подпрограмм
- •6.8. Открытые массивы
- •7. Записи
- •7.1.Определение и правила записи
- •7.2. Оператор присоединения
- •7.3. Записи с вариантами (экономия пространства)
- •8. Множества
- •8.1. Понятие множества
- •8.2. Конструктор множества
- •8.3. Операции над множествами
- •8.4. Примеры программ, использующих множества.
- •Литература
2.1. Идентификаторы
Идентификатор – любая последовательность символов, удовлетворяющая требованиям:
-
Может состоять из латинских букв (стр. и проп.), цифр 0..9,знака подчеркивания;
-
Может начинаться только с буквы или знака подчеркивания;
-
Не должна совпадать с зарезервированным словом;
-
Длина может быть произвольной, но значащими являются только первые 63 символа.
2.2. Разделители
Разделитель – используется только для отделения др. от др. идентификаторов, чисел, зарезервированных слов. В качестве разделителя можно использовать:
-
Пробел (код 32);
-
Любой управляющий символ (коды 0..31);
-
Комментарий.
Комментарий заключается в фигурные скобки {}, (* *).
2.3. Специальные символы
Специальные символы – символы, выполняющие в языке определенные функции, их 3 категории:
-
Знаки пунктуации,
-
Знаки операций,
-
Зарезервированные слова.
Таблица 1. Знаки пунктуации.
Знак |
Применение |
{ } |
Скобки, комментарии |
(**) |
Скобки, комментарии |
[ ] |
Выделение индексов массивов, элементов множеств |
‘ |
Апостроф для выделения символа или строковой const |
:= |
Знак присвоения значения переменной |
; |
Разделение операторов и объявлений |
: |
Отделение переменной или типизированной const от типа или метки оператора |
= |
Отделение идентификатора типа от описания типа или типизированной const от ее значения |
, |
Запятая для разделения элементов списка |
… |
Разделение границ диапазона |
, |
Точка для: - обозначения конца программы; - отделения целой части от дробной в вещественных числах; - отделения полей в записи; - отделения идентификатора от имени модуля в котором он находится |
^ |
Обозначение типа указатель, значение величины по ее указателю или управляющего символа (коды 0-31) |
# |
Обозначение символа по его коду |
$ |
Обозначение директивы компилятора или знак шестнадцатеричного числа |
Знаки операций предназначены для обозначения тех или иных арифметических действий
Приоритет |
Операция |
1 |
Not, @ |
2 |
*, /, div, mod, and, shl, shr |
3 |
+, -, or, xor |
4 |
=, <>, <, >, <=, >=, in |
Зарезервированные слова включают в себя служебные слова(begin, end, div и т.д.) и имена директив (external, forward и т.д.).
Неиспользуемые символы (%, “ и т.д.) не используются в Т-П, но могут использоваться в комментариях
2.4. Структура Pascal-программы
Для того чтобы Pasсal-компилятор правильно понял, какие именно действия от него ожидаются, ваша программа должна быть оформлена в полном соответствии с синтаксисом (правилами построения программ) этого языка.
Приступим же к изучению этих правил.
Любая Pascal-программа может состоять из следующих блоков (напомним, что квадратными скобками здесь и далее помечены необязательные части):
program <имя_программы>;
[ uses <имена_подключаемых_модулей>;]
[ label <список_меток>;]
[ const <имя_константы> = <значение_константы>;]
[ type <имя_типа> = <определение_типа>;]
[ var <имя_переменной> : <тип_переменной>;]
[ procedure <имя_процедуры> <описание_процедуры>]
[ function <имя_функции> <описание_функции>;]
begin {начало основного тела программы}
<операторы>
end. (* конец основного тела программы *)
Сразу же необходимо сделать важную оговорку: поздние версии компиляторов языка Pascal уже не требуют указывать название программы, то есть строку
program <имя_программы>;
вообще говоря, можно опустить. Но это возможно только в том случае, если вся программа содержится в одном модуле-файле. Если же программа состоит из нескольких самостоятельных кусков - модулей (см. лекцию 13), то каждый из них должен иметь заголовок (program или unit).
Любой из перечисленных необязательных разделов может встречаться в тексте программы более одного раза, их общая последовательность также может меняться, но при этом всегда должно выполняться главное правило языка Pascal: прежде чем объект будет использован, он должен быть объявлен и описан.