- •Конспект лекций по информатике
- •Организация данных в эвм и основы программирования
- •1. Основные понятия языка программирования паскаль
- •1.1. Структурное программирование
- •1.2. Основные символы языка
- •1.3. Элементы языка
- •1.4. Интегрированная среда turbo pascal
- •1.5. Структура программы в turbo pascal
- •1.6. Определение типов
- •1.7. Операторы в программе
- •1.7.1. Операторные скобки
- •1.7.2. Операторы ввода
- •1.7.3. Оператор присваивания
- •1.7.4. Условный оператор
- •1.7.5. Пример простой программы
- •1.7.6. Оперетор безусловного перехода
- •1.8. Организация циклов
- •1.8.1. Использование операторов условного и безусловного перехода
- •1.8.2. Цикл с параметром
- •1.8.3. Цикл с предусловием - цикл while
- •1.8.4. Цикл с постусловием - цикл repeat
- •1.9. Оператор выбора варианта
- •1.10. Расположение операторов в программе
- •1.11. Концепция типов данных
- •2. Стандартные простые типы
- •2.1 Целый тип
- •2.1.1. Операции над данными целого типа:
- •2.2. Действительный тип
- •2.2.1. Операции над данными действительного типа:
- •2.3. Логический тип
- •Var p, q, r : Boolean;
- •2.3.1. Алгебра логики в Паскале
- •2.3.2. Законы алгебры логики в Паскале
- •2.4. Символьный тип
- •2.4.1. Символьные строковые константы
- •3. Нестандартные простые типы (определяемые пользователем)
- •3.1. Перечисляемый тип
- •3.2. Ограниченный тип (диапазон, интервал)
- •4. Процедуры и функции
- •4.1. Описание процедур
- •4.2. Стандартные процедуры
- •4.3. Описание функций
- •4.4. Стандартные функции
- •4.5. Итерация и рекурсия
- •4.6. Побочный эффект рекурсии
- •4.7. Предварительное описание (ссылки вперед)
- •5. Регулярные типы
- •5.1. Одномерный массив, или переменные с индексами
- •Алгоритмы сортировки массивов
- •1. Метод пузырька (метод обменной сортировки с выбором)
- •2. Сортировка выбором
- •3. Метод Шелла
- •4. Метод Хoopа
- •5.2. Многомерные массивы
- •5.3. Упакованные массивы
- •5.4. Строки
- •6. Множественные типы
- •6.1. Свойства множеств
- •6.2. Операции над множествами
- •7. Комбинированные типы
- •7.1. Описание записей и действия с ними
- •7.2. Оператор присоединения.
- •7.3. Записи с вариантами
- •8. Типизированная константа
- •8.1. Простая типизированная константа
- •8.2. Структурированная (сложная) типизированная константа
- •8.2.1. Типизированная константа массива
- •8.2.2. Типизированная константа записи
- •8.2.3. Типизированная константа множества.
- •9. Преобразование типов
- •9.1. Неявные преобразования типов
- •9.2. Использование стандартных функций для преобразования
- •9.3. Явные преобразования типов
- •9.5. Совместимость типов
- •10. Файловые типы
- •10.1. Определение файлового типа
- •10.2. Структура файла
- •10.3. Имя файла
- •10.4. Описание файлового типа
- •10.5. Файловая переменная
- •10.6. Операции над файлами
- •10.7. Типизированные файлы
- •10.8. Текстовые файлы
- •10.9. Нетипизированные файлы
- •10.10. Стандартные файлы inpuTиOutput
7. Комбинированные типы
7.1. Описание записей и действия с ними
Для работы с группой данных различного типа введено понятие записи.
В языке программирования Паскаль запись представляет собой совокупность ограниченного числа данных различного типа.
Примеры записей:
Данные о студенте:
Фамилия – массив символов,
Имя – массив символов,
Год рождения – целое число,
Название института – массив символов.
Формуляр книги в библиотеке:
Автор – массив символов,
Название – массив символов,
Год издания – целое число,
Издательство – массив символов,
Количество страниц – целое число,
Цена – действительное число.
Все данные можно объединить в одну группу и считать записью. Запись в целом и отдельные её элементы обозначаются именами.
К каждому элементу записи можно обратиться с помощью уточнённого имени. Оно содержит имя записи, а через точку – имя элемента.
Запись, как и другие данные, объявляется в разделе описаний и используется в разделе операторов.
Описание записи имеет следующий вид:
Typeимя_типа =Record
Имя_элемента 1: тип;
Имя_элемента 2: тип;
…………
Имя_элемента n-1: тип;
Имя_элемента n: тип;
End;
Varимя_записи: имя_типа;
Здесь служебное слово Record(запись) выполняет роль открывающей операторной скобки,End– закрывающей операторной скобки. Внутри операторных скобок описываются элементы записи. Допускается вместо имени записи указывать список имён, то есть имена записей, разделённые запятыми.
Элементы записи вместе с их описанием называются полями записи.
Пример.
Список 1 Список 2
NoФамилия Оценки 1 ------------
1 ------------ (4 штучки 2 ------------
2 ------------ у каждого) 3 ------------
3 ------------ ………… 4 ------------
TypeT=Record
N: Integer:
Name: Array [1..10] of Char;
Ball: Array [1..4] of Integer;
End;
VarC1,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];
Обращение к записи в целом, а не только к отдельным её элементам, допускается лишь в операторе присваивания. Слева и справа от знака присваивания при этом должны использоваться имена записей одинакового типа.