pascal编程题目,好难,求大师解答!!!{高悬赏!!!}

有一个R*C的矩阵。人可以在矩阵上,向上下左右移动。小A显然不会放过这一项运动。于是,小A参与了这项运动。一开始,小A在矩阵的(1,1)这个位置,就是说小A在第一行第一列。然后,小A开始走,他会告诉你他走的过程。你的任务是在小A完成每次移动的时候输出纪中地图,也就是一个N*M的矩阵。输出的要求是这样的:用“*”表示小A开始走后经过的地方,用“o”(小写字母o)表示小A没有经过的地方,用“A”表示现在小A站的地方。
样例输入
2 2 2
X 1
Y 1

样例输出
*o
Ao
*o
*A

第1个回答  2015-03-08
var
m,n,t:integer;
temp:char;
forword:array[1..1000] of char;
step:array[1..1000] of shortint;
mat:array[1..100,1..100] of char;
i,j,k,p,q:integer;
begin
readln(m,n,t);
for i:=1 to t do begin read(forword[i]); read(temp); readln(step[i]); end;
for i:=1 to m do for j:=1 to n do mat[i,j]:='o';
mat[1,1]:='*';
i:=1; j:=1;
for k:=1 to t do begin
mat[i,j]:='*';
if upcase(forword[k])='X' then begin
if step[k]=1 then inc(i);
if step[k]=-1 then dec(i);
end;
if upcase(forword[k])='Y' then begin
if step[k]=1 then inc(j);
if step[k]=-1 then dec(j);
end;
mat[i,j]:='A';
writeln;
for p:=1 to m do begin
for q:=1 to n do write(mat[p,q]:1,' ');
writeln;
end;
end;
readln;
end.本回答被提问者采纳