Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 4
Регистрация: 14.06.2010
Сообщений: 82

Принадлежит ли точка окружности на плоскости

23.05.2014, 21:29. Показов 923. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите тело функции, определяющей принадлежит ли точка окружности на плоскости.
Pascal
1
function exist_circle(a:Point; o:Circle):boolean;
Это задача по вычислительной геометрии
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.05.2014, 21:29
Ответы с готовыми решениями:

Принадлежит ли точка окружности.
Вводится координаты точки,координаты центра окружности,раиус окружности. Определить точка пранадлежит,на границе или не принадлежит. ...

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

Определить, принадлежит ли точка с координатами х, у заштрихованной плоскости
Помогите написать программу для решения задачи, которая выводит на экран true, если точка с координатами (х,у) принадлежит закрашенной...

9
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.05.2014, 09:10
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
type Point=record
           x,y:real;
           end;
     Circle=record
            x,y,r:real
            end;
function exist_circle(a:Point;o:Circle):boolean;
var d:real;
begin
d:=sqrt(sqr(a.x-o.x)+sqr(a.y-o.y));
exist_circle:=d<=o.r
end;
0
30 / 24 / 27
Регистрация: 06.05.2014
Сообщений: 161
29.05.2014, 03:35
Puporev, а ведь ошибочка у Вас

Должно быть (не принимая во внимание того, что нельзя так сравнивать вещественные числа)

Pascal
1
exist_circle:=d=o.r
0
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
29.05.2014, 04:07
Цитата Сообщение от tegauss Посмотреть сообщение
ошибочка у Вас
Он имел ввиду круг (недосмотрел). А относительно проверки на равенство вещественных чисел, то здесь можно использовать MinReal (или другую достаточно близкую положительную величину, например 1E-15):
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
type
  Point = record
    x, y: real;
  end;
  Circle = record
    x, y, r: real
  end;
 
function exist_circle(a: Point; o: Circle): boolean;
var
  d: real;
begin
  d := sqrt(sqr(a.x - o.x) + sqr(a.y - o.y));
  exist_circle := (d - o.r) < MinReal
end;
 
var
  a: point;
  o: circle;
 
begin
  a.x := 22; a.y := 21;
  o.x := 25; o.y := 25; o.r := 5;
  writeln(exist_circle(a, o))
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
29.05.2014, 06:51
Тогда уж
Pascal
1
exist_circle := abs(d - o.r) < MinReal
1
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
29.05.2014, 12:03
Цитата Сообщение от Puporev Посмотреть сообщение
abs(d - o.r)
Да, правильно. Можно говорить, что опечатка ...
0
30 / 24 / 27
Регистрация: 06.05.2014
Сообщений: 161
29.05.2014, 20:13
erl27, скажите пожалуйста, мне кажется, или записи

Pascal
1
(abs(d - o.r) < MinReal)
и

Pascal
1
(d = o.r)
совершенно ничем не отличаются?
0
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
29.05.2014, 20:30
Смысл у них один: проверить на равенство числа d и o.r. Но поскольку числа вещественные, то сравнить их можно только с некоторой точностью. Наиболее близким к 0 в паскале есть число MinReal, это своего рода "нуль" в паскале - все, что меньше от него, принимается за 0. Писать равентсво между вещественными числами нельзя, поскольку с точки зрения математики числа 0.99999.. и 1 - одно и то же, а с токи зрения паскаля - это разные числа. Иногда паскаль округляет 0.9999... до 1, а иногда и нет, поэтому нужно писать |x - 1| < minReal
0
30 / 24 / 27
Регистрация: 06.05.2014
Сообщений: 161
30.05.2014, 00:52
erl27, имеется в виду следующее: MinReal - меньшее из чисел типа real. меньше него только 0, так?

Тогда

Pascal
1
(abs(d - o.r) < MinReal)
будет истинным только тогда, когда abs(d - o.r) = 0. Что эквивалентно (d = o.r).

Изначально я имел в виду то, что в выражении

Pascal
1
abs(d - o.r) < eps
не стоит брать eps настолько маленьким, как MinReal. Это никак не поможет.
0
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
30.05.2014, 01:05
Цитата Сообщение от tegauss Посмотреть сообщение
не стоит брать eps настолько маленьким, как MinReal
Все верно, мне обычнго для своих нужд хватает что-то типа 0.000001, ли 1Е-10 и т.д. Все дело в точности, с которой вы работаете.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2014, 01:05
Помогаю со студенческими работами здесь

Определить, принадлежит ли точка заштрихованной части плоскости
Помогите пожалуйста составить программу в паскале. Даны действительные числа x,y. Определить, принадлежит ли точки с координатами x, y...

Заданы x и y, принадлежит ли точка (x,y) заштрихованной части плоскости
заданы x и y, принадлежит ли точка (x,y) заштрихованной части плоскости, нужно составить программу в паскале, помогите пожалуйста, написать...

Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости
Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости. Фигура указана...

Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости
Определить, принадлежит ли точка с координатами X и Y заштрихованной части плоскости

Определить, принадлежит ли точка области плоскости, ограниченной линиями
Определить, принадлежит ли точка области плоскости, ограниченной линиями x2+(y-1)2=1, y=1-x2, y&gt;=0


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru