- •Курс лекций Язык программирования Turbo Pascal
- •Тема 1 «Языки программирования»
- •Тема 2 «Основные понятия языка»
- •2.1 Алфавит языка
- •2.2 Основные определения языка
- •2.3 Служебные слова
- •2.4 Стандартные имена
- •2.5 Идентификатор
- •2.5 Элементы данных
- •Тема 3 «Общая структура программы на языке Turbo Pascal»
- •3.1 Общая структура программы на Паскале.
- •3.2 Некоторые правила оформления программ
- •Тема 4 «Типы данных, выражения»
- •4.1. Типы данных
- •4.2 Целочисленные типы данных
- •4.3 Вещественные типы данных
- •4.4 Символьный тип данных
- •4.5 Булевский тип (Логический) данных
- •4.6 Перечисляемый тип.
- •4.7 Интервальный тип.
- •4.8 Выражения.
- •1. Умножение, деление;
- •3. Сложение, вычитание.
- •1) Арифметические операции;
- •2) Операции отношений;
- •3) Логические операции.
- •4.9 Объявление констант
- •4.10 Объявление переменных
- •Тема 5 «Операторы для записи линейных процессов»
- •5.1 Оператор присваивания
- •5.2 Оператор ввода числовых данных
- •5.3 Оператор вывода числовых данных
- •5.4 Вывод числовых данных с форматом и без формата
- •1. Вывод данных без формата.
- •2. Вывод данных с форматом.
- •Контрольные вопросы и задания
- •Тема 6 «Разветвляющиеся вычислительные процессы»
- •6.1 Типы разветвляющихся алгоритмов
- •6.2 Оператор выбора case
- •Тема 7 «Операторы цикла»
- •7.1. Типы циклических процессов
- •7.2 Цикл с известным числом повторений for
- •Оператор повтора for.
- •Домашнее задание:
- •7.3 Итерационные циклы
- •7.4 Оператор цикла с предварительным условием
- •7.5 Оператор цикла с последующим условием Repeat
- •Домашнее задание:
- •8.1 Модуль crt. (Процедуры и функции управления экраном)
- •8.2 Константы цветов.
- •Процедуры управления цветом.
- •Тема № 9: «Структурированные типы данных»
- •9.1. Массивы
- •9.2. Записи
- •9.2.1. Оператор присоединения
- •9.2.2. Записи с вариантами.
- •9.3. Множества
- •9.4. Строки
- •9.4.1. Основные операции
- •9.4.2. Доступ к элементам строковых данных
- •9.4.3. Пустой стринг
- •9.4.4. Функции преобразования
- •9.4.5. Стандартные процедуры и функции
- •Тема № 10: Работа с файлами
- •10.1. Доступ к файлам
- •10.1.1. Имена файлов
- •Инициация файла
- •10.2.Процедуры и функции для работы с файлами
- •10. 3. Текстовые файлы
- •Типизированные файлы
- •Нетипизированные файлы
- •Тема № 11: «Процедуры и функции»
- •11.1. Процедуры
- •11.2. Функции
- •Тема №12: Указатели и динамическая память.
- •12.1. Выделение и освобождение динамической памяти.
- •Тема № 13: Модули.
- •13.1.Компиляция модулей.
- •13.2. Стандартные модули.
- •13.2.1.Модуль crt.
- •13.2.2. Модуль Graph
- •13.2.3. Модуль Overlay
- •Задания для самостоятельной работы по теме «линейные алгоритмы»
- •Задания для самостоятельной работы по теме «разветвляющиеся алгоритмы»
- •Задания для самостоятельной работы по теме «циклические алгоритмы»
- •Задания для самостоятельной работы «векторы»
- •Задания для самостоятельной работы «строки»
- •Задания для самостоятельной работы «процедуры и функции»
- •Задания для самостоятельной работы «записи»
- •Задания для самостоятельной работы по теме «множества»
- •Задания для самостоятельной работы по теме «файлы»
- •Задания для самостоятельной работы по теме «модуль graph»
- •Задания для самостоятельной работы по теме «модули, определяемые пользователем»
9.2. Записи
Записи - это еще один структурированный тип данных, позволяющий хранить вместе переменные, имеющие различные типы данных. Поля записи - фиксированное количество компонентов записи. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.
Структура объявления записи такова:
<имя типа>=RECORD <список полей> END
Здесь <имя поля >-правильный идентификатор;
RECORD(запись), END(конец) - зарезервированные слова;
<список полей> - список полей; представляет собой последовательность разделов записи, между которыми ставится точка с запятой.
Каждый раздел записи состоит из одного или нескольких идентификаторов полей, отделяемых друг от друга запятыми. За идентификатором ставится двоеточие и описание типа поля (полей), например:
VAR Reference_book = RECORD
Surname,
Name,
Address,
City : STRING[20];
Post_Index : STRING[4];
Telephone : STRING[12];
END;
При обращении к отдельным полям указывается имя всей записи и имя отдельного поля, причем они разделяются точкой.
Например:
Reference_book.Surname :=’Иванов’;
9.2.1. Оператор присоединения
Оператор присоединения предназначен для более наглядной и эффективной организации работы с данными комбинированного типа и используется для доступа к полям записи. Оператор присоединения начинается со служебного слова WITH, далее следует имя записи и служебное слово DO. Операторы, содержащие имена полей записи, заключается в операторные скобки:
WITH <имя записи> DO
BEGIN
<операторы, содержащие имена полей записи>
END;
Например:
WITH Reference_book DO
BEGIN
Surname :=’Иванов’;
END;
9.2.2. Записи с вариантами.
Особой разновидностью записей являются записи с вариантами, которые объявляются с использованием зарезервированного слова CASE. С помощью записей с вариантами можно одновременно сохранять различные структуры данных, которые имеют большую общую часть, одинаковую во всех структурах, и небольшие отличающиеся части в различных структурах. Например, рассмотрим запись PERSON, расширяющую возможности записи Reference_book, за счет введения дополнительных полей:
TYPE
Person = RECORD
Surname,
Name,
Address,
City : STRING[20];
Post_Index : STRING[4];
Telephone : STRING[12];
CASE Hobby : (Computer, Music) of
Computer: (Type_Comp:STRING[20];
Mbyte :BYTE;
Compatible:BOOLEAN);
Music : Instrument : ARRAY[1..3] OF STRING[10];
END;
Дополнительное поле Hobby определяет хобби человека и может иметь разную структуру в зависимости от его интересов.
9.3. Множества
Наряду с записями и массивами в ТП 7.0 существует еще один структурированный тип данных - множество.
Множество - это наборы однотипных логически связанных друг с другом объектов. Количество элементов, входящих в множество, может меняться в пределах от 0 до 256 (множество, не содержащее элементов, называется пустым). Именно непостоянством количества своих элементов множества отличаются от массивов и записей.
Описание типа множества имеет вид:
<имя типа>=SET OF<баз. тип>
Здесь <имя типа>- правильный идентификатор;
SET(множество),OF(из)- зарезервированные слова;
<баз. тип> - базовый тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме WORD, INTEGER, LONGINT.
Для задания множества используется так называемый конструктор множества: список спецификаций элементов множества, отделяемых друг от друга запятыми; список обрамляется квадратными скобками.
Над множествами определены следующие операции:
* - пересечение множеств; результат содержит элементы, общие для обоих множеств;
[1,2]*[3.4]=[];
+ - объединение множеств; результат содержит элементы первого множества, дополненные недостающими элементами из второго множества:
[1,2]+[3,4]=[1,2,3,4];
- - разность множеств; результат содержит элементы из первого множества, которые не принадлежат второму:
[1..10] - [5..15]=[1..4];
= проверка эквивалентности; возвращает TRUE, если оба множества эквивалентны;
[1,2,3] =[1,2] - FALSE;
<> - проверка неэквивалентности; возвращает TRUE, если оба множества неэквивалентны;
[1,2,3]<>[1,2,2] - TRUE;
<= - проверка вхождения; возвращает TRUE, если первое множество включено во второе;
[X] <= [1..20], если Х -целое число из диапазона 1.. 20;
>= - проверка вхождения; возвращает TRUE, если второе множество включено в первое;
[1,2,3] >=[1,2] - TRUE;
IN - проверка принадлежности; первый элемент - выражение, а второй - множество одного и того же типа; возвращает TRUE, если выражение имеет значение, принадлежащее множеству:
3 IN [1..10,12] - TRUE
Дополнительно к этим операциям можно использовать две процедуры.
INCLUDE- включает новый элемент в множество.
INCLUDE (S,I)
Здесь S- множество, состоящее из элементов базового типа;
I - элемент, который необходимо включить во множество.
EXCLUDE - исключает элемент из множества
EXCLUDE (S,I)
Здесь S- множество, состоящее из элементов базового типа;
I - элемент, который необходимо исключить в множестве.
