IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Проблема с программой
SkyRideR
сообщение 13.03.2008 0:45
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


Задали задачу чтобы точка по окружности двигалась, я тут что-то писал, но как-то судя по всему криво, и не работает. помогите пожалуйста.
За ренее спасибо
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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
volvo
сообщение 13.03.2008 1:08
Сообщение #2


Гость






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 19:07
Сообщение #3


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


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

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 16:26
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"