2000 - SÊN BÒ(DÀNH CHO HỌC SINH THCS VÀ THPT)TA CÓ THỂ THẤY NGA...

Bài 18/2000 - Sên bò

(Dành cho học sinh THCS và THPT)

Ta có thể thấy ngay là con sên phải đi N bước (vì xi

+1

= xi+1), và nếu đi lên k bước thì lại di xuống k bước

(vì yN = y

0

= 0). Do đó, h = N div 2;

Chương trình có thể viết như sau:

Program Senbo;

Uses Crt, Graph;

Var f:Text;

gd, gm, N, W,xo,yo:Integer;

Procedure Nhap;

Begin

Write('Nhap so N<50:');Readln(N);

If N>50 Then N:=50;

End;

Procedure Veluoi;

Var i,j,x,y:Integer;

W:=(GetMaxX -50) Div N;

yo:=GetMaxY-100;

xo:=(GetMaxX-W*N) Div 2-25;

For i:=0 To N Do

For j:=0 To N Div 2 Do

Begin

x:=i*W+xo;

y:=yo-J*W;

Bar(x-1,y-1,x+1,y+1);

End;

Procedure Bo

Var i,j,xo,yo,x,y:Integer;

Sx,Sy,S:String;

j:=0;xo:=xo;y:=yo;

Writeln(f,N:2,N Div 2:3);

SetColor(2);

OutTextXY(xo,yo+5,'(0,0)');

For i:=1 To N Do

Begin

If i<=N-i Then Inc(j)

Else If j>0 Then Dec(j);

Writeln(f,i:2,j:3);

x:=i*W+xo;y:=yo-j*W;

Line(xo,yo,x,y);

Str(i,sx);str(j,sy);

S:='('+sx+','+sy+')');

OutTextXY(x,y+5,s);

Delay(10000);

xo:=x;yo:=y;

End;

Nhap;

Assign(F,'P5.Out');

ReWrite(F);

Dg:=Detect;

InitGraph(Gd,Gm,'');

VeLuoi;

Bo;

Readln;

Close(F);

CloseGraph;

End.