Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Проблема с программой

Автор: SkyRideR 13.03.2008 4:45

Задали задачу чтобы точка по окружности двигалась, я тут что-то писал, но как-то судя по всему криво, и не работает. помогите пожалуйста.
За ренее спасибо

program figure;
uses graph, crt;

type
TPoint = object
x, y, r : integer;
t: real;
color : integer;
procedure Show;
procedure Hide;
procedure Move(dx, dy : integer);

end;
procedure TPoint.Show;
begin
putpixel (x, y, color);
end;
procedure TPoint.Hide;
begin
putpixel (x, y, emptyfill);
end;
procedure TPoint.Move;
begin
Hide;
x:= round(dx+r*cos(t)); y:=round(dy+r*sin(t));
Show;
end;

var

GrDriver : integer;
GrMode : integer;
p1 : TPoint;
r : integer;
t: real;

begin

GrDriver:=detect;
GrMode:=0;
initgraph(GrDriver, GrMode, '');
p1.x:=10; p1.y:= 20;
p1.color:=white;
p1.r:=10;
p1.t:=1;

p1.Show;
readkey;

p1.Move(5,5);
p1.Show;
readkey;
p1.Move(1,5);
p1.Show;

readkey;
closegraph;
end.

Автор: volvo 13.03.2008 5:08

program figure;
uses graph, crt;

type
TPoint = object
c_x, c_y, r : integer;
x, y: integer;

color : integer;

constructor init(center_x, center_y, radius, acolor: integer);

procedure Show;
procedure Hide;
procedure Rotate;
end;

constructor tpoint.init(center_x, center_y, radius, acolor: integer);
begin
c_x := center_x; c_y := center_y; r := radius; color := acolor;
end;

procedure TPoint.Show;
begin
putpixel (x, y, color);
end;
procedure TPoint.Hide;
begin
putpixel (x, y, getbkcolor);
end;

procedure TPoint.Rotate;
var t: integer;
begin
for t := 0 to 359 do begin
Hide;
x:= round(c_x + r*cos(t*pi/180)); y:=round(c_y + r*sin(t*pi/180));
Show;
delay(10);
end;
end;

var
GrDriver, GrMode : integer;
p1: TPoint;

begin
GrDriver:=detect; GrMode:=0;
initgraph(GrDriver, GrMode, '');

p1.init(100, 100, 30, white);
p1.rotate;

readkey;
closegraph;
end.
Так лучше?

Учти, в эту программу мной намеренно внесена... Как бы сказать, не ошибка, а не самая хорошая реализация. Преподаватель, скорее всего, это заметит, и программу не примет. Попробуй внимательно посмотреть, и найти эту проблему smile.gif И решить ее... Самостоятельно, лучше всего...

Автор: Michael_Rybak 13.03.2008 23:07

 ! 
Исправляем: 1) Название темы 2) Тег code