用pascal語言寫個簡易計算器程式

2022-07-18 02:10:02 字數 3154 閱讀 3477

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的主要程式...