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;

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.写了个简单的。。有什么看不懂的可以问我。嘿嘿。