«Қазақстан тарихы, жалпы білім беру пәндері және ақпараттық жүйелер» кафедрасы


function Islnt(ch : char) : Boolean; begin if



бет29/105
Дата09.08.2020
өлшемі0,51 Mb.
#76246
түріЛекция
1   ...   25   26   27   28   29   30   31   32   ...   105
function Islnt(ch : char) : Boolean;

begin if (ch >= '0'} and (ch <= '9') // сандар or (ch = 113) // пернесі or (ch = #8) // пернесі then Islnt := True // символ рұқсат етілген else Islnt := False; // рұқсат етілмеген символ end;

// бӛлшек санды енгізу кезінде енгізілген символдың // рұқсат етілген не етілмегендігін анықтайды function IsFloat(ch : char; st: string) : Boolean; begin if (ch >= '0') and (ch <= '9') // сандар



or (ch = #13) // пернесі or (ch = #8) // пернесі 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) //////////////////

//////////////////

//////////////////

//////////////////

//////////////////




Достарыңызбен бөлісу:
1   ...   25   26   27   28   29   30   31   32   ...   105




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет