WITH < RECORD типті айнымалының идентификаторы > DO < оператор>; WITH – біріктіру операторын қолдансақ, жазба компонентіне сілтеме жасағанда айнымалы атын жазбауға болады.
Жоғарыдағы мысалды біріктіру операторының көмегімен жазсақ төмендегідей болып шығады:
. . .
I:=0;
REPEAT
INC(I);
WITH MAS[I] DO
READLN(SHG,NZK,KD,OC)
UNTIL MAS[I].SHG='99999';
N:=I; SUM:=0; K:=0;
FOR I:=1 TO N DO
WITH MAS[I] DO
IF SHG='ИС101' THEN
BEGIN
SUM:=SUM+OC;
INC(K)
END;
. . .
Жазбаны біріктірілген түрде сипаттап, WITH операторын қолдануға болады. Студенттер жайлы жазба келесі өрістерден тұрады делік:
реттік нөмір;
ФАТ (бұл өріс – фамилия, аты, тегі өрістерінен тұрады),
сынақ кітапшасының нөмірі;
туған жылы (бұл өріс – жыл, ай, күн өрістерінен тұрады). Мұндағы жазба құрылымын граф түрінде төмендегідей бей-
нелеуге болады:
148
Жазбаны енгізу жəне санау программасының құрылымы ке-лесідей түрде болады:
USES CRT; НЕМЕСЕ USES CRT;
TYPE ZAP=RECORD TYPE ZAP=RECORD
NPP:BYTE; NPP:BYTE;
FIO:RECORD FIO:RECORD
F,I,O:STRING[15]; F,I,O:STRING[15];
END; END;
NZK:WORD; NZK:WORD;
DTR:RECORD DTR:RECORD
G:1970..2000; G:1970..2000;
M:STRING[3]; M:STRING[3];
D:1..31 D:1..31
END; END;
END; END;
VAR A:ZAP; VAR A:ZAP;
K,N:BYTE; K,N:BYTE;
BEGIN CLRSCR; BEGIN CLRSCR;
K:=0; K:=0;
WITH A DO WITH A,FIO,DTR DO
WITH FIO DO REPEAT
WITH DTR DO INC(K);
REPEAT WRITELN('ВВОД ');
INC(K); READLN(NPP);
WRITELN('ВВОД '); READLN(F);
READLN(NPP); READLN(I);
READLN(F); READLN(O);
READLN(I); READLN(NZK);
READLN(O); READLN(G);
READLN(NZK); READLN(M);
149
READLN(G); READLN(D);
READLN(M); UNTIL D=99;
READLN(D); WRITELN(K);
UNTIL D=99; READKEY
WRITELN(K); END.
READKEY
END.