pascal题目,急!!

一、pascal题目,急!!

5.代码

var a:array [1..8] of integer;

b,c,d:array [-7..16] of integer;

t,i,j,k:integer;

procedure print;

begin

t:=t+1;

write(t,’ ‘);

for k:=1 to 8 do write(a[k],’ ‘);

writeln;

end;

procedure try(i:integer);

var j:integer;

begin

for j:=1 to 8 do {每个皇后都有8种可能位置}

if (b[j]=0) and (c[i+j]=0) and (d[i-j]=0) then {判断位置是否冲突}

begin

a[i]:=j; {摆放皇后}

b[j]:=1; {宣布占领第J行}

c[i+j]:=1; {占领两个对角线}

d[i-j]:=1;

if i<8 then try(i+1) {8个皇后没有摆完,递归摆放下一皇后}

else print; {完成任务,打印结果}

b[j]:=0; {回溯}

c[i+j]:=0;

d[i-j]:=0;

end;

end;

begin

for k:=-7 to 16 do {数据初始化}

begin

b[k]:=0;

c[k]:=0;

d[k]:=0;

end;

try(1);{从第1个皇后开始放置}

end.

二、pascal实数加法

var

s1,s2,s3 :string;

l1,l2 :integer2 :integer;

poi

i,j,k :integer;

begin

readln(s1);readln(s2);

k:=pos(’.‘,s1);if k=0 then s1:=s1+’.‘;

k:=pos(’.‘,s2:=s2+’.‘;

l1:1);k:=pos(’.=k-1;x1:=l1-k;

l2:=lengs(‘.’,s2);z2:=k-1;x2:=l2-k;

if z1>z2 then

for k:=1 to z1-z2 do s2:=‘0’+s2

else

for k:=1 to z2-z1 do s12 then

for k:=1 t+‘0’

else

for k:=1 to x2-x1 do s1:=s1+‘0’;

k:=pos(‘.’,s1);delete(s1,k,1);delete(s2,k,1os:=k;

j:=0;

pascal题目,急!!

for i:=length(s3) downto 1 do

begin  k:=ord(s1[i])-ord('0')+ord(s2[i])-ord('0')+j;  if k>9 thek-10; end else j:=0;  s3[i]:=chr(ord('0')+k);end;

insertpos);

if j=1 ths3;

while s3[len=‘0’ do delete(s3),1);

if s3[le.’ then delete(s3,length(s3),1);

writeln(s3);

end.

写的可以问我。嘿嘿。

三、pascal实数加法

var

s1,s2,s3 :string;

l1,l2 :integer;

x1,x2,z1,z2 :integer;

pointpos :integer;

i,j,k :integer;

begin

readln(s1);readln(s2);

k:=pos(‘.’,s1);if k=0 then s1:=s1+‘.’;

k:=pos(‘.’,s2);if k=0 then s2:=s2+‘.’;

l1:=length(s1);k:=pos(‘.’,s1);z1:=k-1;x1:=l1-k;

l2:=length(s2);k:=pos(‘.’,s2);z2:=k-1;x2:=l2-k;

if z1>z2 then

for k:=1 to z1-z2 do s2:=‘0’+s2

else

for k:=1 to z2-z1 do s1:=‘0’+s1;

if x1>x2 then

for k:=1 to x1-x2 do s2:=s2+‘0’

else

for k:=1 to x2-x1 do s1:=s1+‘0’;

k:=pos(‘.’,s1);delete(s1,k,1);delete(s2,k,1);s3:=s1;pointpos:=k;

j:=0;

for i:=length(s3) downto 1 do

begin  k:=ord(s1[i])-ord('0')+ord(s2[i])-ord('0')+j;  if k>9 then begin j:=1;k:=k-10; end else j:=0;  s3[i]:=chr(ord('0')+k);end;

insert(‘.’,s3,pointpos);

if j=1 then s3:=‘1’+s3;

while s3[length(s3)]=‘0’ do delete(s3,length(s3),1);

if s3[length(s3)]=‘.’ then delete(s3,length(s3),1);

writeln(s3);

end.写了个简单的。。有什么看不懂的可以问我。嘿嘿。

本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。