1樓:匿名使用者
const
m=1000;
type stack=array[1..m]of extended;
stack2=array[1..m]of char;
var s:stack;
s2:stack2;
a,e:string;
t,i,x,y:integer;
j,k:extended;
w:char;
cha:set of char;
procedure push2(var s:stack2;x:char;var t:integer);
begin
if t=m then writeln('overflow')
else begin
t:=t+1;
s2[t]:=x;
end;
end;
function pop2(var s:stack2;var t:integer):char;
begin
if t=0 then writeln('underflow')
else begin
pop2:=s2[t];
t:=t-1;
end;
end;
function top2(s:stack2;t:integer):char;
begin
if t=0 then writeln('stack empty')
else top2:=s2[t];
end;
procedure push(var s:stack;x:extended;var t:integer);
begin
if t=m then writeln('overflow')
else begin
t:=t+1;
s[t]:=x;
end;
end;
function pop(var s:stack;var t:integer):extended;
begin
if t=0 then writeln('underflow')
else begin
pop:=s[t];
t:=t-1;
end;
end;
function top(s:stack;t:integer):extended;
begin
if t=0 then writeln('stack empty')
else top:=s[t];
end;
begin
read(e);
a:='';i:=1;t:=0;
cha:=['+','-','*','/','(',')','='];
while i<=length(e) do begin
case e[i]of
'0'..'9':begin
while not(e[i] in cha)and(i<=length(e)) do begin
a:=a+e[i];
i:=i+1;
end;
i:=i-1;
a:=a+',';
end;
'(':push2(s2,'(',t);
')':begin
w:=pop2(s2,t);
while w<>'(' do begin
a:=a+w;
w:=pop2(s2,t);
end;
end;
'+','-':begin
if t<>0 then begin
w:=top2(s2,t);
while w<>'(' do begin
a:=a+w;
w:=pop2(s2,t);
if t=0 then break else w:=top2(s2,t);
end;
end;
push2(s2,e[i],t);
end;
'*','/':begin
if t<>0 then begin
w:=top2(s2,t);
while (w='*')or(w='/')do begin
a:=a+w;
w:=pop2(s2,t);
if t=0 then break
else w:=top2(s2,t);
end;
end;
push2(s2,e[i],t);
end;
end;
i:=i+1;
end;
while t<>0 do a:=a+pop2(s2,t);
a:=a+'@';
i:=1;t:=0;
while a[i]<> '@' do begin
case a[i] of
'0'..'9','.': begin
k:=0;
repeat
k:=10*k+ord(a[i])-ord('0');
i:=i+1;
until (a[i]=',')or(a[i]='.');
if a[i]='.' then begin
x:=1;y:=0;i:=i+1;
while a[i] in ['0'..'9'] do begin
x:=x*10;
y:=y*10+ord(a[i])-ord('0');
i:=i+1;
end;
end;
k:=k+y/x;
push (s,k,t);
end;
'+':push(s,pop(s,t)+pop(s,t),t);
'-':begin
j:=pop(s,t);
push(s,pop(s,t)-j,t);
end;
'*':push (s,pop(s,t)*pop(s,t),t);
'/':begin
j:=pop(s,t);
push(s,pop(s,t)/j,t);
end;
end;
i:=i+1;
end;
writeln(pop(s,t):0:7);
readln;
readln;
end.
用VFP做6 0做簡易的計算機,用VFP做6 0做乙個簡易的計算機??
1全部簡直太簡單了,只需要乙個evaluate 函式就解決了,哪有那麼複雜呀!第一步 哥建議你加兩個命令按鈕 和 這樣才好進行四則混合運算。第二步 把0 9和 以及 和 的命令按鈕的click 都寫成 thisform.text1.value alltrim thisform.text1.value...
C語言。求PI的近似值用c語言程式設計計算pi的近似值
include define offset 0.00001ffloat getpi float a pibefore piafter getpi a 1 return piafter int main 遞迴法 你好,公 bai式為dupi 1 1 2 1 4 1 6 1 8 1 n,c語言代 zhi...
蘋果app是用什麼計算機語言開發的
object c語言,swift語言,c語言。objective c是一種通用 高階 物件導向的程式語言。它擴充套件了標準的ansi c程式語言,將 alltalk式的訊息傳遞機制加入到ansi c 中。它是蘋果的osx和ios作業系統,及其相關api cocoa 和cocoa touch的主要程式...