пернесі then begin
IsFloat := True; // дұрыс символ Exit; // функциядан шығу
end; case ch of
'-': if Length(st) = 0 then IsFloat := True; ',': if (Pos(',',st) = 0)
and (st[Length(st)]'>= '0') and (st[Length(st)] <= '9') then // бұрын енгізілмеген болса үтір белгісін цифрдан соң енгізуге
болады
IsFloat := True; else // басқа символдарға рұқсат етілмейді
IsFloat := False; end;
end;
2. Динамикалық жадыны бөлу және босату
Келесі мүмкіндік үйменің бүтін бір фрагментін босатудан тұрады. Осы мақсатпен динамикалық жадыны бӛлу алдынан HEAPPTR кӛрсеткішінің ағымдағы мәні MARK процедурасының кӛмегімен айнымалы-кӛрсеткішке сақталынып қойылады. Енді кез-келген уақытта MARK процедурасы сақтап қойған адрестен бастап динамикалық жадының соңына дейін босатуға болады. Бұл үшін RELEASE процедурасы қолданылады. Мысалы: var
p,p1,p2,p3,p4,p5 : integer;
begin
new(p1); new(p2); mark(p); new(p3); new(p4); new(p5);
……….
release(p); end.
Бұл мысалда MARK(P); процедурасы арқылы P кӛрсеткішіне HEAPPTR-ң ағымдағы мәні сақталынған, алайда айнымалы үшін жады бӛлінбеді. RELEASE(P) процедурасын шақыру динамикалық жадының Р кӛрсеткішіндегі адрестен бастап үйменің аяғына дейін босатады. Келесі суретте NEW-DISPOSE және NEW-MARK-RELEASE процедураларының механизмі, сонымен бірге RELEASE(P) операторының орнына мысалы DISPOSE(Р3) қолданылған жағдай кӛрсетілген.
р1^
р2^
Mark(p1) Dispose(p) //////////////////
//////////////////
//////////////////
//////////////////
//////////////////