- •«Паскаль»
- •Этапы полготовки и решения задач на компьютере.
- •Алгоритм. Основные свойства. Способы представления алгоритмов
- •Язык программирования Паскаль. Структура языка. Алфавит языка. Классификация данных и операторов.
- •Встроенные процедуры и функции языка Паскаль. Структура программы на языке Паскаль.
- •Var «список- объявлений переменных»
- •Сложные типы данных
- •Var а,в : mn ; { Переменные типа: mn }
- •Обработка данных
- •Организация обработки данных
- •Ввод-вывод данных. Основные виды работ с файлами любых типов. Основные понятия. Классификация файлов
- •Модульное программирование
- •Связанные структуры
- •Очередь
- •Объектно-ориентированное программирование
- •Инкапсуляция (Определение объекта)
- •Наследование и переопределение. Принцип конструирования программ
- •Полиморфизм
Var «список- объявлений переменных»
Пример:
VAR { Начало раздела, где переменные: }
А, В, I, J : INTEGER ; { - целого типа}
X, Y, Z, R : REAL ; { -вещественные}
С, D : BOOLEAN ; { - логические }
Е, F : CHAR ; { - символьные }
STROKA : STRING ; { - строковая}
Сложные типы данных
Сложные типы данных характеризуются типами их компонентов и методом их объединения. К сложным (структурированным, составным) типам данных (агрегатам) относят массивы, записи, множества и файлы.
Массивы
Массив - это n-мерная совокупность однотипных элементов. В массивы можно объединить данные любого типа. Данные объединяют в массивы в случае, если надо выполнить одни и те же действия над определенным количеством однотипных значений. Массивы отображают следующие математические понятия:
вектор с элементами ai для i = 1n; на языке Паскаль это одномерный массив;
матрица с элементами a i, j ; на языке Паскаль - это двумерный массив;
пространство Ai,j,k...; на языке Паскаль - это n-мерный массив, где n - количество его измерений (индексов).
Массивы часто используют для:
численных методов решения систем алгебраических и дифференциальных уравнений;
формирования совокупностей однотипных значений: исходных данных, промежуточных и конечных результатов.
Объявление массивов определяет атрибуты, характерные только для массивов, размерность и размер:
размерность (количество измерений) массива определяет количество индексов при обращении к элементу массива;
размер массива - это количество его элементов с учетом всех его измерений.
В Паскале массивы называют также регулярными типами данных.
Массив - это совокупность фиксированного количества компонентов (элементов) одного и того же типа. Тип элементов массива называется базовым типом. Он может быть любым: простым или сложным.
Элементы массива упорядочены по индексам. Мощность индекса определяется количеством элементов массива по данному измерению. Тип индексов может быть любым простым порядковым (ординальным) типом данных, кроме стандартного типа LONGINT и его диапазона. В том числе он может быть перечисляемым или диапазонным типом.
Массивы можно определить в разделах TYPE или VAR.
Форма объявления массива:
ТYРЕ Т = ARRAY [ T1 ] OF T2 ;
где Т - имя типа массива;
Т1 - тип индексов в виде списка типов, по одному для каждого измерения; обычно тип индексов диапазонный; Т2 - базовый тип: тип элементов массива.
Примеры объявления массивов данных различных типов:
TYPE ТА = ARRAY [1 .. 10] OF INTEGER; { Тип массива А }
MN = SET OF 2 ..100; { Тип множества }
VAR А : ТА; { Массивы данных: А - целого типа }
В : ARRAY [1 .. 20] OF REAL; { В - вещественного }
С : ARRAY [1..10,1..20] OF REAL;{С - двумерный, веществ.}
D : ARRAY [-10 .. 10] OF BOOLEAN; { D - логического }
E : ARRAY [0 .. 30] OF CHAR; { E - символьного }
F : ARRAY [1 .. 15] OF STRING[30]; {F- строковых данных}
G : ARRAY [1 .. 20] OF MN; { G - множеств }
Ввод-вывод элементов массивов можно производить только поэлементно, т. е. с помощью циклов. Например:
FOR I := 1 ТО 10 DO READ (A[I]);
Если границы элементов массивов являются константами, которые могут изменяться для различных вариантов исходных данных, их можно задать в разделе CONST. При изменении размеров массивов в этом случае надо будет изменить только значения этих констант в разделе CONST.
Записи.
В задачах экономики и управления часто используются данные в виде таблиц, каждая строка которых может содержать разнотипные элементы. Такие данные представляют в виде совокупностей (структур) данных.
На языке Паскаль их называют записями. В составе записи (например, с данными одной строки таблицы) могут быть скалярные типы, массивы и записи такого же или другого типа. Кроме того, на языке Паскаль можно использовать массивы записей.
Запись - это структура данных, состоящая из фиксированного количества элементов, называемых полями. Поля могут быть различных типов.
Записи - наиболее общий и гибкий тип данных Паскаля. Они могут быть постоянной (фиксированной) и переменной структуры (вариантные записи). Ввод-вывод и обработка записей в Паскале может производиться только поэлементно. Допускается копирование записей одного типа из одной переменной в другую с помощью оператора присваивания.
Фиксированные записи.
Фиксированная запись - это структура постоянного строения, состоящая из фиксированного количества элементов (компонентов, полей). Элементы записи в ней могут быть любых типов, в том числе скаляры, множества, файлы, другие записи. Описатель типа записи RECORD. Объявление записи заканчивается словом END и может быть в разделах TYPE или VAR.
Форма объявления записи:
TYPE Т = RECORD «список полей» END ;
где «список полей» - это последовательность определений элементов записи; определение полей может быть в виде идентификатора или списка идентификаторов полей, разделенных запятыми; за идентификаторами ставится двоеточие и имя или определение типа.
Например:
TYPE TAB = RECORD { - объявление записи в разделе TYPE }
А,В : REAL; { А и В - поля одинакового типа }
END;
VAR С : TAB;
D : RECORD{ - объявление записи в разделе VAR}
Е, F : INTEGER; END;
WITH – оператор присваивания.
Оператор присоединения предназначен для упрощения обращения к элементам записи, а именно для обеспечения возможности обращения к элементам записи без составных имен, с помощью простых имен элементов записи.
Форма оператора WITH:
WITH «список имен записей» DO S ;
где S - один оператор, простой или составной (блок).
WITH обычно используется в тех случаях, когда надо выполнить несколько действий над одним или несколькими полями записи. Например:
WITH Y[I] DO IF DEN > 15 THEN WRITE (' Вторая половина месяца');
Это эквивалентно записи: IF Y[I].DEN > 15 THEN WRITE (' Вторая половина месяца');.
Вариантные записи.
В Паскале можно использовать вариантные записи - записи переменной структуры с вариантными (переменными) полями. В списке полей такой записи могут быть фиксированные поля и только одно переменное (вариантное) поле. Вариантная часть записи должна быть в конце описания, т. е. в качестве, последнего ее элемента.
В описании записи перечисляются все возможные варианты переменного поля записи. При работе с записью в зависимости от значения селектора записи (ключа) выбирается один из вариантов переменного поля записи. Переменная часть записи может быть представлена в одной из двух форм.
Форма 1 переменной (вариантной) части записи:
TYPE SEL = тип ; ... описание фиксированной части записи CASE SEL OF
Метка-1 : ( список-полей );
Метка-2 : ( список-полей ); ... END ;
Форма 2 переменной (вариантной) части записи:
TYPE SEL = тип ; ... описание фиксированной части записи CASE PR : SEL OF
Метка-1 : ( список-полей ) ;
Метка-2 : ( список-полей ) ; ...
END;
где SEL - имя типа ключа PR и меток для выбора варианта;
PR - имя переменной - селектора (ключа) выбора варианта; оно должно получить значение до использования вариантной части записи;
элемент списка-полей - это список-идентификаторов-полей : тип.
Ограничения:
в описании записи может быть только одна вариантная часть;
все идентификаторы в списках полей одной записи должны быть различны; однако, на разных уровнях вложенности полей одной записи и в разных записях имена могут повторяться;
вариантная часть записи должна быть последним ее элементом.
Тип SEL должен определять перечисляемый тип переменной. Для выбора одного из вариантных полей значениями этого типа должны быть метки, стоящие перед списками вариантных полей. Переменной (pr) этого типа в программе можно присваивать значения ее типа (sel) и таким образом выбирать один из вариантов полей вариантной записи.
Множества.
На языке Паскаль множество - это ограниченная совокупность различных элементов базового типа множества. Количество элементов, входящих во множество, может быть в пределах от 0 до 255. Данные переменной типа множества могут быть в виде множества-переменной и множества-константы (конструктора).
Описатель переменной типа множества - SET. Объявление переменной типа множества определяет базовый тип, т. е. состав элементов, из значений которых создаются конкретные значения множественного типа, и мощность множества (максимальное количество его элементов). В качестве базового типа может быть любой ординальный (порядковый) тип данных, кроме типов WORD, INTEGER и LONGINT. В том числе в качестве базового типа может быть тип BYTE, SHORTINT, логический (BOOLEAN), символьный (CHAR), перечисляемый и диапазонный тип (для целых 0 .. 255).
В качестве значения переменной типа множества может быть набор всех элементов базового типа, любое их подмножество, а также пустое множество. Если базовый тип содержит n элементов, то количество различных подмножеств, которые могут быть значением множества данного типа, равно 2n.
Тип переменной-множества может быть определен в разделе TYPE или VAR.
Форма определения множественного типа:
TYPE «имя типа множества» = SET OF «базовый тип» ;
Примеры объявления данных переменной типа множества:
TYPE MN = SET OF 2..100; { Диапазонный тип }
VRGODA = (VESNA,LETO,OSEN,ZIMA);{Перечисляемый тип}
