程序說明
本程序用於判別輸入的字符串是否為如下形式的字符串:
W&M$ 其中
例如
程序
PROGRAM accept(input
CONST midch=
VAR an:boolean; ch:char;
PROCEDURE match(VAR answer: boolean);
VAR ch
BEGIN
read(ch
IF ch
THEN IF (
THEN BEGIN match(f);
IF f THEN BEGIN read(ch
END
ELSE (
ELSE (
END;
BEGIN
writeln(
match(an);
IF an THEN BEGIN
(
END
ELSE writeln(
END
initstack(s) 置s為空棧
push(s
pop(s) 出棧操作;
gettop(s) 返回棧頂元素
sempty(s) 判棧空函數
setnull(st) 置串st為空串
length(st) 返回串st的長度
equal(s
concat(s
sub(s
empty(st) 判串空函數
FUNC invert(pre:string; VAR exp:string):boolean;
{若給定的表達式的前綴式pre正確
VAR s:stack; i
BEGIN
i:=
(
WHILE (i<n) AND succ DO
BEGIN ch:=sub(pre
IF (
ELSE IF (
ELSE BEGIN
exp:=concat((
exp:=concat((
(
END;
i:=i+
END;
IF (
BEGIN exp:=concat(exp
ELSE BEGIN setnull(exp); invert:=false END
END;
注意
[
From:http://tw.wingwit.com/Article/program/sjjg/201311/22588.html