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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2012, 17:54   #1
AlexP777
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 33
Восклицание определить принадлежность точки

Здравствуйте,

Прошу помочь, забыл формулу для вычисления(точнее не знаю).

Задача:
По заданным координатам точки X и Y определить ее принадлежность заштрихованной области (включая границы).
Скриншот фигуры прилагаю.
AlexP777 вне форума Ответить с цитированием
Старый 24.11.2012, 18:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
if
  ( (x>0) and (sqrt(x*x+y*y)<=r))
or
  ((x<0) and (abs(x)<=A) and (abs(y)<=r) )
Тхен
 ...
Так-то как-то...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.11.2012, 18:24   #3
AlexP777
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 33
По умолчанию

не совсем разобрался

там надо вывести принадлежит да/нет
это тип данных boolean, но A, R, x,y это же real.

как это правильно оформить?
да, еще какие значения придавать x, y? вводить значения с клавы или задать их?

вот что сделал, но выводит в что точка не пренадлежит либо ничего не выводит - т.е. надо где-то в цикле написать вывод этой фразы...


Код:
program lab2;
var x, y, r, a : real;
begin
writeln ('Wrtite value fot x, y, R and A');
readln (x, y, r, a);
if ((x>0) and (sqrt(x*x+y*y)<=r)) 
  or ((x<0) and (abs(x)<=A) and (abs(y)<=r))
    then (writeln ('Point not belong in this figure'))
end.
AlexP777 вне форума Ответить с цитированием
Старый 24.11.2012, 18:29   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
это тип данных boolean, но A, R, x,y это же real.
И что? В операторах условия они будут сравниваться и на основе сравнения будет выполняться та или иная ветка.
Цитата:
вводить значения с клавы или задать их?
Зависит от твоей фантазии.
Цитата:
вот что сделал
Во-первых: Фразы ты перепутал.
Во-вторых: фраза "не пренадлежит" должна быть после else условия, а ты его не описал, поэтому
Цитата:
либо ничего не выводит
В-третьих: тестируй программу на заранее известных точках, которые дадут определенный правильный результат, о котором тебе известно заранее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.11.2012, 18:34   #5
AlexP777
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 33
По умолчанию

по поводу третего - таких точек не задано.


Код:
program lab2;
var x, y, r, a : real;
begin
writeln ('Wrtite value fot x, y, R and A');
readln (x, y, r, a);
if ((x>0) and (sqrt(x*x+y*y)<=r)) 
  or ((x<0) and (abs(x)<=A) and (abs(y)<=r))
    then (writeln ('Point belong in this figure')) else (writeln ('Point not belong in this figure'))
end.
ничего не попутал? действительно, жаль, что не заданы такие точки.

Последний раз редактировалось AlexP777; 24.11.2012 в 18:40.
AlexP777 вне форума Ответить с цитированием
Старый 24.11.2012, 18:47   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

AlexP777, как это не заданы? У Вас есть область, по которой Вы сами должны взять точки, лежащие внутри или снаружи.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 24.11.2012, 18:49   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
ничего не попутал?
Похоже на правду, но в конце программы readln не помешает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.11.2012, 18:53   #8
AlexP777
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 33
По умолчанию

Цитата:
AlexP777, как это не заданы? У Вас есть область, по которой Вы сами должны взять точки, лежащие внутри или снаружи.
я подбирал правдоподобные графику точнее сказать

Цитата:
Похоже на правду, но в конце программы readln не помешает.
спасибо

правда не могу подобрать точки для ответа да и для нет
например, x,y 20
R 9
A 8
либо если поменять значения R и A ответ не меняется.
AlexP777 вне форума Ответить с цитированием
Старый 24.11.2012, 20:41   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Все правильно:
При х=20 у=20 а=8 r=9 - нет
При х=20 у=20 а=9 r=8 - нет

Посмотрите внимательнее на область и найдите точку, которая принадлежит всегда (при любых неотрицательных a и r).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 25.11.2012, 01:00   #10
AlexP777
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 33
По умолчанию

спасибо большое за последнюю фразу.
например, X and Y -2
R and A 10
при этом R фактически не может быть отрицательным(это ведь радиус). даже если бы мог - не в тех четвертях лежит.

еще раз благодарю.
AlexP777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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