.


:




:

































 

 

 

 





, , . :
inf, , next, .

Top , .

type ref=^Elem; { }

Elem = record { }

inf:integer; { }

next:ref { }

end;

var Top:ref;

procedure DoTop; // }

begin

Top:=nil

end;

function IsEmpty:boolean; //,

begin

Result:=(Top=nil)

end;

procedure Push(x:integer); // x

var p:ref;

begin

new(p);

p^.inf:=x;

p^.next:=Top; { }

Top:=p { }

end;

function Pop:integer; //

var p:ref;

begin

Result:=Top^.inf; //

p:=Top;

Top:=Top^.next; //

dispose(p) // ,

end;

function InTop:integer; // }

begin

Result:=Top^.inf; //

end;

procedure Swap; //

var x:integer;

begin

x:=Top^.inf;

Top^.inf:=Top^.next^.inf;

Top^.next^.inf:=x;

end;

, . : , , .

. , . , , .. ( ) .

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

,

( a + b * c ) /   - ( a + b ) * ( d + c / ( f - g ) )
                                                     

:

1 7

11 15

22 26

17 27

procedure Error;

begin writeln(
);
halt { }

end;

begin {}

DoEmpty; { }

write( ); readln(S);

for i:=1 to length(S) do

begin

if S[i]=( then Push(i); { (}

if S[i]=)

then if not IsEmpty { )}

then writeln(Pop:4,i:4) { ( )}

else Error

end;

if not IsEmpty then Error { }

end.

AS nAS. Top 0..nAS. , Top=0.

const nAS=100;

var Top: 0..nAS;

AS:array[1..nAS] of integer;

Procedure DoTop;

begin Top:= 0

end;

function Empty:boolean;

begin Result:=(Top=0)

end;

procedure Push (i: integer);

begin

Top:=Top+1;

AS[Top]:=i;

end;

function Pop: integer;

begin

Result:=AS[Top];

Top:=Top-1;

end;

, ( ), (), .

: , , , .

.

: , , , .

:

y , , y.

x , , x.

, .

( ) , .

() , .

:

0.

X i, Y i+1.

() .

:

.

.

, , , .

 

2, , .

.





:


: 2016-11-12; !; : 922 |


:

:

80% - .
==> ...

1577 - | 1441 -


© 2015-2024 lektsii.org - -

: 0.011 .