Статистика
Всего в нашей базе более 4 327 663 вопросов и 6 445 978 ответов!

Написать программу, которая определяет, попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом(график №10)если моно на

10-11 класс

раскале

Kotj25 15 июня 2014 г., 16:32:32 (9 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Frenshesko
15 июня 2014 г., 19:11:16 (9 лет назад)

В таких задачах самое сложное - это правильно составить условие попадания (или непопадания) точки в указанную область.
Поскольку ничего не сказано, как поступать с точками, попавшими на границу области, будем считать, что они также удовлетворяют условию "попадания".
Из рисунка видно, что имеются две области, каждая из которых образована комбинацией прямоугольника и части окружности радиуса R.
Первая из затемненных областей использует прямоугольник, в котором координаты по длине меняются от -а до 0, а по высоте - от 0 -b до 0. Здесь надо составить два условия и объединить их по "И":
(x \in [-a;0]) \land (y \in [-b;0])
И еще необходимо учесть окружность - область не должна выходить за ее границы, т.е. x²+y² ≤ R². Итак, для первой области запишем
(x \in [-a;0]) \land (y \in [-b;0]) \land (x^2+y^2 \le R^2)
Рассуждая аналогичным методом, можно составить и второе выражение, определяющее условие попадания во вторую затемненную область.
(x \in [0;a]) \land (y \in [0; b]) \land (x^2+y^2 > R^2)
Нужное логическое выражение получится если оба выражения соединить по "ИЛИ".

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

var
  a, b, R, x, y: real;
  b1, b2: boolean;

begin
  Write('Введите через пробел координаты точки (x,y): ');
  Readln(x, y);
  Write('Введите через пробел размеры a,b,R: ');
  Readln(a, b, R);
  b1 := ((x >= -a) and (x <= 0)); { по длине }
  b1 := b1 and ((y >= -b) and (y <= 0)); { по высоте }
  b1 := b1 and (sqr(x) + sqr(y) <= sqr(R)); { внутри и на границе окружности. }
  b2 := ((x >= 0) and (x <= a)); { по длине }
  b2 := b2 and ((y >= 0) and (y <= b)); { по высоте }
  b2 := b2 and (sqr(x) + sqr(y) > sqr(R)); { снаржи и на границе окружности. }
  b1:=(b1 or b2);
  if b1 then Writeln('Попвдает') else Writeln('Не попадает')
end.

Тестовое решение

Введите через пробел коорднаты точки (x,y): -1 -1
Введите через пробел размеры a,b,R: 3 4 3
Попвдает



Ответить

Другие вопросы из категории

В каком виде представлены данные в сетевых базах?

1. В виде таблиц
2. В виде дерева
3. В виде нескольких связанных таблиц
4. В виде перекрёстных ссылок

Помогите пожалуйста!!

1) Ввести с клавиатуры стороны прямоугольника, вычислить площадь и вывести её на экран.
2) Ввести 2 числа. Определить являются ли они противоположными.

Читайте также

Написать программу, которой передаются координаты точки (x,

y) и которая определяет, попадает ли точка в заштрихованную область на рисунке,
который соответствует Вашему варианту. Попадание на границу области считать
попаданием в область.

1)Написать программу, которая спрашивает имя пользователя, а потом здоровается. 2)Написать программу, которая выводит на экран перевёрнутый

текст.

3)Написать программу, которая определяет является ли слово палиндромом.

4)Написать программу, определяющую какая из букв а или о встречается в тексте первой.

Помогите хотябы одну пожалуйста))Нужно до завтра!))

Написать программу Паскаль))) срочно!)))

Ввести с клавиатуры натуральное число.написать программу, которая определяет, кратна ли сумма его цифр 6.



Вы находитесь на странице вопроса "Написать программу, которая определяет, попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом(график №10)если моно на", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.