.


:




:

































 

 

 

 


. , . ( - ) , , - .

, , , . , ( ) .

(. .4.1) , , , -. ORD(X), X. ORD(X) X, .. ORD(X) = X X, . ORD(X) , 0 1 ( ), 0 155 (), 0 65535 (). - , ORD(X) .

:

PRED (X) - (, ORD(X)- 1), ..

ORD(PRED(X)) = ORD(X) - 1;

SUCC (X) - , ORD(X) +1, ..

ORD(SUCC(X)) = ORD(X) + 1.

,

var

: Char;

begin

:= '5';

end.

PRED(C) '4', SUCC(C) - '6'.

, , PRED(X) , a SUCC(X) - .

. , , . . 4.1 , .

4.1

,
Byte   0...255
ShortInt   -128...+127
Word   0...65535
Integer   -32768...+32767
LongInt   -2 147 483 648... +2 147 483 647

, .. , WORD, BYTE ( ), LONGINT INTEGER, , , SHORTINT.

, , .4.2. b, s, w, i, l BYTE, SHORTINT, WORD, INTEGER LONGINT, x - ; vb, vs, vw, vi, vl, vx . .

4.2

,
abs (x) x
chr(b) Char
dec (vx[, i]) - vx i, i - 1
inc(vx[, i]) - vx i, i - 1
Hi(i) Byte
Hi(w) To
Lo(i) "
Lo (w) "
odd(l) Boolean True, -
Random (w) , 0...(w-l)
sgr (x) X
swap (i) Integer
swap (w) Word  

, , - , ( ). , , :

var

: Integer;

, : Real;

begin

:= 32767; { INTEGER}

:= + 2; { !}

:= LongInt()+2; { }

WriteLn(x:10:0, :10:0)

end.

-32767 32769

. FALSE () TRUE (). :

ord(False) = 0;

ord(True) = 1;

False < True;

succ(False)= True;

pred(True) = False.

, , :

var

1: Boolean;

begin

for 1:= False to True do....

. . 0...255. , ORD.

ASCII (American Standard Code for Information Interchange - ). 7- , .. 128 0 127. 8- , , 0 255. 0...127 ASCII (. 4.3). 128...255 ( .2 ).

4.3

ASCII
  NUL   BL     '
    !   A   a
  STX   "     b
    #    
  EOT   $   D   d
  ENQ   %   E   e
    &   F   f
  BEL   '   G   g
  BS   (   H   h
    )   I   i
  LF   *   J   j
  VT   +   k   k
  FF   ,   L   i
  CR   -   M   m
  SO   .   N   n
  SI   /      
  DEL       p   P
  DC1       Q   q
  DC2       R   r
  DC3       S   s
  DC4       T   t
  NAK       U   u
  SYN       V   V
  ETB       w   w
  CAN       X   X
  EM        
  SUB   :   z   z
  ESC   /   [   {
  FS   <   \   l
  GS   =   ]   }
  RS   >   ^   ~
  US   ?     n

, , , , , .

4.4

,
  Real 11...12 -39...+38
  Double 15...16 -324...+308
  extended 19...20 -4951...+4932
  comp 19...20 -2*1063+1...+2*63-1

.4.4, 6 10 :

s e m

s - ; - ; ; m - .

m 23 ( SINGLE) 63 ( EXTENDED) , 7...8 SINGLE 19...20 EXTENDED . () () , , , ().

, , SINGLE, DOUBLE EXTENDED . , . , ( ) . .1. .

. :

set 87=N

set 87=Y

, - .

, EXTENDED, .

, (. 2.6 .2) :

{$N+,E+}

type

RealType = Real:

var

epsilon: RealType;

begin

epsilon:= 1;

while 1+epsilon/2 > 1 do

epsilon:= epsilon/2;

WriteLn(epsilon)

end.

REALTYPE ( SINGLE, REAL, DOUBLE EXTENDED)

1.08420217248550-0019

EXTENDED. , 1 + epsilon/2 WHILE, EXTENDED. (, REALTYPE = REAL 9. 09494701772928-0013), :

