. . , , .
1.12.
1) Turbo Pascal?
2) Turbo Pascal?
3) Turbo Pascal ?
4) , Turbo Pascal?
5) ?
6) ?
7) ?
8) ?
9) Pascal-?
10) ?
11) Write Writeln?
12) Read Readln?
13) Pascal?
2.
2.1.
Pascal IF, CASE GOTO. .
2.2.
1. Turbo Pascal (. 2.5).
2. . , CASE (. 2.7).
2.3.
:
;
;
;
;
.
( ).
2.4.
1. (. 2.8).
2. Turbo Pascal (. 2.5).
3. Turbo Pascal (. 2.5, 2.6, 2.7).
4. (. 2.5). .
5. (. 2.10).
6. (. 1.11).
2.5. Turbo Pascal
, , , . , . :
Readln(N) Writeln(N);
R:= A * B A:= R * B;
|
|
;
..
, , . ! , . , , . Turbo Pascal (debugger), :
() ( );
( ) (breakpoint), , ;
, Watches;
;
(call stack).
:
1) , :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: | program DebugTest; var A, B, R: Integer; begin Write(' A, B: '); Readln(A, B); R:= A + B; R:= R * A; Writeln(': ', R); end. |
3 A, B, R. , :, 2 , A B. , R.
(8) R:= R * A, R A, R. , R . .
2) F7 ( Run \ Trace Into) F8 ( Run \ Step over). F7 F8 , (. 5), , F7 . F7. F7 4 (begin) , .
3) F7 5 (Write). , F7 , .
4) F7. Write , 6 (Readln).
5) F7. . Enter A B , , 7 (R:= A + B).
6) , A B , . A, Debug \ Evaluate/modify ( / ) Ctrl+F4. Evaluate and modify, A ( 2.1)
|
|
2.1 Evaluate and modify
Expression , , : (A * B) / (A + B). Evaluate , Result. ( ) . New value Modify.
7) F7. 7 , R. R Ctrl+F4.
8) , ( Ctrl+F4). R, Debug \ Add watch (Ctrl+F7) . Turbo Pascal Watches, , ( 2.2). Watches .
2.2 Watches
9) F7 , Watch .
10) Run \ Program Reset (Ctrl+F2).
11) , , . . 8 (R:= R * A), Toggle Breakpoint Ctrl+F8. , ( Ctrl+F8 ).
12) Run \ Run (Ctrl+F9), Enter. , ( ), Turbo Pascal , .
13) (, , ). Debug \ Breakpoints. (Edit) ( , ), (View), (Delete), (Clear all).
14) , . 9 (Write) Run \ Go to cursor (F4). Turbo Pascal , , .
2.6. Pascal
2.6.1. IF
, , . Pascal IF. :
if <> then <>;
|
|
< >
: . , ( , .. TRUE), , THEN. , ;. , , THEN, .
, , , . BEGIN..END.
! , BEGIN..END, . BEGIN..END , BEGIN..END .
, , , BEGIN..END, ( IF) :
if A = B then
Begin
< 1>;
< 2>;
...
< N>
end;
, (Boolean) : True False ( ). :
= | <> | > |
< | >= | <= |
(A = B) True , A B ; False;
(A <> B) True , A B .
(A > B) True , A , B.
(A >= B) True , A B, , B.
, , True False :
and | or |
not | xor |
((A < -1) or (A > 1)) True, A -1 1, .. [-1 ÷ 1].
((A = B) and (A > C * C)) True, A B A C, . , False.
not , , .. (not True) False, (not False) True.
(not (A = B)) True , A B.
xor True , True, False. , ((100 > 50) xor (29 = 30)) True, (100 > 50) True, (29 = 30) False.
! Pascal , PROGRAM, VAR BEGIN..END, . ! , .
|
|
. A; , .
Readln(A); { A}
if A < 0 then A:= 0; { 0, }
Writeln('A: ', A); { A}
0. .
program Delenie;
Var
Delimoe, Delitel, Res: Real;
Begin
Delimoe:= 100;
Readln(Delitel); { }
if Delitel = 0 then { }
begin { }
Writeln(': !');
Exit; { }
end; { }
Res:= Delimoe / Delitel; { }
Writeln(': ', Res); { }
end.
, . IF..THEN ELSE, . IF..THEN :
if <> then <1> else <2>; | if <> then begin < 1>; end else begin < 2>; end; |
, ELSE .
2.3 IF..THEN: ELSE .
2.3 if then
else () else ()
X Y Max:
if X > Y then Max:= X else Max:= Y; Write(': ', Max); | if X >= Y then begin Max:= X; Write('X Y'); end else begin Max:= Y; Write('Y X'); end; Write(': ', Max); |
, IF..THEN , , :
if X < -3 then
Y:= X + 1
else if (X > 3) and (X < 10) then
Y:= X * X
else if X >= 10 then
Begin
Y:= Sqrt(X);
Writeln('Y: ', Y);
End
Else
Y:= Y * Y;
, . BEGIN..END . , ELSE , IF..THEN, .
2.6.2.
, CASE, . Pascal (, ), (.. ). , A:= 100 A 100, .. . Pascal : . , CONST : , =, , :
program ConstExample;
Const
MinLimit = 1; { }
MaxLimit = 100; { }
Pi = 3.14; { }
.......
Begin
A:= MaxLimit; { , A:= 100}
if B < MinLimit then...
.......
end;
, , , A:= MaxLimit. , . ( ).
, . , 1 / , :
Const
KiloWattCost = 3.45; { 1 / }
2.6.3. CASE
, (, ) , CASE. CASE IF..THEN, , CASE .
|
|
CASE :
case < > of
< 1>: < 1>;
< 2>: < 2>;
< n>: < N>;
Else
< : >
end;
CASE : (, ). , , , :. , , , ELSE. ELSE ( , ).
N 1 3. X N. , N . 0.
Write(' n: ');
Readln(n); {, n}
case n of
0: { begin... end }
Begin
Writeln(': 0 !');
Y:= 1;
end;
1: Y:= X;
2: Y:= X * X;
3: Y:= X * X * X;
else { }
{ begin... end }
Writeln(' !');
Y:= 0;
end; { case }
Writeln(': ', Y); { }
/ . :
case n of
0, 2..4: Y:= A * B; { n: 0, 2, 3, 4}
1, 5: Y:= A / B;
6: Y:= (A + B) * (A - B);
end;
, CASE :
; ;
; , ;
(, Integer, Byte, Char, Boolean); Real ( ) string ().
2.6.4. GOTO
GOTO (.: ) , . LABEL , ( ). LABEL ( ) . , GOTO <_>, :
goto M1; { M1} <>; M1: <>; goto M1; { M1} | label M1; var X, Y: Real; begin Readln(X); goto M1; M1: Y:= X * 2 3 / X; Writeln('Y=', Y); end. |
, GOTO , . GOTO , (. ).
2.7.
:
program Lab2;
Label
M1, M2; { }
Var
n: Integer;
X, Y: Real;
Flag: Boolean; { N1}
Begin
Writeln(' . : ..');
{ }
Writeln(' :');
Writeln('1 - ');
Writeln('2 - ');
Writeln('3 - ');
Flag:= False; { }
M1:
Write(' : ');
Readln(n); { }
case n of
1: { }
Begin
M2:
Write(' X: ');
Readln(X);
{ }
if X = 0 then
Begin
Writeln('X 0 ');
goto M2; { M2 }
End;
Flag:= True; { 1 , True}
end;
2: { }
Begin
if not Flag then { 1 }
Writeln (' , 1');
Else
begin { 1 }
{ }
if X > 0 then { }
Y:= 1 / X
else { < 0}
Y:= X * X;
Writeln(' X = ', X:7:2, ' Y = ', Y:7:2);
End;
end;
3: Exit; { }
end; { end case }
goto M1; { }
end. { }
. (M1, M2) , Flag: Boolean. , : True False. Flag False. , , Flag , .. False True. , 2 CASE Flag (if not Flag then ), , . (if not Flag then ) , 1 X (Flag True).