.阅读下列程序说明和pascal程序把应填入其中的( )处的字句写在答题纸上【上海海运学院 七 (分)】
程序说明
本程序用于判别输入的字符串是否为如下形式的字符串:
W&M$ 其中子字符串M是子字符串W的字符反向排列在此假定W不含有字符&和字符$字符&用作W与M的分隔符字符$用作字符串的输入结束符
例如对输入字符串ab&ba$&$ab&dd$&$程序将分别输出Ok(是)No(不是)
程序
PROGRAM accept(inputoutput);
CONST midch=&; endch=$;
VAR an:boolean; ch:char;
PROCEDURE match(VAR answer: boolean);
VAR chch:char; f:boolean;
BEGIN
read(ch);
IF ch<>endch
THEN IF ()__
THEN BEGIN match(f);
IF f THEN BEGIN read(ch); answer:=()_ END ELSE answer:=false
END
ELSE ()___
ELSE ()___
END;
BEGIN
writeln(Enter String:);
match(an);
IF an THEN BEGIN
()__ IF ()_ THEN writeln(Ok) ELSE writeln(No)
END
ELSE writeln(No)
END
.试利用下列栈和串的基本操作完成下述填空题【清华大学 八】
initstack(s) 置s为空栈
push(sx) 元素x入栈;
pop(s) 出栈操作;
gettop(s) 返回栈顶元素
sempty(s) 判栈空函数
setnull(st) 置串st为空串
length(st) 返回串st的长度
equal(ss) 判串s和s是否相等的函数
concat(ss) 返回联接s和s之后的串
sub(si) 返回s中第i个字符
empty(st) 判串空函数
FUNC invert(pre:string; VAR exp:string):boolean;
{若给定的表达式的前缀式pre正确本过程求得和它相应的表达式exp并返回true否则exp为空串并返回false已知原表达式中不包含括弧opset为运算符的集合}
VAR s:stack; in:integer; succ:boolean; ch: char;
BEGIN
i:=; n:=length(pre); succ:=true;
()__; ()__;
WHILE (i<n) AND succ DO
BEGIN ch:=sub(preil);
IF ()_ THEN ()__
ELSE IF ()__THEN ()_
ELSE BEGIN
exp:=concat(()___()____);
exp:=concat(()___()___);
()__;
END;
i:=i+
END;
IF ()___THEN
BEGIN exp:=concat(expsub(pren)); invert:=true END
ELSE BEGIN setnull(exp); invert:=false END
END;
注意每个空格只填一个语句
[] [] [] [] [] [] [] [] [] [] [] []