- •2 Введение в язык Паскаль Лекция 2
- •2.1 Историческая справка
- •2.2 Алфавит языка Паскаль
- •2.3 Переменные
- •2.4 Основные понятия языка Паскаль
- •2.5 Правила записи текста программы
- •Разделители
- •Правила записи
- •2.6 Система типов языка
- •2.7 Основные вычислительные структуры в Паскале
- •2.8 Выражения
- •2.9 Оператор присваивания
- •2.10 Ввод-вывод
- •2.11 Последовательное выполнение и составной оператор
- •2.12 Условный оператор
- •2.13 Оператор цикла с предусловием
- •2.14 Оператор цикла с постусловием
- •2.15 Оператор цикла с параметром
- •2.16 Примеры бесконечных циклов
- •2.17 Пустой оператор
- •2.18 Ограниченные типы
- •2.19 Функции
- •2.20 Примеры программ для задач без массивов
- •2.21 Более подробно о символьном типе
2.5 Правила записи текста программы
Для облегчения понимания текста программы и для упрощения трансляции требуется выполнение определенных правил написания текста программы. Нам потребуются следующие понятия.
Разделители
Пробел - литера, которой соответствует пустая позиция в строке текста (на бумаге, на экране), не имеет графического изображения.
В текстах программ допускаются фрагменты пояснительного текста - комментарии. Наличие комментариев не изменяет смысл программы и не влияет на ее выполнение. Комментарии представляют собой произвольную последовательность символов (не обязательно из алфавита языка, т.е. допускаются и русские буквы), заключенную в фигурные скобки. Пример: {это комментарий}. Комментарий может находиться между двумя любыми лексемами программы.
Конец строки - управляющая литера. Текст программы разбивается на строки, при работе редактора в конце строк помещается невидимая литера «конец строки».
Правила записи
Между двумя конструкциями языка (являющимися идентификаторами, числами или служебными словами) должен быть хотя бы один разделитель.
Разделители не должны быть внутри идентификаторов, чисел и служебных слов.
Если это не противоречит правилам 1, 2, то между двумя любыми лексемами может находиться любое число разделителей (транслятором они игнорируются).
2.6 Система типов языка
В Паскале используются несколько вычислительных структур. Данные в этих структурах принадлежат определенным типам. Элементы данных представляются переменными в программе. Поэтому любая переменная характеризуется своим типом. Под типом в данном случае понимается множество значений, которые может принимать переменная, и, как следствие, множество операций, допустимых над данной переменной.
Паскаль является типизированным и статическим языком. Это означает, что тип переменной определяется при ее описании и не может быть изменен. Такой подход способствует большей аккуратности и ответственности при составлении программ, делает их поддающимися автоматической (при компиляции) проверке на корректность и, в конечном итоге, приводит к более высокой надежности создаваемых программ.
Паскаль имеет развитую и изощренную систему вычислительных структур (типов). На основании небольшого числа стандартных типов программист может сконструировать данные произвольной структуры и сложности, адекватно отражающие информационную природу задачи.
Таблица 2.1 − Классификация предопределенных типов языка Паскаль
Группа |
Подгруппа |
Название |
Идентификатор |
Простой |
Скалярный |
Короткий целый |
ShortInt |
Байтовый |
Byte | ||
Слово |
Word | ||
Целый |
Integer | ||
Длинный целый |
LongInt | ||
Символьный |
Char | ||
Булев |
Boolean | ||
Вещественный |
Вещественный |
Real | |
С ординарной точностью |
Single | ||
С двойной точностью |
Double | ||
С повышенной точностью |
Extended | ||
Сложный |
Comp | ||
Составной (структурный) |
Строковый |
String | |
Массив |
Array | ||
Множество |
Set | ||
Файл |
File | ||
Запись |
Record | ||
Ссылочный |
Ссылочный |
Pointer | |
Процедурный |
Процедура |
Procedure | |
Функция |
Function | ||
Объектный |
Объектный |
Object |
Кроме указанных типов, программист может сам определить ограниченные, перечислимые и свои ссылочные типы.
Составные и ссылочные типы можно считать некоторыми правилами для построения более сложных типов из более простых. Процедурные типы в некотором отношении расширяют понятие подпрограмм, позволяя обращаться с подпрограммами, как с переменными.