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

Вычислить, лежит ли пункт внутри квадрата

08.01.2016, 19:29. Показов 1391. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны координаты двух вершин(x1,y1) и (x2,y2) некоторого квадрата,размещенные по диагонали, и пункт (x3,y3). Узнать,лежит ли пункт внутри квадрата?
Данное решение признали неверным

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 program kvardraty;
 uses crt;
type point=record
           x,y:real;
           end;
//функция принадлежности точки треугольнику
function prin_trg(a,b,c,t:point):boolean;
//функция удвоенной площади треугольника по координатам
function plosh(a,b,c:point):real;
begin
  plosh:=(a.x-c.x)*(b.y-c.y)-(b.x-c.x)*(a.y-c.y)
end;
var s1,s2,s3:real;
begin
s1:=plosh(t,a,b);//определяем площади 3х малых треугольников
s2:=plosh(t,b,c);
s3:=plosh(t,c,a);
//если произведения площадей попарно больше 0, то точка внутри
prin_trg:=(s1*s2>0) and (s2*s3>0)
end;
 
var a,b,c,d,v,vb,vd,t:point;  x,y:real;
begin
writeln('Введите координаты первой вершины');
readln(a.x,a.y);
writeln('Введите координаты противоположной вершины');
readln(c.x,c.y);
writeln('Введите координаты точки');
readln(t.x,t.y);
//найдем координаты остальных вершин квадрата
z.x:=(a.x+c.x)/2;//координаты центра
z.y:=(a.y+c.y)/2;
v.x:=a.x-z.x;//вектор из центра к А
v.y:=a.y-z.y;
vb.x:=v.y; //вектор из центра к В
vb.y:=-v.x;
vd.x:=-v.y;//вектор из центра к D
vd.y:=v.x;
b.x:=z.x+vb.x;//координаты вершины В
b.y:=z.y+vb.y;
d.x:=z.x+vd.x;//координаты вершины D
d.y:=z.y+vd.y;
clrscr;
writeln('Координаты вершин квадрата');
writeln('A(',a.x:0:2,';',a.y:0:2,')');
writeln('B(',b.x:0:2,';',b.y:0:2,')');
writeln('C(',c.x:0:2,';',c.y:0:2,')');
writeln('D(',d.x:0:2,';',d.y:0:2,')');
writeln('Координаты точки');
writeln(t.x:0:2,';',t.y:0:2);
if prin_trg(a,b,c,t)or prin_trg(a,c,d,t)
then write('Точка принадлежит квадрату')
else write('Точка не принадлежит квадрату')
 
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.01.2016, 19:29
Ответы с готовыми решениями:

Определить, лежит ли точка внутри квадрата
Даны координаты 2-х вершин некоторого квадрата, расположенных по диагонали, и точка. Определить , лежит ли точка внутри квадрата.

Лежит ли точка внутри треугольника?
Помогите!!!!!! Скоро сессия, а я не могу задачу решить. Ничего не понимаю в Паскаль. Буду очень благодарна,если кто-нибудь мне решит её....

Сколько точек лежит внутри окружности
1)Задана окружность (x-a)2 + (y-b)2 = R2 и точки Р(р1, р2), F(f1, f2), L(l1, l2). Выяснить и напечатать, сколько точек лежит внутри...

6
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4491 / 1669
Регистрация: 01.02.2015
Сообщений: 13,901
Записей в блоге: 12
08.01.2016, 19:50
Думаю, что проверка много проще. Лучше сразу учесть, что в условии не гарантируется x1<x2 и y1<y2.

если ( x3 >= min(x1,x2) ) and ( x3 <= max(x1,x2) ) and ( y3 >= min(y1,y2) ) and ( y3 <= max(y1,y2) )
то принадлежит.

