B4-?? Rô bốt
Vì phải đi đủ 4 hướng nên ta cho rô bốt đến điểm cách x1, y1 một đơn vị
Nếu x1>0 và y1>0 thì x1 :=x1+1 ; y1 :=y1+1, bài toán đơn giản như thế này
var x1,y1,x,y:integer;
s:string;
begin
write('Nhap toa do Robot:');
readln(x1,y1);
inc(x1);
inc(y1);
while (x<x1)or(y<y1) do
begin
if x<x1 then begin inc(x);s:=s+'N';end;
if y<y1 then begin inc(y);s:=s+'E';end;
end;
s:=s+'SW';
writeln(s);
readln;
end.
Nhưng điểm đến có thể ở 4 vị trí khác nhau
X1>0 và y1>0 Hoặc X1>0 và y1<0 hoặc X1<0 và y1>0 hoặc X1<0 và y1<0
Đây là chương trình tổng hợp ứng với 4 vị trí:
var x1,y1,x,y:integer;
s:string;
begin
write('Nhap toa do Robot:');
readln(x1,y1);
If x1<0 then dec(x1) else inc(x1);
If y1<0 then dec(y1) else inc(y1);
while (x<>x1)or(y<>y1) do
begin
if x<x1 then begin inc(x);s:=s+'N';end;
if y<y1 then begin inc(y);s:=s+'E';end;
if x>x1 then begin dec(x);s:=s+'S';end;
if y>y1 then begin dec(y);s:=s+'W';end;
end;
if (x1>0)and(y1>0)then s:=s+'SW';
if (x1>0)and(y1<0)then s:=s+'SE';
if (x1<0)and(y1>0)then s:=s+'NW';
if (x1<0)and(y1<0)then s:=s+'NE';
writeln(s);
readln;
end.
Trần Minh Thọ @ 07:42 12/09/2013
Số lượt xem: 1243
- B4-?? (12/09/13)

Nếu có cách giải hay hơn! xin hãy thảo luận để cùng học hỏi nhé!