.


:




:

































 

 

 

 


.




CFPascal.

 

SR 27. <>::= < >; < BEGIN>

 

SR 28. < >::= <>

| <>(< >)

SR 30. < >::= < >

 

SR 31. < >::= PROCEDURE <>

| PROCEDURE <>(< >)

 

SR 32. < >::= VAR < >: <>

| < >; VAR < >: <>

 

 

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

 

CR6. , < > < BEGIN> . .

 

.

4.1.5 INPUT OUTPUT (odd), (even).

, #.

:

PROGRAM Split(INPUT, OUTPUT);

{ INPUT to OUTPUT, , }

VAR

Odds, Evens: TEXT;

BEGIN {Split}

{ INPUT }

{ OUTPUT}

{ OUTPUT}

END. {Split}

 

{ OUTPUT}

{ OUTPUT}

CopyOut, , Odds, Evens.

 

PROGRAM Split(INPUT, OUTPUT);

{ INPUT to OUTPUT, , }

VAR

Odds, Evens: TEXT;

PROCEDURE CopyOut(VAR F1: TEXT; VAR Ch1: CHAR);

{ F1 OUTPUT, }

BEGIN {Split}

{ INPUT }

CopyOut(Odds, Ch);

CopyOut(Evens, Ch);

END. {Split}

 

CopyOut

 

PROCEDURE CopyOut(VAR F1: TEXT; VAR Ch1: CHAR);

{ F1 OUTPUT, }

BEGIN {CopyOut}

RESET(F1);

WHILE NOT EOF(F1)

DO

BEGIN

WHILE NOT EOLN(F1)

DO

BEGIN

READ(F1, Ch);

WRITE(Ch)

END;

READLN(F1)

END

END {CopyOut}

BEGIN CopyOut F1 Ch, . , , . . , , . .

 

.

 

BEGIN . . , , . . :

 

PROGRAM Sample(INPUT, OUTPUT);

VAR

Vin: CHAR;

PROCEDURE Bump(VAR Vin: CHAR);

BEGIN {Bump}

IF Vin = A

THEN

Vin:= B
END; {Bump}

BEGIN {Sample}

Vin:= Q;

Bump(Vin)

END. {Sample}

 

PROCEDURE Bump END (s)

= s È {<Bump, BEGIN IF Vin = A THEN Vin:= B END>}

 

..

 

Bump(Vin) (s) = s(Bump) (s) = BEGIN IF Vin = A THEN Vin:= B END (s)

 

.

 

, , . Bump

 

IF Vin = A THEN Vin:= B = (Vin = A -> Vin:= B) | ()

 

Vin , .

 

, , , . ,

 

Bumo(DiffV)

 

DiffV CHAR, DiffV Bump, c Vin. ,

 

Bumo(DiffV) = BEGIN IF DiffV = A THEN DiffV:= B END

 

, P , X, Y,

 

P (Y) (s) = s (P) X<-Y (s)

 

X <- Y , s(P) X Y. : .

 

Bump . ..

 

Bump(DiffV) = (Vin = A -> Vin:= B) Vin <-DiffV | ()

= (DiffV = A -> DiffV:= B) | ()

 

. , . ,

 

PROGRAM Alias(INPUT, OUTPUT);

VAR

One, Two: CHAR;

PROCEDURE SwitchThese2(VAR V1, V2, Temp: CHAR);

{ V1, V2, Temp:= V2, V1, V1 }

BEGIN { SwitchThese2}

Temp:= V1;

V1:= V2;

V2:= Temp

END; {SwitchThese2}

BEGIN {Alias }

SwitchThese2(One, Two, Two);

END. {Alias}

 

 

SwitchThese2(One, Two, Two) = Two:= One; One:= Two, Two:= Two; = (Two:= One)

 

.

(Two, Two, One):= (Two, One:= One, Two)

, , Two V2 Temp.

, , .

, , , , , . .

 

{ }

 

.

, . , , , .

 

.

, , . , . . .

 

: , , , , .

 

, , . , , , . , , .

, , . ,

 

PROCEDURE SwitchThese2(VAR V1, V2, temp: CHAR);

BEGIN

Temp:= V1;

V1:= V2;

V2:= Temp

END

Temp . , , One Two, , ,

 

SwitchThese2(One, Two, Ch)

One Two Ch One.

CF Pascal Temp . :

 

PROCEDURE Exchange(VAR Ch1, Ch2: CHAR);

{ Ch1 Ch2}

VAR

Temp: CHAR;

BEGIN

Temp:= Ch1;

Ch1:= Ch2;

Ch2:= Temp

END

 

Ch1 Ch2, Temp Exchange.

 

Exchange(One, Two)

 

One Two. Exchange , .

 

. , .

, . ,

 

PROGRAM Copy2(INPUT, OUTPUT);

{ INPUT OUTPUT}

PROCEDURE CopyChar(VAR F1, F2: TEXT);

{ F2 F1}

VAR

Ch: CHAR;

BEGIN {CopyChar}

IF NOT EOF(F1)

THEN

BEGIN

READ(F1, Ch);

WRITE(F2, Ch)

END

END; {CopyChar}

BEGIN {Copy2}

CopyChar(INPUT, OUTPUT);

CopyChar(INPUT, OUTPUT);

WRITELN

END. {Copy2}

 

 

.

 

 

  INPUT OUTPUT Ch EOF
  PROGRAM Copy2(INPUT, OUTPUT); BEGIN {Copy2} CopyChar (INPUT, OUTPUT) VAR Ch: CHAR; BEGIN {CopyChar} IF NOT EOF(INPUT) READ(INPUT, Ch); WRITE(OUTPUT, Ch) END; { CopyChar} CopyChar (INPUT, OUTPUT) VAR Ch: CHAR; BEGIN {CopyChar} IF NOT EOF(INPUT) READ(INPUT, Ch); WRITE(OUTPUT, Ch) END; { CopyChar} WRITELN END. {Copy2} ABC A BC/   A B C/     AB C /   ABC   _     A_     AB_   AB/_ AB     ?     A     ?     B       FALSE     FALSE     FALSE  

 

Ch . CopyChar , Ch , CopyChar.

, . , , . , . , , .

 





:


: 2017-03-12; !; : 318 |


:

:

.
==> ...

1376 - | 1216 -


© 2015-2024 lektsii.org - -

: 0.044 .