{$N+,E+}

type

RealType= Real;

var

epsilon, epsl:RealType;

begin

epsilon:= 1;

repeat

epsilon:= epsilon/2;

epsl:= 1 + epsilon

until epsl = 1;

WriteLn(2*epsilon)

end.

, REAL . , REAL REAL EXTENDED. REAL , .. . , , SINGLE DOUBLE: REAL 2...3 . , .

, . , - , 19...20 ( 8 ). : , .. : .

, . 2.5. REAL , INTEGER - .

4.5

abs (x) Real, Integer
rn () Real Real ( )
cos () To ,
() " "
fr () " "
int(x) " "
ln(x) " "
Pi - " = 3.141592653...
Random - " , 0...[1]
Pandom(x) Integer Integer , 0...(-1)
Randomize - -
sin(x) Real Real ,
sqr (x) To
sqrt (x) " "

 

( : , c, ) , .. c . , , c , . , -5520 .

PACKED, , , , ; : , .

. , (, ). , :

type

digit =array[0..9] of Char;

matrix =array[Byte] of Single;

var

m: matrix;

d: digit;

i: Integer;

begin

.......

m[17]:= ord(d[i-l])/10;

.......

end.

:

< > = ARRAY [ <..> ] OF <>

< > - ;

ARRAY, OF - (, );

<..> - , ; , , - ;

<> - .

, LONGINT - LONGINT.

, , :

var

,b: array [1..10] of Real;

-, . <>, OF, - , , , , :

type

mat = array [0..5] of array [-2..2] of array [Char] of Byte;

:

type

mat = array [0..5,-2..2,Char] of Byte;

, , - , ( ) , , , 65520 . , . , ,

var

: array[1..2,1..2] of Byte;

begin

a [1,1]:=1;

a [2,1]:=2;

a [l, 2]:=3;

a [2,2]:=4;

end.

1,3,2, 4. MOVE.

, :

var

,b:array [1..5] of Single;

begin

.....

a:= b;

.....

end.

, . . , ,

if a = b then...

, :

var

a,b:array [1..5] of Single;

eq:Boolean;

i:Byte;

begin

.....

eq:= True; for i:= 1 to 5 do

if a[i] <> b[i] then

eq:= False;

if eq then

.....

end.

 

- , , . , () . , .

:

< > = RECORD <.> END

< > - ;

RECORD, END - (,); <.> - ; , .

, . () (), :

type

BirthDay = record

day,month: Byte;

year: Word

end;

var

a,b: Birthday;

.......

BIRTHDAY ( ) DAY, MONTH YEAR (, ); BIRTHDAY.

, ,

:= b;

, , .. , :

.day:= 27;

b.year:= 1939;

:

type

BirthDay = record

day,month: Byte;

year: Word

end;

var

: record

name: String;

bd: BirthDay

end;

begin

.....

if c.bd.year = 1939 then...

end.

, WITH:

WITH <> DO <>

WITH, DO - (, );

<> - , , , ; <> - .

:

with c.bd do month:= 9;

with do with bd do month:= 9;

with c,bd do month:= 9;

c.bd.month:= 9;

, :

type

Forma = record

Name: String;

case Byte of

0: (Birthplace: String [40]);

1: (Country: String [20];

EntryPort: String [20];

EntryDate: 1.. 31;

ExitDate: 1..31)

end;

FORMA NAME , CASE... OF. ( - : 0 1). , , . , , , .

, , .. . , :

var

mem4: record case Byte of

