Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2012, 01:28   #11
AlexP777
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 33
По умолчанию

помогите найти принадлежность для фигуры


пока сделал так:
Код:
program LAB2;
var x,y,R,yy,yyn : real;
begin
writeln('write x,y and R');
readln(x,y,R);
while y<0 do
  begin
    yy:=abs(x)-sqrt(2*R);
    writeln('Point belong in this figure')
  end;
or while y>0 do
  begin
    yyn:=- abs(x)+sqrt(2*R);
    writeln('Point not belong in this figure')
   end;
readln
end.
но это не правильно...

и делал так:
Код:
program LAB2;
var x,y,R : real;
begin
writeln('write x,y and R');
readln(x,y,R);
if ((y<0) and (abs(x)-sqrt(2*R))) or
  (y>0) and (- abs(x)+sqrt(2*R))
    then writeln('Point belong in this figure')
    else writeln('Point not belong in this figure');
readln
end.
но так там тоже надо задать чему второе ровно или больше/меньше
AlexP777 вне форума Ответить с цитированием
Старый 06.12.2012, 09:28   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нужно попадание в заштрихованную часть?
Забавная задачка..
для проверки условия, что точка лежит за пределами круга, очевидно, достаточно, что должно выполняться
sqr(x)+sqr(y)>sqr(R)

а вот остальное (для меня) не так очевидно.

я бы написал решение "в лоб" (пусть это будет некрасиво, но зато кондово и надёжно!)
для каждой линии написал условие прямой (4-ре уравнения) и дальше проверял знаки x и y
примерно так.
Код:
  SquarePoint := sqrt(2)*R;
  if (sqr(x)+sqr(y)>sqr(R)) and
    ( (x>0) and (y>0) and y<(-x+SquarePoint) or 
      (x<0) and (y>0) and y<(x+SquarePoint) or 
      (x<0) and (y<0) and y>(-x-SquarePoint) or 
      (x>0) and (y<0) and y>(x-SquarePoint) )
    then writeln('Point belong in this figure')
    else writeln('Point not belong in this figure');

Последний раз редактировалось Serge_Bliznykov; 06.12.2012 в 11:22.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.12.2012, 09:34   #13
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Кстати на картинке квадратик со смещением
это задумка автора или кривость полиграфии?
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 06.12.2012, 09:42   #14
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
а вот остальное (для меня) не так очевидно.
ну, по-сути, тут система двух условий:

y < (1 - abs(X)) * R*sqrt(2)/2
y > (abs(X) - 1) * R*sqrt(2)/2
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 06.12.2012, 09:47   #15
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
program LAB2;
var x, y, R : real;
begin
writeln('write x, y and R');
readln(x, y, R);
x := abs(x);
y := abs(y);
if ((x * x + y * y > R * R) and (y < - x + sqrt(2) * R)
    then writeln('Point belong in this figure')
    else writeln('Point not belong in this figure');
readln
end.
Без включения границ
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 06.12.2012 в 09:50.
BDA вне форума Ответить с цитированием
Старый 06.12.2012, 10:20   #16
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Упс. С математикой я явно накосячил)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 06.12.2012, 14:14   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

BDA, отличное решение. Отобразить точки в первую четверть и потом уже сравнивать с единственной прямой - это просто шик-модерн. Плюсую!

Признаюсь, долго не мог разобраться в чём соль вашего решения... пока не обратил внимание, что вы делаете abs(x) и abs(y)



справедливости ради, хочу сказать, что мой громоздкий код тоже вполне себе рабочий, только каждое сравнение y с уравнением прямой надо дополнительно в круглые скобочки взять
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.12.2012, 07:19   #18
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
'Point belong in this figure'
А разве не 'Point belong to this figure'
Poma][a вне форума Ответить с цитированием
Старый 07.12.2012, 09:04   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
А разве не 'Point belong to this figure'
Разумеется, Вы правы, конечно же belong to

я не писал данный текст, скопировал из поста выше..
Да и не суть в этом, не думаю, что программа не будет сдана из-за этой ошибки!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.12.2012, 12:31   #20
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
А разве не 'Point belong to this figure'

вообще-то, "The point belongs to this figure" - это как минимум )). Но есть ли смысл поправлять ошибки в английском, если их и в русском хватает? Не говоря уже о Паскале ))
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить принадлежность точки к области Fuckkiller Паскаль, Turbo Pascal, PascalABC.NET 2 21.12.2011 23:28
Определить принадлежность точки с координатами (x,y) volk_102 Помощь студентам 1 02.12.2011 10:03
Определить принадлежность точки к области xrumas Общие вопросы Delphi 1 02.12.2011 02:20
определить принадлежность точки в с++ bigildar Помощь студентам 4 06.11.2011 16:04
Определить принадлежность точки к области. Водонька Помощь студентам 2 02.10.2011 16:47