- •Программирование на языке Паскаль в среде Turbo Pascal версии 6 и 7
- •Глава 7. Составные типы данных 29
- •Глава 8. Подпрограммы и функции 46
- •Глава 9. Файлы 50
- •Глава 10. Динамические переменные (списки) 58
- •Тип и функциональные возможности языка
- •Структура программы на Паскале
- •Алфавит языка
- •Правила написания имен
- •Структура блока описаний
- •Глава 2. Простые типы данных в языке Паскаль Понятие и классификация типов данных
- •Целочисленные типы
- •Вещественные типы
- •Логический тип
- •Символьный тип
- •Интервальный тип пользователя
- •Перечисляемый тип пользователя
- •Глава 3. Встроенные функции Понятие и классификация типов функций
- •Математические функции
- •Функции преобразования типов
- •Глава 4. Выражения Понятие и классификация типов выражений
- •Арифметические операции
- •Логические операции
- •Отношения
- •Битовые операции
- •Глава 5. Выполняемые операторы языка (для программ линейной структуры) Понятие и классификация
- •Классификация инструкций Паскаля
- •Оператор присваивания
- •Простейшие операторы ввода с клавиатуры
- •Простейшие операторы вывода на экран дисплея
- •Глава 6. Выполняемые управляющие операторы языка Простые управляющие операторы
- •Оператор безусловного перехода.
- •Оператор продолжения цикла.
- •Операторы ветвлений
- •Оператор условного перехода.
- •Неполный условный оператор.
- •Полный условный оператор.
- •Операторы циклов
- •Оператор арифметического цикла
- •Операторы итеративных циклов
- •Организация цикла с помощью условного перехода
- •Оператор итеративного цикла с предусловием
- •Оператор итеративного цикла с постусловием
- •Глава 7. Составные типы данных Классификация составных типов
- •Массивы Основные определения
- •Вывод массива
- •Примеры программ работы с массивами
- •Сортировки массива
- •Алгоритмы основных методов сортировок
- •Строки Строковые переменные
- •Стандартные (встроенные) процедуры работы со строками
- •Стандартные (встроенные) функции работы со строками
- •Структуры
- •Глава 8. Подпрограммы и функции Понятие подпрограмм в языке Паскаль.
- •Процедуры.
- •Описание и вызов функций
- •Параметры процедур и функций
- •Глава 9. Файлы Классификация внешних данных
- •Стандартные процедуры работы с файлами
- •Процедуры
- •Функции
- •Особенности работы с текстовыми файлами
- •Пример работы с текстовыми файлами.
- •Двоичные файлы (в машинных кодах) Типизированные файлы
- •Процедуры при работе с типизированными файлами
- •Функции при работе с типизированными файлами
- •Пример работы с типизированными файлами.
- •Файлы без типов
- •Процедуры, используемые при работе с нетипизированными файлами
- •Функции, используемые при работе с нетипизированными файлами.
- •Глава 10. Динамические переменные (списки) Понятие динамических переменных
- •Списочные данные
- •Односвязные списки
- •Двусвязные списки
- •Нульсвязные списки
- •Глава 11.Стандартный модуль работы с текстовым экраном Crt
- •2) Координаты экрана
- •3) Управление графическим режимом
- •4) Управление экраном и окном
- •5) Управление цветом
- •6) Вывод точек
- •7) Вывод линий
- •8) Вывод и закраска контуров
- •9) Окружности, эллипсы, дуги
- •10) Вывод текста
- •11) Последовательность работ при использовании графического режима
- •11) Пример программы приложения
Структуры
Вторым, принципиально отличающимся от массива составным типом, является структура.
Структурой называется совокупность разнотипных простых (или составных) данных, объединенных общим именем и расположенных в памяти ЭВМ подряд; обращение к элементам, составляющим структуру, осуществляется с помощью указания, как общего имени структуры, так и внутреннего имени каждого элемента структуры. Имена записываются подряд, разделяясь точкой.
В языке Паскаль этот тип данных носит название "запись". Для его задания используется ключевое слово "record". Примеры описаний переменных типа запись:
TYPE
book = record { задаем описатель записи - book (книга) }
Title : string; { поле названия }
Author: string[20]; { поле для фамилии автора }
Pages: word; { поле для количества страниц -
целого числа без знака }
Price: word; { поле для цены (в рублях) }
end;
VAR
Instruction,Dictionary : book; { заводим две переменные типа book
Library :array[1..30000] of book; { и массив из 30000 структур типа
book }
Имена полей не должны повторяться в пределах записи, но могут совпадать с именами полей в записях других типов или с именами простых переменных. Общий объем памяти для одной структуры равен сумме объемов, занимаемых отдельными полями этой структуры.
Для переменных и констант типа запись как единого целого, возможны операции чтения или записи, присваивания и операции сравнения на равенство
- тождественность (но только для двух переменных, описанных одним общим типом). Каждое отдельное поле переменной типа запись может использоваться в операциях, предусмотренных для данных этого конкретного типа. Таким способом выполняется и заполнение полей операторами присваивания или ввода:
BEGIN
. . . {присваивание значений полям}
Dictionary.Title:='Толковый словарь по вычислительным системам'; Dictionary.Author:='В.Иллингуорт';
Dictionary.Pages:=560;
Dictionary.Price:=180;
{ вывод названия книги на экран}
Writeln('Название: ',Dictionary.Title);
. . .
for i:=1 to 3000 do { печать фамилий авторов дорогих книг библиотеки }
if Library[i].Price > 1000 then Writeln(Library[i].Author);
Как видно из примера, обращение к отдельным полям записи может иметь довольно громоздкий вид. Для некоторого удобства предусмотрено использование специального оператора "with", в котором можно указать общее имя переменной. Например, то же заполнение полей переменной Dictionary можно выполнить так:
with Dictionary do
begin
Title:='Толковый словарь по вычислительным системам';
Author:='В.Иллингуорт';
Pages:=560;
Price:=180;
end;
Язык Паскаль разрешает использовать в записи в качестве полей массивы и другие записи (описанные раньше). В этом случае внутреннее поле может вызываться с помощью составного имени, состоящего из цепочки имен вложенных структур разделенных точками:
Dictionary.Author.Name, Dictionary.Author.SecondName и т.д.
Так как при работе со структурами обычно используются типизированные файлы, примеры программ с использованием структур приведены в последующих лекциях.