
- •Основные понятия языка программирования паскаль
- •Структурное программирование
- •Основные символы языка
- •Элементы языка
- •Интегрированная среда turbo pascal
- •Структура программы в turbo pascal
- •Определение типов
- •Операторы в программе
- •Операторные скобки
- •Операторы ввода
- •Оператор присваивания
- •Оператор условного перехода
- •Оперетор безусловного перехода
- •Организация циклов
- •Использование операторов условного и безусловного перехода
- •Цикл с параметром
- •Цикл с предусловием - цикл while
- •Цикл с постусловием - цикл repeat
- •Оператор выбора варианта
- •Концепция типов данных
- •Стандартные простые типы Целый тип
- •Операции над данными целого типа:
- •Действительный тип
- •Операции над данными действительного типа:
- •Логический тип
- •Символьный тип
- •Символьные строковые константы
- •Нестандартные простые типы (определяемые пользователем)
- •Перечисляемый тип
- •Ограниченный тип (диапазон, интервал)
- •Процедуры и функции
- •Описание процедур
- •Стандартные процедуры
- •Описание функций
- •Стандартные функции
- •Итерация и рекурсия
- •Побочный эффект рекурсии
- •Предварительное описание (ссылки вперед)
- •Регулярные типы Одномерный массив
- •Алгоритмы сортировки массивов
- •1. Метод пузырька (метод обменной сортировки с выбором)
- •Многомерные массивы
- •Упакованные массивы
- •Множественные типы
- •Свойства множеств
- •Операции над множествами
- •Комбинированные типы Описание записей и действия с ними
- •Оператор присоединения.
- •Записи с вариантами
- •Типизированная константа
- •Простая типизированная константа
- •Структурированная (сложная) типизированная константа Типизированная константа массива
- •Типизированная константа записи
- •Типизированная константа множества.
- •Преобразование типов
- •Неявные преобразования типов
- •Использование стандартных функций для преобразования
- •Явные преобразования типов
- •Эквивалентность типов
- •Совместимость типов
- •Файловые типы
- •Определение файлового типа
- •Структура файла
- •Имя файла
- •Описание файлового типа
- •Файловая переменная
- •Операции над файлами
- •Типизированные файлы
- •Ссылочные типы (указатели) Статические и динамические переменные
- •Ссылочные типы (указатели)
- •Удаление узла из стека:
- •Человек
- •Человек
- •Вставка
- •Динамические переменные
- •Процедуры создания и удаления динамических переменных
- •Динамические списковые структуры
- •Однонаправленные списки
- •Двунаправленные списки
- •Очереди
- •Деревья
- •Модульная система turbo pascal
- •Uses mod 1, mod 2, mod 3; (подключение трех модулей) Общая структура модуля
- •Использование идентификаторов модуля
- •Использование модуля в программе
- •Компиляция модулей
- •Системный файл turbo.Tpl
- •Стандартные модули
- •Модуль crt
- •Модуль dos
- •Модуль printer
- •Модуль overlay
- •Модуль string
- •Процедуры модуля graph
- •Графические процедуры
- •Координаты. Окна. Страницы
- •Линии и точки
- •Многоугольники
- •Дуги,окружности, эллипсы
Комбинированные типы Описание записей и действия с ними
Для работы с группой данных различного типа введено понятие записи.
В языке программирования Паскаль запись представляет собой совокупность ограниченного числа данных различного типа.
Примеры записей:
Данные о студенте:
Фамилия – массив символов,
Имя – массив символов,
Год рождения – целое число,
Название института – массив символов.
Формуляр книги в библиотеке:
Автор – массив символов,
Название – массив символов,
Год издания – целое число,
Издательство – массив символов,
Количество страниц – целое число,
Цена – действительное число.
Все данные можно объединить в одну группу и считать записью. Запись в целом и отдельные её элементы обозначаются именами.
К каждому элементу записи можно обратиться с помощью уточнённого имени. Оно содержит имя записи, а через точку – имя элемента.
Запись, как и другие данные, объявляется в разделе описаний и используется в разделе операторов.
Описание записи имеет следующий вид:
Type имя_типа = Record
Имя_элемента 1: тип;
Имя_элемента 2: тип;
…………
Имя_элемента n-1: тип;
Имя_элемента n: тип;
End;
Var имя_записи: имя_типа;
Здесь служебное слово Record (запись) выполняет роль открывающей операторной скобки, End – закрывающей операторной скобки. Внутри операторных скобок описываются элементы записи. Допускается вместо имени записи указывать список имён, то есть имена записей, разделённые запятыми.
Элементы записи вместе с их описанием называются полями записи.
Пример.
Список 1 Список 2
No Фамилия Оценки 1 ------------
1 ------------ (4 штучки 2 ------------
2 ------------ у каждого) 3 ------------
3 ------------ ………… 4 ------------
Type T = Record
N: Integer:
Name: Array [1..10] of Char;
Ball: Array [1..4] of Integer;
End;
Var C1, C2: T;
Здесь сначала введён тип записи Т, а затем в разделе переменных указано, что переменные С1 и С2 имеют тип Т.
Каждый элемент записи имеет своё описание:
N – переменная целого типа,
Name – массив из 10 символов (если фамилия содержит меньше 10 букв, то оставшиеся позиции заполняются пробелами),
Ball – массив из 4-х целых чисел (4 оценки за экзамен).
Допускается описание записи непосредственно в разделе переменных:
Var имя_записи: Record
Имя_элемента 1: тип;
Имя_элемента 2: тип;
…………
Имя_элемента n-1: тип;
Имя_элемента n: тип;
End;
Элемент записи используется в программе в том же самом смысле, как и обычная переменная. Таким образом, элемент записи можно указывать как в левой части оператора присваивания, так и в выражениях в правой части. Над элементами записи можно выполнять все действия, которые допустимы для данных его типа. Например, если тип элемента записи – целый, то можно выполнять все операции, допустимые для целых данных. Так, для рассмотренного примера (экзаменационной ведомости) над элементами записи можно, например, выполнить следующие операции:
а) ввести значения порядковых номеров
Read(C1.N);
Read(C2.N);
б) вычислить сумму первых двух оценок
Summa1 := C1.Ball[1] + C1.Ball[2];
Summa2 := C2.Ball[1] + C2.Ball[2];
Обращение к записи в целом, а не только к отдельным её элементам, допускается лишь в операторе присваивания. Слева и справа от знака присваивания при этом должны использоваться имена записей одинакового типа.