當前位置:編程學習大全網 - 編程語言 - END_IF在那種編程語言裏出現? 例如:編程片段如下:

END_IF在那種編程語言裏出現? 例如:編程片段如下:

aodashi;

const p='+-*/^()#';

c:array[1..8,1..8]of integer=

((1, 1, 0, 0, 0, 0, 1, 1),

(1, 1, 0, 0, 0, 0, 1, 1),

(1, 1, 1, 1, 0, 0, 1, 1),

(1, 1, 1, 1, 0, 0, 1, 1),

(1, 1, 1, 1, 1, 0, 1, 1),

(0, 0, 0, 0, 0, 0, 2, 1),

(3, 3, 3, 3, 3, 3, 3, 3),

(0, 0, 0, 0, 0, 0, 0, 1)

);

var i,j,k:integer;

a,jg:real;

s:string;

function jisuan(shu1,shu2:real; k:integer):real;

var jg:real;

begin

case k of

1: jg:=shu1+shu2;

2: jg:=shu1-shu2;

3: jg:=shu1*shu2;

4: jg:=shu1/shu2;

5: jg:=exp(shu2*ln(shu1));

end;

jisuan:=jg;

end;

function guifan(st:string; a:real):string;

var sn,ste:string;

i,j,max:integer;

begin

str(a:10:4,ste);

sn:=st;

i:=0;

max:=length(sn);

while i<max do

begin

i:=i+1;

if sn[i]=' ' then

begin

for j:=i+1 to max do

begin

sn[j-1]:=sn[j];

end;

max:=max-1;

i:=i-1;

continue;

end;

if sn[i]='a' then

begin

delete(sn,i,1);

insert(ste,sn,i);

max:=max+length(ste)-1;

end;

end;

guifan:=copy(sn,1,max);

end;

//計算表達式子程序

function jisuanbiaodashi(st:string; a:real):real; // str: 要計算的表達式

var i,j,k,ls,lf,t:integer;

x:real;

b,bb:boolean;

shu:array[1..100]of real;

fu :array[1..100]of integer;

s :string;

begin

fillchar(shu,sizeof(shu),0);

fillchar(fu,sizeof(fu),0);

s:=st+'#';

ls:=0; lf:=1; fu[1]:=8; i:=0;

repeat

begin

shu[ls+1]:=0;

b:=false;

bb:=false;

i:=i+1;

while ((s[i]>='0')and(s[i]<='9')) do

begin

b:=true;

if (s[i]<>'.')and(bb=false) then

begin

val(s[i],x);

shu[ls+1]:=10*shu[ls+1]+x;

i:=i+1;

continue;

end;

if s[i]='.' then begin bb:=true; i:=i+1; t:=i-1; continue; end;

if bb=true then

begin

val(s[i],x);

shu[ls+1]:=shu[ls+1]+ x*1/exp((i-t)*ln(10));

i:=i+1;

continue;

end;

end;

if b=true then begin ls:=ls+1; i:=i-1; continue; end;

k:=pos(s[i],p);

if (k=0)or(k>8) then begin writeln('error'); exit; end;

while (c[fu[lf],k]=1) do begin

shu[ls-1]:=jisuan(shu[ls-1],shu[ls],fu[lf]);

ls:=ls-1;

lf:=lf-1;

if lf=0 then break;

end;

if lf<>0 then

case c[fu[lf],k] of

0: begin lf:=lf+1; fu[lf]:=k; end;

2: lf:=lf-1;

3: begin writeln('error'); exit; end;

end;

end;

until s[i]='#';

jisuanbiaodashi:=shu[1];

end;

begin

readln(s);

jg:=jisuanbiaodashi(guifan(guifan(s,a),a),a);

writeln(jg:10:2);

readln;

end.

  • 上一篇:寫跟友誼有關的作文,題目應該取什麽好
  • 下一篇:銑床的數控改造
  • copyright 2024編程學習大全網