• • •
первая часть
do
вторая часть
третья часть
od
• • •
n-часть
• • •
Индексная последовательность
• • •
for
индексный список
do
do-часть
od
• • •
Структура типа if_then_else
• • •
if
if-тест
then
then-часть
else
else-часть
fi
• • •
Структура типа if_then
• • •
if
if-тест
then
then-часть
fi
• • •
Структура типа case
• • •
case
case-тест
part (case - список 1)
case - часть 1
part (case - список 2)
case - часть 2
• • •
part (case - список n)
case - часть n
else
else - часть
esac
• • •
Структура типа while_do
• • •
while
while-тест
do
do-часть
od
• • •
Структура типа do_until
• • •
do
do-часть
until
until-тест
od
• • •
Структура типа do_while_do
|
• • •
do1
do-часть 1
while
while-тест
do2
do-часть 2
od
• • •
Скаляры. Структура данных содержащая отдельную неделимую единицу данных, называется скаляром и объявляется ключевым словом scalar. Обращение к скалярам в программе PDL осуществляется по именам.
Массивы. Список структур в виде переменных с индексами, являющимися элементами декартова произведения множества целых чисел, называется массивом. Обращение к массиву в языке PDL производится по имени массива с указанием списка индексов в круглых скобках, т. е. Целых чисел или идентификаторов, составленных как целые числа. Имена и размерности массивов сообщаются в их описаниях, которое объявляется ключевым словом array . В языке PDL разрешается, чтобы в массиве были элементы разного типа.
Рассмотрим следующую программу
c := 1
array a(3), b(2,3),
for iÎ1 to 2 by 1
do
for jÎ1 to 3 by 1
do
b(i,j) := j-i
od
od
a(1) := b
a(2) := max(a(1))
if
a(2)>c
then
a(3) := true
else
a(3) := false
fi
После выполнения этой программы первому элементу массива a будет присвоен двумерный массив b, второму элементу массива a будет присвоено значение 2, а третьему элементу массива a будет присвоено логическое значение true.
Запись. Запись – это структура данных, которая может быть представлена в виде дерева.
recordстудент
1 имя
2 адрес
2.1 улица
2.2 город
3 курс
Приведем возможные имена элементов для данной записи
студент.имя = студент.1 = имя
студент.адрес = студент.2 = адрес
студент.адрес.улица = студент.2.1 = улица
студент.адрес.город = студент.2.2 = город
студент.курс = студент.3 = курс
Определим некоторые операции над списками.
Операции формирования списка:
a+b – добавить элемент a в начало списка b
aÅb – добавить элемент b в конец списка a
Операции выделения из списка:
Н+(a+b) = a T+(a+b) = (b)
Н-(aÅb) = b T-(aÅb) =( a)
Для иллюстрации рассмотрим списки a = (A, B ,C), b = (E, F)
M+a = (M ,A ,B ,C)
bÅN = (E, F ,N)
Н+(a) = A
T+(b) = (F)
Н-(b) = F
T-(a) = (A,B)
Стек. Стек – это структура данных, которая с помощью ключевого слова topобеспечивает доступ к списку по принципу LIFO (поступивший последним обслуживается первым). Объявляется в программе с помощью ключевого слова stack.
Операции / тесты Определения
c := top(a) c, a := H+(a), T+(a) (a¹Æ)
top(a) := d d, a := d, d+a
a := empty a := Æ
a = emptya = Æ
Очередь. Очередь – это структура данных, которая с помощью ключевого слова endобеспечивает доступ к списку по принципу FIFO (поступивший последним обслуживается первым). Объявляется в программе с помощью ключевого слова queue.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.