Помощь - Поиск - Пользователи - Календарь
Полная версия: Проблема с программой
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
SkyRideR
Задали задачу чтобы точка по окружности двигалась, я тут что-то писал, но как-то судя по всему криво, и не работает. помогите пожалуйста.
За ренее спасибо
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
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
 ! 
Исправляем: 1) Название темы 2) Тег code

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.