Предмет: Информатика,
автор: TequilaSunrise
помогите, пожалуйста, буду очень благодарна ❤️ (pascal)
Приложения:
Ответы
Автор ответа:
1
//Не советую разбираться в коде :))))
Ответ в файле:
vvvvvvvvvvvvvv
Ответ в файле:
vvvvvvvvvvvvvv
Приложения:
Автор ответа:
1
// PascalABC.NET 3.3, сборка 1627 от 27.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
var n:=4;
var xp:=new real[n];
var yp:=new real[n];
Writeln('Введите парами координаты четырех вершин');
for var i:=0 to n-1 do Read(xp[i],yp[i]);
var (x,y):=ReadReal2('Введите координаты точки:');
var (i,j,c):=(0,n-1,False);
while i<n do begin
if ((yp[i]<=y) and (y<yp[j]) or (yp[j]<=y) and (y<yp [i]))
and (x<(xp[j]-xp[i])*(y-yp[i])/(yp[j]-yp[i])+xp[i]) then c:=not c;
j:=i;
i+=1;
end;
if c then Writeln('Внутри')
else Writeln('Не внутри')
end.
Примеры
Введите парами координаты четырех вершин
-5 -3.7 -5 4 8.1 4 8.1 -3.7
Введите координаты точки: 1 2.6
Внутри
Введите парами координаты четырех вершин
-5 -3.7 -5 4 8.1 4 8.1 -3.7
Введите координаты точки: 3 -3.7001
Не внутри
// Внимание! Если программа не работает, обновите версию!
begin
var n:=4;
var xp:=new real[n];
var yp:=new real[n];
Writeln('Введите парами координаты четырех вершин');
for var i:=0 to n-1 do Read(xp[i],yp[i]);
var (x,y):=ReadReal2('Введите координаты точки:');
var (i,j,c):=(0,n-1,False);
while i<n do begin
if ((yp[i]<=y) and (y<yp[j]) or (yp[j]<=y) and (y<yp [i]))
and (x<(xp[j]-xp[i])*(y-yp[i])/(yp[j]-yp[i])+xp[i]) then c:=not c;
j:=i;
i+=1;
end;
if c then Writeln('Внутри')
else Writeln('Не внутри')
end.
Примеры
Введите парами координаты четырех вершин
-5 -3.7 -5 4 8.1 4 8.1 -3.7
Введите координаты точки: 1 2.6
Внутри
Введите парами координаты четырех вершин
-5 -3.7 -5 4 8.1 4 8.1 -3.7
Введите координаты точки: 3 -3.7001
Не внутри
Похожие вопросы
Предмет: Алгебра,
автор: ibragimovaalina386
Предмет: Українська мова,
автор: mblshko12
Предмет: Алгебра,
автор: d2aknarov
Предмет: Математика,
автор: igorhoh2012
Предмет: Алгебра,
автор: Kimali