Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
booogabooo
5 / 1 / 5
Регистрация: 04.12.2013
Сообщений: 50
#1

Составить алгоритм, который определяет, попадает ли точка с заданными координатами в закрашенную область - Turbo Pascal

14.04.2016, 19:04. Просмотров 485. Ответов 5
Метки нет (Все метки)

Помогите, не понимаю вообще задачи, нашел подобные с радиусами, но тут их два, да и еще как-то странно

Составить алгоритм, который определяет, попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом
Прикрепил фото. 14 вариант
0
Миниатюры
Составить алгоритм, который определяет, попадает ли точка с заданными координатами в закрашенную область  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2016, 19:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Составить алгоритм, который определяет, попадает ли точка с заданными координатами в закрашенную область (Turbo Pascal):

Определить, попадает ли точка с заданными координатами в закрашенную область

Определить попадает ли точка с заданными координатами X и Y в закрашенную область
Здравствуйте! Всем известная формулировка задачи: определить попадает ли точка...

Определить, попадает ли точка с заданными координатами в область, закрашенную на рисунке
Я сейчас на практике и не понимаю задачи с графиками... ну так вот Написать...

Попадает ли точка с заданными координатами x, y в область, закрашенную на рисунке серым цветом
Правильно рассчитал формулу? if (y<0) and (y:=sqrt(sqr(r)-sqr(x)) or if y>0...

Определить, попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом
Написать программу, которая определяет, попадает ли точка с заданными коорди-...

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

5
Cyborg Drone
Модератор
5252 / 3119 / 2433
Регистрация: 17.08.2012
Сообщений: 10,074
15.04.2016, 22:44 #2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var r1, r2, x, y, z: real;
begin
  repeat
    write('R2 >= 0;  R2 = ');
    readln(r2)
  until r2 > 0;
  repeat
    write('R1 >= R2; R1 = ');
    readln(r1)
  until r2 <= r1;
  write('x = ');
  readln(x);
  write('y = ');
  readln(y);
  z := x * x + y * y;
  write('In area: ');
  if (z >= r1 * r1) and (z <= r2 * r2) and (x * y >= 0)
    then writeln('Yes')
    else writeln('No');
  readln
end.
1
booogabooo
5 / 1 / 5
Регистрация: 04.12.2013
Сообщений: 50
26.05.2016, 00:55  [ТС] #3
По какому принципу эти два выражения
z := x * x + y * y;
(z >= r1 * r1) and (z <= r2 * r2) and (x * y >= 0)
Определяют закрашенную облать?
0
Cyborg Drone
Модератор
5252 / 3119 / 2433
Регистрация: 17.08.2012
Сообщений: 10,074
26.05.2016, 03:40 #4
Расстояния от центра координат до точки:

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
L=\sqrt{x^2+y^2}<br />

То есть, на самом деле условия выглядят так:

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
L=\sqrt{x^2+y^2}\\(L\geq R_1)\ and \ (L\leq R_2)\ and \ (xy\geq 0)<br />

Неравенство в последней скобке истинно, когда x и y одного знака.

Переведём формулы на русский язык.

Первая формула. Расстояние от начала координат до точки равно корню квадратному из суммы квадратов координат точки (x и y). По теореме Пифагора. Расстояние до точки есть гипотенуза треугольника со сторонами x и y. Строго говоря, за исключением случаев, когда x или y, или оба вместе, равны 0. Однако, и в таких случаях результат оказывается верным.

Вторая формула.
- расстояние до точки больше либо равно первому радиусу - точка расположена снаружи внутреннего круга или на его границе;
- расстояние до точки меньше либо равно второму радиусу - точка расположена внутри внешнего круга, включая его границу;
- если произведение xy больше либо равно нулю, иными словами, когда x и y имеют одинаковый знак либо равны нулю, точка расположена в I или III квадранте, включая оси координат.

Точка попадает в закрашенную область, если одновременно выполняются все три указанных условия, то есть, расстояние больше либо равно внутреннему радиусу, и расстояние меньше или равно внешнему радиусу, и координаты x и y имеют одинаковый знак либо равны 0.

(Замечание: граница области принадлежит области, поскольку изображена сплошной линией. Границу, не принадлежащую области, принято изображать штриховой линией).

Однако, расстояниями оперировать вовсе не обязательно. Можно рассматривать квадраты расстояний, что я и сделал. Получается

z = L2 = xx+yy

естественно, квадрат расстояния сравниваем с квадратами радиусов (первые две скобки условия), а насчёт знаков координат ничего не меняем, то есть, по-прежнему используем условие xy ≥ 0.

Как-то так. Квадраты расстояний я использовал вместо самих расстояний потому, что операция извлечения корня значительно медленнее операции умножения. И, хотя для этой программы это и не важно (никакой разницы во времени заметить не удастся), время выполнения программы я на автомате сделал по возможности минимальным.

Если использовать именно расстояния, а не квадраты расстояний, то нужно заменить:
Pascal
15
16
17
  z := sqrt(x * x + y * y);
  write('In area: ');
  if (z >= r1) and (z <= r2) and (x * y >= 0)
z в таком случае будет равно L, а не L2.

Добавлено через 9 минут
Ох... Увидел неточность... Я в условии перепутал внешний и внутренний радиусы... Правильно так, для квадратов расстояний:
Pascal
17
  if (z <= r1 * r1) and (z >= r2 * r2) and (x * y >= 0)
для просто расстояний:
Pascal
1
  if (z <= r1) and (z >= r2) and (x * y >= 0)
Сработал в голове шаблон, что радиус R1 ну просто обязан быть меньше радиуса R2... Ввод сделал правильно, а на условии в моём мозгу сработала энграмма... Естественно, при этой ошибке первые два условия не могут выполниться одновременно, следовательно, и всё условие целиком будет ложным.

Добавлено через 1 час 43 минуты
А, ещё...
Pascal
6
  until r2 >= 0;
1
booogabooo
5 / 1 / 5
Регистрация: 04.12.2013
Сообщений: 50
26.05.2016, 09:38  [ТС] #5
У меня никак не получается подобрать значения, чтоб получить статус "Попал в область"
Оперирую с радиусами

Я так понял выражение (x * y >= 0) задает условие попадания для 1 и 3 части координатной плоскости? Верно?
0
Cyborg Drone
Модератор
5252 / 3119 / 2433
Регистрация: 17.08.2012
Сообщений: 10,074
28.05.2016, 23:39 #6
Цитата Сообщение от booogabooo Посмотреть сообщение
выражение (x * y >= 0) задает условие попадания для 1 и 3 части координатной плоскости?
Да.
Цитата Сообщение от booogabooo Посмотреть сообщение
У меня никак не получается подобрать значения
Да ладно.

Тест программыR2 >= 0; R2 = 2
R1 >= R2; R1 = 5
x = 2
y = 3
In area: Yes


На всякий случай, исправленная программа.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var r1, r2, x, y, z: real;
begin
  repeat
    write('R2 >= 0;  R2 = ');
    readln(r2)
  until r2 >= 0;
  repeat
    write('R1 >= R2; R1 = ');
    readln(r1)
  until r2 <= r1;
  write('x = ');
  readln(x);
  write('y = ');
  readln(y);
  z := x * x + y * y;
  write('In area: ');
    if (z <= r1 * r1) and (z >= r2 * r2) and (x * y >= 0)
    then writeln('Yes')
    else writeln('No');
  readln
end.
1
28.05.2016, 23:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2016, 23:39
Привет! Вот еще темы с решениями:

Определить, попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом
Написать программу, которая определяет, попадает ли точка с заданными...

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

Написать программу, которая определяет, попадает ли точка с заданными координатами в область
Написать программу, которая определяет, попадает ли точка с заданными...

Составьте программу, которая определяет, попадает ли точка с заданными координатами в область
Составьте программу, которая определяет, попадает ли точка с заданными...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru