PDA

Показать полную графическую версию : Как определить расположение точки относительно окружности


максим19.94
17-12-2012, 18:14
Задано координати крапки А(х, у) . Визначити її розташування щодо окружності x2 + y2 = 9 .

lxa85
17-12-2012, 18:27
максим19.94, первый и самый главный вопрос: понятно ли вам задание?
Если да, то пересказать задание своими словами.
Если нет, читать и думать до полного понимания.
Как начинали решать?
Что именно не выходит?
Учтите, что ответы вопросы принимаются только после полного понимания задачи и заданного в ней вопроса.

Нарисуйте данную окружность в декартовой системе координат.
Как относительно нее могут располагаться точки?
Задайте не менее 5ти точек в различных четвертях плоскости.

максим19.94
17-12-2012, 18:30
Я не понимаю как ЗАПИСАТЬ из Этого уравнения програмку в VBA?

lxa85
17-12-2012, 19:08
максим19.94, а я и не спрашиваю, как записать из этого уравнения программу на VBA.
Я прошу объяснить, как вы поняли условие задачи. Расскажите что требуется своими словами.
Потому что вы сейчас летите вперед паровоза, не понимая того, что от вас требуется.

Поэтому перечитываем задание и думаем о том, что хотят спросить авторы.

максим19.94
17-12-2012, 19:15
Совет хороший я понял! проблема в другом, в том что я полный ноль в VBA!

lxa85
17-12-2012, 19:25
максим19.94, проблема в том что я полный ноль в VBA! »
пиши программу в псевдокоде, т.е. словами. (ЕСЛИ, ТО, ПОКА, ЦИКЛ и т.д.)
Вообще алгоритм решения задач таков:
прочитать условие, еще раз прочитать условие, постараться понять, что хочет спристь автор и что он предлагает в качестве начального материала.
В третий раз перечитать условие и убедиться в собственной правоте.
Сочинить схемку решения. Схема решения становится основой блок-схемы программы.
И вот только сейчас, после серьезной предварительной подготовки, можно говорить о программировании задачи в некоторой среде. (VBA)

Поэтому :
Смысл, схема, блок-схема, псевдокод, VBA код, проверка работоспособности программы, выводы.

максим19.94
17-12-2012, 19:31
А можете просто помочь с написанием кода????

lxa85
17-12-2012, 19:34
максим19.94, А можете просто помочь с написанием кода? »
когда ты мне напишешь, что от меня требуется, тогда помогу.
Т.к. лично я могу интерпретировать фразу "Определить ее расположение относительно окружности x2 + y2 = 9" как мне только заблагорассудится.

максим19.94
17-12-2012, 19:48
Написать програмку, что бы можно было если подставить любые числа вместо координат (X,Y)! и решалалось за формулой
x2 + y2 = 9

lxa85
17-12-2012, 20:20
как я понимаю, это x2 + y2 = 9 »
уравнение окружности. Соотв уравнение определяет только те точки, координаты которых удовлетворяют заданному условию.
Соотв. подставить любые числа в данное уравнение за решением их формулой не представляется возможным.
Т.е. условие мне не понятно, решить я эту задачу не могу в принципе.

На пальцах.
Либо точка принадлежит окружности, либо не принадлежит. Т.е. часть пространства (плоскости) принадлежит окружности, часть нет.
Подставить любые числа туда нельзя.
Пример.
Точки (0;3), (3;0), (3/корень(2) ; 3/корень(2)) - принадлежат окружности.
Точки (1;2), (2,2), (3,2), (1,4), (5,2) - не принадлежат окружности.

Соотв. повторяю вопрос:
Что требуется?

максим19.94
17-12-2012, 20:29
Что бы при вводе точек выщитывало расположение входят или не входят точки в эту формулу

lxa85
17-12-2012, 20:49
VB под руками нет. Поэтому в черновике:

Const Epsilon = 0.01 ' Можно меньше, на усмотрение автора
Const R = 3
Dim Answer AS String
Dim Circle_Min, Circle_Max As Single
Dim X, Y As Single

Circle_Min = R*R-Epsilon
Circle_Max = R*R+Epsilon

Input ("Введите X,Y",x,y)

If (x*x + y*y < Circle_Min ) Then answer = "Точка лежит внутри окружности"
If (x*x + y*y > Circle_Min ) and (x*x + y*y <Circle_Max) Then answer = "Точка принадлежит окружности"
If (x*x + y*y > Circle_Max) Then answer = "Точка лежит вне окружности"

Print answer

Iska
17-12-2012, 23:30
lxa85, таки не утерпели ;)?

Tau_0
18-12-2012, 00:12
Задайте не менее 5ти точек в различных четвертях плоскости. »
Да здесь совершенно по барабану в каких квадрантах точка лежит, да и неважно внутри окружности точка или вне её....

Delirium
18-12-2012, 01:42
максим19.94, Предупреждаю в последний раз - или начинаем читать правила раздела "Программирование" на форуме, или все подобные темы будут удалены.

lxa85
18-12-2012, 09:03
Iska, да все равно ему не поможет.
Потому что на простейший вопрос, "Зачем нужен эпсилон?" ответа не последует.
Да и смысл задания ТС так и не понял.
Tau_0, вопрос не ко мне.

Tau_0
18-12-2012, 17:31
"Зачем нужен эпсилон?" ответа не последует. »
Без эпсилон никак нельзя...

ЗЫ Вы поняли/расшифровали ентот примерчик гораздо глубже, чем он того заслуживает....:)

lxa85
21-12-2012, 18:46
Ради интереса, задал эту задачку порешать своим студентам.
"Определить принадлежность точки к формуле."
6 из 6 с ней не справились.
4 честно написали свое решение
If (x*x)+(y*y) == 9
Отдельные решения были полностью прокомментированны, 2жды использовался паскаль (Я не знаю, как админам удалось поставить Turbo Pascal на Windows 7, я не пробовал). 2 раза Java, среда Eclipse.
Открытый pyScipter (среда разработки под питон) был дружно проигнорирован.
2ое списавших, один честно (с моего разрешения), второй из-под тишка.
Были попытки поймать исключения при ошибочно введенных данных, ведения интерактивного консольного диалога с пользователем.
Во время разбора полетов час вспоминали геометрию 7-8ого класса.
Соотношение мальчик/девочка поровну -- 3/3
Возрастная группа 20-21 год.
Может я как то не так спрашиваю? Народ то, не сказать, что совсем глупые.
Или надо строже с ними общаться? Ерунда какая то.

XPEHOMETP
22-12-2012, 11:16
Я не знаю, как админам удалось поставить Turbo Pascal на Windows 7, я не пробовал »
Кроме среды разработки "Труба-Паскаль" есть более современные варианты, поддерживающие старый синтаксис. Вроде Free Pascal, Pascal ABC и т.д. А в конце концов, словно для для хардкорных юзеров старых компиляторов были созданы виртуальные машины.

Tau_0
22-12-2012, 23:16
Ради интереса, задал эту задачку порешать своим студентам. »
А введение эрсилон неявно подразумевает толщину линии. Чистого математика от этого передёрнет... А без EPS численными методами на машине не порещать...:(

ЗЫ Попасть в линию можно только из ружья (пуля имеет конечный размер). А вот точку попробуйте воткнуть....???...




© OSzone.net 2001-2012