0: (by: array'[0..3] of Byte);

1: (wo: array [0..1] of Word);

2: (lo: longint);

end;

4 , 4 . , , 4 ( ), WORD ( WO) , , LONGINT ( LO). , , :

var

: Word;

xb: Byte;

x1: Longint;

begin

.....

with m do

begin

lo:= trunc(2*pi*x);

if wo[1] = 0

then if by[l] = 0 then

xb:= x[0]

else

x:= wo[0]

else

x1:= lo

end;

.....

end.

CASE... OF, , , , . END CASE... OF. ( - , END, RECORD). CASE... OF : , , , . , . , . , : , , :

type

reel = record

a: Byte;

b: Word;

end;

rec2 = record

: longint;

case x: Byte of

1: (d: Word);

2: (e: record

case Boolean of

3:(freel);

3:(g Single);

'3':( Word);

end)

end;

var

r: rec2;

begin

r.x:= 255;

if r.e.g = 0 then

WriteLn('O.K. ')

else

WriteLn(r.e.g)

end.

case Boolean of

, , , , , - TRUE FALSE. , , - , , .

, , , -, .. , (. ).

- . . , , 0 256 (, , ). .

, , . , . .

:

type

digitChar= set of '0'..'9';

digit = set of 0..9;

var

sl,s2,s3:digitChar;

s4,s5,s6:digit;

begin

.....

s1:=['1','2','3'];

s2:=['3','2','1'];

s3:=['2','3'];

s4:=[0..3,6];

s5:=[4,5];

s6:=[3..9];

.....

end.

S1 S2 , S3 S2, .

:

< > = SET OF <.>

< > - ;

SET, OF - (, );

<.> - ,

, WORD, INTEGER, LONGINT.

: , ; (. ). , - - .

:

* ; , ; , S4*S6 [3], S4*S5 - (. );

+ ; , :

S4+S5 [0,1,2,3,4,5,6];

S5+S6 [3,4,5,6,7,8,9];

- ; , :

S6-S5 [3,6,7,8,9];

S4-S5 [0,1,2,3,6];

= ; TRUE, ;

<> ; TRUE, ;

<= ; TRUE, ;

>= ; TRUE, ;

IN ; - , - ; TRUE, , :

3 in s6 TRUE;

2*2 in s1 FALSE.

. INCLUDE - . :

INCLUDE (S,I)

S - , TSetBase;

I - TSetBase, .

EXCLUDE - . :

EXCLUDE(S,I)

- , INCLUDE.

+ -, , c .

4.1, , . , . BEGINSET, 2 N. PRIMERSET ( ) 1. :

  • BEGINSET NEXT PRIMERSET;
  • BEGINSET NEXT , , ..2*NEXT, 3*NEXT ..

, BEGINSET .

N, 256 .

4.1

Program Primer_numbers_detect;

{ N }

const

N = 255; { }

type

SetOfNumber = set of 1..N;

var

n1,next,i: Word; { }

BeginSet, { }

PrimerSet: SetOfNumber; { }.

begin

BeginSet:= [2..N]; { }

PrimerSet:= [1]; { }

next:= 2; { }

while BeginSet <> [] do { }

begin

n1:= next; {n1-, (next)}

{ :}

while n1 <= N do

begin

Exclude(BeginSet,nl);

n1:= n1+next { }

end; { }

Include(PrimerSet,next);

{ , }

repeat

inc(next)

until (next in BeginSet) or (next > N)

end; { }

{ :}

for i:= 1 to N do

if i in PrimerSet then Write(i:8);

WriteLn

END.

. SETOFNUMBER :

type

SetOf Number = set of 1.. 1;

.

1 3 5 7

BeginSet PrimerSet , ! : , ( ); , 1, - 0. , 8 . , 8 . - 256 . 16 .

: 1.256. 256 , :

Error 23: Set base type out of range.

( 23: .)

- 0 255 256 ( -5536 ).

STRING () . ARRAY[O..N] OF CHAR, , , - 0 N, N - . N STRING [N] , 255. N, , N=255.

. , ARRAY [0..N] OF CHAR, :

var

st: String;

begin

.....

if st[5] = 'A' then...

end.

0 , 1. . , :

var

st: String;

i: Byte;

begin

i:= ord(st [0]); {i - }

while (i <> 0) and (st[i] = ' ') do

begin

dec(i);

st[0]:= chr(i)

end;

.....

end.

ORD(st[0]), .. , LENGTH(st), :

while (Length(st)<>0) and (st[Length(st)]=' ') do

st[0]:= chr(Length(st)-1)

+ - , :

st:= '1 + 'b';

st:= st + ''; {st "abc"}

N, . , , 1:

var

st: String [1];

begin

St:='123';

WriteLn(st)

end.

.

CONCAT(S1 [,S2,..., SN]) - STRING; , - SI, S2,..., SN.

COPY(ST, INDEX, COUNT) - STRING; ST COUNT , INDEX.

DELETE (ST, INDEX, COUNT) - ; UNT ST, INDEX.

INSERT (SUBST, ST, INDEX) - ; SUBST ST, INDEX.

LENGTH (ST) - INTEGER; ST.

POS (SUBST, ST) - INTEGER; ST SUBST , ; , .

STR(X [; WIDTH [: DECIMALS] ], ST) - ; X ST , WRITELN ; WIDTH DECIMALS, , : WIDTH , X, a DECIMALS - ( , - ).

VAL(ST, X, CODE) - ; ST X, ; CODE , , X , ST, , ; ST , ; , val (' 123',k,i) : k 123, i 0, val (' 123 ', k, i) : k , a i 4.

UPCASE () - CHAR; , , ; ( ), .

:

var

: Real;

: Integer;

st,st1: String;

begin

st:= concat('12','345'); { st 12345}

st1:= copy(st,3,Length(st)-2); {st1 345}

insert('-',st1,2); { st1 3-45}

delete(st,pos('2',at),3); { st 15}

str(pi:6:2,st); { st 3.14}

val(''3,1415',x,y); { 2, }

end.

=, , >, <, >=, <= , (. .4.1 .2). , R(0).

TRUE:

'''' < '. '

'' > '1'

'Turbo' <' Turbo Pascal'

'' >'Turbo Pascal'

( , , ), - .

. -, , . -, . , . , . -, .

:

<> = FILE OF <>;

<> = TEXT;

<> = FILE;

<> - ( );

FILE, OF - (, );

TEXT - ;

<> - , .

:

type

product = record

name: String;

code: Word;

cost: comp

end;

textSO = file of String [80];

var

fl: file of char;

f2: text;

f3: file;

f4: text80;

f5: file of product;

:

  • ( FILE OF...);
  • ( TEXT);
  • ( FILE).

F1, F4 F5- , F2 - , F3 - . , , . . .

: INPUT - OUTPUT - . , , :

PROGRAM NameOfProgram(input,output);

, .

, ( ). , : .

ASSIGN:

ASSIGN (<..>, < ..>);.

<..> - ( , );

< ..> - , .

, , ASSIGN(f, ' '), INPUT OUTPUT.

, . , .

Close.

, , ASSIGN, . :

CLOSE (<..>)

. CLOSE . , ASSIGN.

RENAME.

. :

RENAME (<..>, < >)

< > - , . , RESET, REWRITE APPEND.

ERASE.

-. :

ERASE (<..>)

, RESET, REWRITE APPEND.

, RENAME CLOSE . , , NAME. , , - ( ). , .

var

fi: text; { }

fo: text; { }

name: String;

name_bak: String;

k, i: Word;

const

bak = '.bak';

begin

.......

{ name bak .:}

k:= pos('.',name);

if k = 0 then

k:= length(name) +1;

name_bak:= copy(name,1,k-1) + bak;

{ :}

assign(fi,name);

{$I-} ' reset(fi);

if lOResult <> 0 then

halt; { : }

close(fi);,

{ .-:}

assign(f,name_bak);

reset (fo);

{$I+}

if lOResult = 0 then

begin {. :}

close(fo); { }

erase(fo) { }

end;

{ , :}

rename(f i,name_bak);

reset(fi);

assign(fo,name);

rewrite(fo);

.......

end.

: . ,

rename(fi,name_bak);

, .

FLUSH.

, , . :

FLUSH (<..>)

, () . FLUSH . , RESET.

EOF (<. . >): BOOLEAN.

, . TRUE, . , , - .

CHDIR.

. :

CHDIR (<>)

<> - , .

GETDIR.

( ). :

GETDIR (<>, <>)

<> - WORD, : 0 - , 1 - , 2 - ..;

<> - STRING, .

MKDIR.

. :

MKDIR (<>)

<> - STRING, . , .. .^

RMDIR.

. :

RMDIR (<>)

, .. .

IORESULT: WORD.

-.

, . - .. , IORESULT -. {$I-} , {$I+} . , - , - , IORESULT.

DOS.TPU, TURBO. TPL. . USES DOS ( . .9).

DISKFREE (<>): LONGINT.

. <> BYTE : 0 - , 1 - , 2 - .. -1, .

DISKSIZE (<>): LONGINT.

-1, .

FINDFIRST.

, . :

FINDFIRST (<>, <>, <>)

<> - , ;

<> - BYTE, (); <> - SEARCHREC, .

- :

* , ( ) ;

? , .

:

*. * ;

*. * , (cl.pas,!2345, c.dat ..);

a?.dat a0.dat, az.dat ..

'. ,

:\dir\subdir\*.pas

.PAS SUBDIR, ; SUBDIR DIR, , , .

<> (), , FINDFIRST. DOS. TPU:

const

Readonly = $01; { }

Hidden = $02; { }

SysFile = $04; { }

VolumeID = $08; { }

Directory = $10; { }

Archive =$20; { }

AnyFile= $3F; { }

, $ 06 - / .

FINDFIRST SEARCHREC. DOS. TPU :

type

SearchRec = record

Fill: array [1..21] of Byte;

Attr: Byte;

Time: LongInt;

Size: LongInt;

Name: String.[12]

end;

Attr - (. );

Time - ; ; UNPACKTIME (.);

Size - ;

Name - . TIME

UNPACKTIME(Time: Longlnt; var T:DateTime).

DOS. TPU DateTime:

type

DateTime = record

year:Word; { 19}

month:Word; { I..12}

day:Word; { 1..31}

hour:Word; { 0..23}

min:Word; { 0..59}

sec:Word { 0..59}

end;

FINDFIRST DOSERROR WORD, :

0 - ;

2 - ;

18 - ( ).

FINDNEXT.

. :

FINDNEXT (<.>)

<.> - SEARCHREC (. ), .

FINDFIRST FINDNEXT. PAS- :

Uses DOS;

var

S: SearchRec;

begin

FindFirst('*.pas',AnyFile,S);

while DosError = 0 do begin

with S do

WriteLn(Name:12,Size:12);

FindNext(S)

end

end.

GETFTIME.

. :

GETFTIME (<..>, <>)

<> - LONGINT, .

SETFTIME.

. :

SETFTIME (<..>, <>)

<> - .

DATETIME LONGINT

PACKTIME (var T:DateTime; var Time:LongInt).

( DA TETIME . ).

GETFATTR.

. :

GETFATTR (<..>, <>)

<> - WORD, .

SETFATTR.

. :

SETFATTR (<..>, <>)

FSEARCH: PATHSTR.

. :

FSEARCH (<>, <.>)

<> - ( PATHSTR; ); <.> - , ( STRING); .

FSEARCH PATHSTR. , , .

PATHSTR DOS.TPU :

type

PathStr = String[79];

, , <.>. , , . , , .

, , \SUBDIR\MYFILE.PAS. , - ,

FSEARCH ('MYFILE,PAS','\SUB; \SUBDIR').

\SUBDIR\MYFILE.PAS,

FSEARCH ('MYFILE.PAS1,'\SUB')

. , SUBDIR, MYFILE.PAS ( , ).

FSPLIT.

, .. , . :

FSPLIT (<>, <>, <>, <>)

<> - , ( , , );

<> - DIRSTR=STRING [67], ;

<> - NAMESTR=STRING [8], ;

<> - EXTSTR=STRING [4],



<== | ==>
. |
:


: 2016-12-06; !; : 556 |


:

:

- - , .
==> ...

1640 - | 1599 -


© 2015-2024 lektsii.org - -

: 0.648 .