Т.е. нужно было лишь проверить принадлежность х3 и y3 соответствующим диапазонам.
1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.01.2016, 20:10
Конечно неверное. Во первых есть синтаксические ошибки, запустите и найдите.
Ао вторых вводим координаты вершин -1;0 1;0 координаты точки 0;0, ясно что точка в квадрате, но программа говорит что нет. Проверьте внимательно все обозначения точек и формулы.
0
0 / 0 / 1
Регистрация: 24.11.2010
Сообщений: 55
08.01.2016, 20:50  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
. Проверьте внимательно все обозначения точек и формулы.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
uses crt;
type point=record x,y:real;end;
function prin_trg(a,b,c,t:point):boolean;
function Plosh(a,b,c:point):real;
begin
Plosh:=(a.x-c.x)*(b.y-c.y)-(b.x-c.x)*(a.y-c.y); end;
var s1,s2,s3:real;
begin
s1:=Plosh(t,a,b);
s2:=Plosh(t,b,c);
s3:=Plosh(t,c,a);
prin_trg:=(s1*s2>=0)and(s2*s3>=0);
end;
var a,b,c,d,z,v,vb,vd,t:point;
begin
writeln('vved koord 1 tochki');
readln(a.x,a.y);
writeln('vved koord proizvol velich');
readln(c.x,c.y);
writeln('vved koord tochki');
readln(t.x,t.y);
 
z.x:=(a.x+c.x)/2;
z.y:=(a.y+c.y)/2;
v.x:=(a.x-z.x);
v.y:=(a.y-z.y);
vb.x:=v.y;
vb.y:=-v.x;
vd.x:=-v.y;
vd.y:=v.x;
b.x:=z.x+vb.x;
b.y:=z.y+vb.y;
d.x:=z.x+vd.x;
d.y:=z.y+vd.y;
 
clrscr;
writeln('koord vnutr kvadr');
writeln('A(',a.x:0:2,';',a.y:0:2,') ');
writeln('B(',b.x:0:2,';',b.y:0:2,') ');
writeln('C(',c.x:0:2,';',c.y:0:2,') ');
writeln('D(',d.x:0:2,';',d.y:0:2,') ');
writeln('koord tochki');
writeln(t.x:0:2,';',t.y:0:2);
if prin_trg(a,b,c,t) or prin_trg(a,c,d,t)
then write('prendleg kvadratu' )
else  write('ne prendleg kvadratu' );
end.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.01.2016, 21:14
Цитата Сообщение от Romania92 Посмотреть сообщение
Plosh:=(a.x-c.x)*(b.y-c.y)-(b.x-c.x)*(a.y-c.y);
Каждый раз когда нужна эта формула, лезу в шпаргалку...
0
0 / 0 / 1
Регистрация: 24.11.2010
Сообщений: 55
08.01.2016, 23:10  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
лезу в шпаргалку...
Не подскажете правильную формулу?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.01.2016, 08:16
Так это вроде и есть правильная.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.01.2016, 08:16
Помогаю со студенческими работами здесь

Лежит ли точка с координатами (x,y) внутри треугольника.
Вершины треугольника имеют координаты (0,0) ,(0,a), (b,0). Определить, лежит ли точка с координатами (x,y) внутри треугольника

Определить лежит ли точка внутри окружности
1. Напишите тело функции, определяющей лежит ли точка внутри окружности на плоскости. function in_circle(a:Point; o:Circle):boolean; ...

Лежит ли точка А (a,b) на окружности , внутри или вне её.
Добрый день, я новичок в этом и поэтому я немножко запутался(не могу понять тчо нужно делать) Определите, лежит ли точка А (a,b) на...

Определить, что точка лежит лежит внутри прямоугольника или на одной из его сторон
составит программу печатающую значение TRUE если указанное высказывание является истинным, и FALSE в противном случае: (x1,y1) и...

Определить, что точка лежит лежит внутри прямоугольника или на одной из его сторон
составит программу печатающую значение TRUE если указанное высказывание является истинным, и FALSE в противном случае: (x1,y1) и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru