Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_TP.doc
Скачиваний:
13
Добавлен:
22.12.2018
Размер:
1.4 Mб
Скачать

Оператор работы над записями with.

Предназначен для более наглядной и эффективной организации работы со значениями комбинированного типа.

Общий вид:

WITH <СП. ПЕРЕМЕННЫХ ЗАПИСИ> DO

<ОПЕРАТОРЫ>

END;

TYPE T_REC = RECORD

A:RECORD;

B:RECORD;

X:CHAR;

Y:BYTE;

END;

C:REAL;

END;

D:STRING;

END;

1. VAR REC:T_REC ;

BEGIN

REC.A.B.Y:=0;

REC.A.C:=3.14;

. . . . . . . .. . . . . . . . . . ..

2. WITH REC DO

WITH A DO

BEGIN

B.Y:=0;

C:=3.14;

3. WITH REC,A DO

Операторы работы над записями.

WITH V1, V2, V3 DO S

WITH V1 DO

WITH V2 DO

WITH V3 DO

Пример:

PROGRAM EXAMPLE_16;

TYPE

KINDWARES = ( BOOK,SHOES,SKI);

WARES = RECORD;

PRICE: INTEGER;

QUANTITY:INTEGER;

KIND:KINDWARES ;

CASE KINDWARES OF {Вариантная часть}

BOOK:( YEAR:WORD);

SHOES:( SIZE:INTEGER);

SKI:(LENGTH:WORD);

END;

VAR W:WARES;

I:WORD;

BEGIN

REPEAT

WRITELN('0-КНИГИ;1- БОТИНКИ;2-ЛЫЖИ');

WRITE(' Введите вид товара (0..2)= ');

READLN(I);

IF I<=2 THEN WITH W DO

BEGIN

KIND: = KINDWARES ( I );

WRITE('Цена товара ');

READLN(PRICE);

WRITE(' Количество товара ');

CASE KIND OF

BOOK:BEGIN

WRITE(' Год издания ');

READLN(YEAR);

END;

SHOES:BEGIN

WRITE('Размер ');

READLN(SIZE);

END;

SKI:BEGIN

WRITE(' Длина ');

READLN(PRICE);

END;

END;

END;

UNTIL I>2

END.

Подпрограммы. Процедуры и функции. Блочная структура подпрограммы.

PROGRAM

. . . .. . .. . . ... .. ...........{ОПИСАНИЕ ПРОЦЕДУР И ФУНКЦИЙ}

BEGIN

PROCEDURE PR1(X,Y:BYTE);

. .............................................

END;

........................................

PR1 (A,B);

.......................................

.....................................

PR 1(C,D);

Понятие подпрограммы как обособленной части - основное средство структурного программирования. Подпрограмма - это часть, оформленная в виде отдельной синтаксической конструкции с именем. Создается в любом месте основной программы. Вызов подрограммы, то есть выполнение действий,заданных в ней в виде операторов ,может быть произведен посредством указания имени подпрограммы.

Глобальные переменные - это имена , объявленные в разделе описания основной программы и действующие в ней и в любой подпрограмме.

Локальные переменные - это имена , объявленные в подпрограмме и действующие только в ней.

Подпрограмма

Подпрограмма А

Подпрограмма А1

Подпрограмма А2

Подпрограмма В

Подпрограмма В1

Подпрограмма В2

Подпрограмма В2.1

Подпрограмма В2.2

Подпрограмма С

Правила по использованию подпрограмм

1. Блок (подпрограмма) любого уровня имеет множество констант, переменных, типов и вложенных в нее других подпрограмм(блоков).

2 . Все имена, описанные внутри подпрограммы, локализуются в ней, известны во вложенных блоках, не доступны вне блока.

Пример: из основной программы можно обратиться к подпрограммам А,В,С , но нельзя вызвать ни одну из вложенных процедур А1,А2,т.д.

3. Имена А1 и А2 известны в пределах блока 2. Имена В2 . 1 и В2.2 известны в пределах В2.

При входе в подпрограмму низшего уровня доступны имена не только объявленные в нем, но и имена верхнего уровня.

Влияние подпрограммы на всю программу осуществляется через глобальные тезисы.

Любая подпрограмма кроме описания любых переменных, типов , констант должна содержать операторы или последовательность действий.