- •Содержание
- •Часть 1. Основные понятия программирования §1.1. Этапы разработки программного обеспечения
- •§1.2. Основные сведения об алгоритмах Понятие алгоритма
- •Свойства алгоритма
- •Формы записи алгоритмов
- •Блок-схемы алгоритмов
- •§1.3. Языки программирования
- •§1.4. Паскаль и Object Pascal, Турбо-Паскаль и Delphi
- •Контрольные вопросы
- •Язык, оболочка и интегрированная среда разработки
- •Часть 2. Общие сведения о языке Паскаль §2.1. Алфавит и служебные слова
- •Описание общих конструкций языка
- •§2.2. Структура программы
- •§2.3. Разделы описаний Описание меток
- •Определение констант
- •Определение типов
- •Описание переменных
- •Контрольные вопросы
- •Часть 3. Простые типы данных Иерархия типов
- •§3.1. Целые типы
- •§3.2. Вещественные типы
- •§3.3. Логический тип
- •§3.4. Литерный тип
- •§3.5. Перечисляемый тип
- •§3.6. Диапазоны (интервальный тип)
- •Дополнительные типы в Delphi
- •Контрольные вопросы
- •Глава 4. Операторы языка Паскаль Выражения
- •§4.1. Оператор присваивания
- •§4.2. Ввод-вывод данных
- •§4.3. Составной оператор
- •§4.4. Пустой оператор
- •§4.5. Безусловный оператор перехода
- •§4.6. Условный оператор
- •§4.7. Оператор цикла с параметром for
- •§4.8. Оператор цикла с предусловием while
- •§4.9. Оператор цикла с постусловием repeat
- •§4.10. Оператор выбора case
- •Контрольные вопросы
- •Глава 5. Процедурное программирование §5.1. Функции
- •Параметры – значения
- •Параметры – переменные
- •Бестиповые параметры
- •§5.2. Процедуры
- •Правила использования подпрограмм
- •Рекурсия
- •Директивы
- •Процедурные типы
- •Пример использования подпрограмм
- •Контрольные вопросы
- •Глава 6. Структурированные типы данных
- •§6.1. Массивы
- •§6.2. Строки
- •§6.3. Записи
- •§6.4. Множества
- •Пример использования множеств
- •§6.5. Файлы
- •Установочные и завершающие операции
- •Операции ввода-вывода
- •Перемещения по файлу
- •Пример работы с файлом
- •Обработка ошибок ввода-вывода
- •Специальные операции
- •Пример объединения двух файлов
- •Текстовые файлы
- •Стандартные текстовые файлы
- •Файлы без типа
- •Контрольные вопросы
- •Глава 7. Динамические структуры данных §7.1. Динамические переменные
- •§7.2. Указатели
- •Работа с динамическими переменными
- •Пример двухсвязанного циклического списка
- •Указатели без типа
- •Контрольные вопросы
- •Глава 8. Низкоуровневые возможности Паскаля §8.1. Язык Ассемблер
- •§8.2. Доступ к аппаратуре Доступ к памяти
- •Доступ к портам ввода-вывода
- •Работа по прерываниям
- •Контрольные вопросы
- •Глава 9. Модули §9.1. Основные понятия
- •§9.2. Использование модулей
- •§9.3. Стандартные модули
- •§9.4. Модуль Crt
- •Работа с экраном в текстовом режиме
- •Работа с клавиатурой
- •Работа со звуком
- •§9.5. Модуль dos
- •§9.6. Графический режим монитора
- •Контрольные вопросы
- •Глава 10. Введение в объектно-ориентированное программирование §10.1. История развития программирования
- •Понятие объекта
- •§10.2. Свойства объектов
- •Раннее и позднее связывание
- •§10.3. Виртуальные методы
- •Конструкторы и деструкторы
- •§10.4. Динамические объекты
- •Скрытые поля и методы
- •Контрольные вопросы
- •Литература
Определение типов
При составлении программ могут использоваться данные самых разнообразных типов, включая и достаточно сложные. От типа переменной зависит выделяемая для нее память и интерпретация данных в выделенной памяти.
В простейшем случае указывается стандартный тип при описании переменной, например, как в примере вычисления суммы. Однако в Паскале допускается определение своего типа отдельно, например определение комплексного типа:
Type Complex = Record
Re,Im:real;
end;
Начинается этот раздел с служебного слова Type и широко используется при работе с динамическими переменными и при объектном программировании.
Описание переменных
Перед началом выполнения программы под все переменные (за исключением динамических) должно быть выделено место в памяти ЭВМ. То есть все переменные, используемые в программе, должны быть описаны и транслятор «должен знать» о них. В некоторых языках программирования используются правила умолчания, так в Фортране тип и размер переменной определяется по первой букве имени, и часто этот раздел отсутствует: при встрече новой переменной по тексту программы для нее автоматически определяется размер и выделяется место (она заносится в таблицу). Но язык Паскаль разрабатывался как «надежный» язык программирования, с максимально возможным поиском формальных ошибок. Поэтому в нем все переменные, участвующие в программе, должны быть описаны в данном разделе.
Общий вид описания переменных выглядит следующим образом:
Var <имя1>[,<имя2>...] :<тип>; ...
Например:
Var x:real;
i,j,k:integer;
Так как по свойству массовости алгоритма переменные присутствуют в каждой программе, то в реальных программах всегда в наличии и этот раздел.
Раздел описания процедур и функций будет рассмотрен далее.
Контрольные вопросы
Какие группы символов входят в алфавит языка Паскаль?
Что такое служебные слова?
Приведите примеры метасимволов для описания общих конструкций языка программирования.
Из каких элементов состоит программа на языке Паскаль?
Что такое в структуре программы блок?
Какие бывают разделы описаний?
Как отделяются операторы друг от друга?
Как записываются комментарии?
Для чего используются идентификаторы (имена)?
Какие есть правила образования идентификаторов (имен)?
Что такое метка и для чего они используются?
Каким образом рекомендуется располагать конструкции программы для ее большей наглядности?
Каким образом описываются метки?
Какие различия между константами и переменными?
Как описываются константы?
Как определяется тип описываемых констант?
Что такое типизированные константы?
Как описываются типы?
Как описываются переменные?
Какой раздел описаний чаще всего присутствует в простых программах?
Часть 3. Простые типы данных Иерархия типов
В Паскале любая переменная характеризуется своим типом. Под типом здесь понимается множество значений, которые может принимать переменная, и множеством операций, допустимых над данной переменной.
Паскаль является типизированным, или статическим языком, то есть тип переменной определяется при ее описании и не может быть изменен в процессе выполнения программы. Транслятором контролируется допустимость операций с величинами данного типа, чем повышается надежность программы.
Паскаль имеет развитую систему типов. На основе стандартных типов можно конструировать данные произвольной структуры и сложности, адекватно отражающие информационную природу задачи, используя раздел описания типов.
Турбо-Паскаль наследует систему типов стандартного языка, но несколько расширен, что представлено на схеме рис. 3.1.
Рис. 3.1. Иерархия стандартных типов языка Паскаль.
Базовыми являются стандартные типы, на основе которых по определенным правилам образуются все остальные. Новые типы, появившиеся в Турбо-Паскале, отмечены звездочкой, в языке Delphi введены и еще дополнительные типы. Каждому типу соответствует свое имя, указываемое при описании переменных или введении новых типов.
