- •Р.К. Ахмадулин технология программирования
- •Оглавление
- •§1. Основные понятия
- •Основные символы языка Паскаль
- •Элементарные конструкции языка Паскаль
- •Примеры записи чисел и выражений на языке Паскаль
- •Вопросы для самопроверки
- •§2. Типы данных
- •Целые типы
- •Вещественные типы
- •Символьный тип
- •Логический тип
- •Скалярные типы, определяемые пользователем
- •Вопросы для самопроверки
- •§3. Операции и выражения
- •Приоритет операций и отношений в выражениях
- •Стандартные (встроенные) функции
- •Вопросы для самопроверки
- •§4. Структура программы
- •Комментарии
- •Директивы компилятора
- •Оформление исходного текста
- •Вопросы для самопроверки
- •§5. Переменные и константы. Оператор присваивания
- •Понятие константы
- •Понятие переменной
- •Оператор присваивания
- •Совместимость типов данных
- •Понятие типизированной константы
- •Вопросы для самопроверки
- •§6. Процедуры ввода и вывода
- •Процедуры вывода
- •Форматированный вывод
- •Процедуры ввода
- •Вопросы для самопроверки
- •§7. Условный оператор и оператор выбора. Оператор перехода
- •Условный оператор if
- •Понятие составного оператора
- •Оператор выбора
- •Оператор перехода
- •Вопросы для самопроверки
- •§8. Операторы цикла
- •Циклы с заданным числом итераций
- •Циклы с предусловием
- •Циклы с постусловием
- •Вопросы для самопроверки
- •§9. Пример использования циклов
- •Вычисление факториала
- •Вычисление суммы по заданной формуле
- •Вычисление суммы по формуле с заданной точностью
- •Вычисление максимального элемента последовательности
- •Вычисление длины последовательности элементов
- •Вопросы для самопроверки
- •§10. Массивы
- •Описание массива
- •Обращение к элементам массива
- •Многомерные массивы
- •Допустимые операции с массивами
- •Инициализация массива
- •Вопросы для самопроверки
- •§11. Алгоритмы сортировки
- •Сортировка выбором
- •Сортировка вставкой
- •Пузырьковая сортировка
- •Улучшенные сортировки
- •Вопросы для самопроверки
- •§12. Строковый тип
- •Описание строковых переменных
- •Операции над строками
- •Процедуры и функции для работы со строками
- •Вопросы для самопроверки
- •§13. Записи
- •Объявление записи
- •Обращение к записям
- •Оператор присоединения with
- •Записи с вариантами
- •Инициализация записи
- •Вопросы для самопроверки
- •§14. Множества
- •Описание множеств
- •Операции над множествами
- •Пример использования множеств
- •Множества как типизированная константы
- •Вопросы для самопроверки
- •§15. Процедуры и функции
- •Понятие процедуры и функции
- •Структура процедуры
- •Структура функции
- •Формальные параметры
- •Глобальные и локальные объекты
- •Вопросы для самопроверки
- •§16. Модули
- •Понятие модуля
- •Стандартные модули в Турбо Паскаль
- •Подключение модулей
- •Структура модуля
- •Вопросы для самопроверки
- •§17. Файлы
- •Понятие файла
- •Процедуры и функции для работы с файлами
- •Понятие буфера ввода-вывода
- •Вопросы для самопроверки
- •§18. Типизированные файлы
- •Описание типизированных файлов
- •Операции над типизированными файлами
- •Последовательный и прямой доступ
- •Вопросы для самопроверки
- •§20. Текстовые файлы
- •Описание типизированных файлов
- •Чтение и запись
- •Конец строки и конец файла
- •Дополнительные процедуры для работы с текстовыми файлами
- •Файлы Input и Output
- •Вопросы для самопроверки
- •§21. Ссылки и указатели
- •Понятие указателя
- •Описание указателей
- •Операции с указателями
- •Выделение и освобождение динамической памяти
- •Вопросы для самопроверки
- •Рекомендуемая литература
- •Технология программирования
- •625000, Тюмень, ул. Володарского, 38
- •625039, Тюмень, ул. Киевская, 52
Комментарии
Помимо описаний и операторов в программах на языке Паскаль могут использоваться комментарии.
Комментарии не выполняют никаких действий и используются только как некоторый поясняющий текст для программистов. Комментарии помещаются в фигурные скобки (« { » и « } ») и могут содержать произвольный набор символов (в т.ч. и буквы кириллицы). Компилятором комментарии игнорируются, поэтому они могут быть вставлены в любое место программы.
Пример:
var x: integer; {описали переменную}
begin
readln(x); {запрашиваем у пользователя значение x}
x:=2*x; {увеличиваем x в два раза}
writeln(x); {печатаем новое значение x на экране}
end.
Рекомендуется комментарии использовать для пояснения сложных блоков операторов, а также в тех случаях, когда исходный текст программы будет использоваться другими программистами.
Кроме того, комментарии могут оформляться с помощью скобок « (* » и « *) ».
Также стоит отметить, что компилятором игнорируется любой текст, записанный после точки (т.е. за программой).
Директивы компилятора
В текст программы могут быть вставлены специальные директивы для компилятора. Такие директивы задают тот или иной режим компиляции.
Директивы помещаются в скобки «{$ » и « } ». От комментариев они отличаются тем, что сразу же за открывающейся фигурной скобкой следует знак $. Внутри скобок указывается, какую опцию следует включить или отключить.
Подробнее с директивами компилятора знакомство будет осуществляться в процессе изложения материала. Здесь же приведем лишь несколько примеров.
Вспомним логические выражения. Не всегда такие выражения требуется вычислять полностью – в некоторых случаях результат может стать уже известным заранее. Например, рассмотрим следующее выражение:
(3=7) and ( sin(pi/7)*cos(5*pi/6)<4/7+0.03 )
Вычислив левую от ключевого слова and скобку, получим False. Далее, на первый взгляд, необходимо вычислить правую от and скобку. Но вспомним, что оператор and возвращает истину только в том случае, когда оба операнда истинны. Однако левый операнд ложен. Следовательно, получаем: результатом выражения будет False независимо от того, какой результат будет получен в правой от and скобки.
В Паскале вычисления логических выражений заканчиваются тогда, когда окончательное значение становится понятным. Т.е. для предыдущего выражения правая скобка вычисляться не будет. С одной стороны, это позволяет избежать ненужных вычислений, а следовательно, и ускоряет время выполнения программы. Но, с другой стороны, в практике можно столкнуться с ситуацией, когда логическое выражение необходимо вычислить полностью, независимо от того, известен ли уже конечный результат или нет (например, если в выражении осуществляется вызов какой-либо функции, которую обязательно необходимо выполнить).
Принудить компилятор выполнять логические выражения полностью может директива {$B+}. Вернуть затем компилятор к обычному режиму можно с помощью директивы {$B-}.
Пример:
var t: boolean;
begin
…
{$B+}
t := (3=7) and ( sin(pi/7)*cos(5*pi/6)<4/7+0.03 );
{$B-}
…
end.
В завершение пункта отметим, что в одних скобках можно перечислить через запятую сразу несколько директив компилятора: {$I-, Q+}.