Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/41: Рейтинг темы: голосов - 41, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 05.01.2015
Сообщений: 9

Определить принадлежность точки прямой, отрезку, многоугольнику

13.01.2015, 23:44. Показов 7752. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить программу, которая использует модуль. В модуле разработать подпрограммы для работы с декартовой плоскостью: принадлежность точки прямой, отрезку, многоугольнику.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.01.2015, 23:44
Ответы с готовыми решениями:

Определить принадлежность точки отрезку
Дана точка с координатами (x,y), требуется определить принадлежность точки отрезку (a,b).

Даны координаты точки (x,y). Определить принадлежность заданной точки заштрихованной области, включая ее границы
Ребята, помогите, пожалуйста, решить эти задачи. Желательно, ещё и объяснить,что именно найти. Заранее спасибо. p.s Плюс вложенные файлы...

Определить принадлежность точки отрезку
Написать программу, которая определяет принадлежность точки А(х,у) отрезку АВ, если А(х1,у1) и В(х2,у2) – концы отрезка. Добавлено...

3
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
14.01.2015, 22:51
Цитата Сообщение от winowl Посмотреть сообщение
принадлежность точки прямой
уравнение прямой есть? тогда всё просто
подставляете в уравнение вида Y = KX + B (K и B задают прямую) координаты проверяемое точки Xт,Yт, если равенство выполняется, то точка c координатами Xт,Yт лежит на прямой.

Если прямая задана не уравнением, а координатами двух точек - то это не проблема, есть простые формулы для получения K и B по координатам двух точек.

Цитата Сообщение от winowl Посмотреть сообщение
принадлежность точки отрезку
отрезок - это часть прямой. Поэтому, нужно
а) проверить, что точка имеет координаты в нужном диапазоне
Xa <= Xт <= Xb
Ya <= Yт <= Yb
где Xт,Yт - координаты проверяемой точки
а Xa,Ya, Xb,Yb - координаты точек отрезка

б) проверяемая точка лежит на прямой, которой принадлежит отрезок (см. подпрограмму "принадлежность точки прямой")

Цитата Сообщение от winowl Посмотреть сообщение
принадлежность точки многоугольнику
а вот тут требуется разжевать, что это означает.
Потому как одно - это проверить попадание точки ВНУТРЬ многоугольника (тут уже важно, какой именно многоуольник - выпуклый или нет), или достаточно проверить принадлежность точки любому РЕБРУ многоугольника.
Это намного проще - досточно брать последовательно координаты вершин и проверять принадлежность точки отрезку, образованному этими двумя вершинами. (см. подпрограмму "принадлежность точки отрезку")

ну, как-то так...
0
0 / 0 / 0
Регистрация: 05.01.2015
Сообщений: 9
14.01.2015, 23:40  [ТС]
Как сочитаются между собой понятия "программа"-"модуль"- "подпрограмма". Условие задачи без каких либо данных.
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
14.01.2015, 23:53
Цитата Сообщение от winowl Посмотреть сообщение
"программа"
программа - это главный, запускаемый модуль

запустите PascalABC.NET, нажмите F1, откроется справка. там введите program


Цитата Сообщение от winowl Посмотреть сообщение
"модуль"
запустите PascalABC.NET, нажмите F1, откроется справка. там введите unit

и прочитайте, что это
Структура модуля

Структура модуля
Модули предназначены для разбиения текста программы на несколько файлов. В модулях описываются переменные, константы, типы, классы, процедуры и функции. Для того чтобы эти объекты можно было использовать в вызывающем модуле (которым может быть и основная программа), следует указать имя файла модуля (без расширения .pas) в разделе uses вызывающего модуля. Файл модуля (.pas) или откомпилированный файл модуля (.pcu) должен находиться либо в том же каталоге, что и основная программа, либо в подкаталоге Lib системного каталога программы PascalABC.NET.

Модуль имеет следующую структуру:

unit имя модуля;

interface

раздел интерфейса

implementation

раздел реализации

initialization

раздел инициализации

finalization

раздел финализации

end.

Имеется также упрощенный синтаксис модулей без разделов интерфейса и реализации.

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

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

Раздел интерфейса включает объявление всех имен, которые экспортируются данным модулем в другие модули (при подключении его в разделе uses). Это могут быть константы, переменные, процедуры, функции, классы, интерфейсы. Реализация методов классов может быть дана прямо в разделе интерфейса, но это не рекомендуется.

Раздел реализации содержит реализацию всех процедур, функций и методов, объявленных в разделе интерфейса. Кроме этого, в разделе реализации могут быть описания внутренних имен, которые не видны вне модуля и используются лишь как вспомогательные.

Раздел инициализации и раздел финализации представляют собой последовательность операторов, разделяемых символом ;. Операторы из раздела инициализации модуля выполняются до начала основной программы, операторы из раздела финализации модуля - после окончания основной программы. Порядок выполнения разделов инициализации и разделов финализации подключенных модулей непредсказуем. Как раздел инициализации, так и раздел финализации могут отсутствовать.

Вместо разделов инициализации и финализации может присутствовать только раздел инициализации в виде

begin
последовательность операторов
end.

Например:

unit Lib;

interface

uses GraphABC;

const Dim = 5;
var Colors: array [1..Dim] of integer;

function RandomColor: integer;
procedure FillByRandomColor;

implementation

function RandomColor: integer;
begin
Result := RGB(Random(255),Random(255),Random(255)) ;
end;
procedure FillByRandomColor;
begin
for i: integer := 1 to Dim do
Colors[i] := RandomColor;
end;

initialization
FillByRandomColor;
end.

Циклические ссылки между модулями возможны при определенных ограничениях.


Цитата Сообщение от winowl Посмотреть сообщение
"подпрограмма"
справочная система по F1. поиск function

Описание процедур и функций

Описание процедур и функций
Процедура или функция представляет собой последовательность операторов, которая имеет имя, список параметров и может быть вызвана из различных частей программы. Функции, в отличие от процедур, в результате своего выполнения возвращают значение, которое может быть использовано в выражении. Для единообразия функции и процедуры называются подпрограммами.

Любая используемая в программе процедура или функция должна быть предварительно описана в разделе описаний.

Описание процедуры имеет вид:

procedure имя(список формальных параметров);
раздел описаний
begin
операторы
end;

Описание функции имеет вид:

function имя(список формальных параметров): тип возвращаемого значения;
раздел описаний
begin
операторы
end;

Операторы подпрограммы, окаймленные операторными скобками begin/end, называются телом этой подпрограммы.

Список формальных параметров вместе с окружающими скобками может отсутствовать. Он состоит из одной или нескольких секций, разделенных символом ";". Каждая секция состоит из списка переменных, перечисляемых через запятую, после которого следуют двоеточие и тип. Каждая секция может предваряться ключевым словом var или const, что указывает на то, что параметры передаются по ссылке (см.п. Параметры процедур и функций). Тип формального параметра должен быть либо именем, либо динамическим массивом, либо множеством, либо процедурной переменной (для последних трех типов имеет место структурная эквивалентность типов).

Раздел описаний процедуры или функции устроен так же, как и раздел описаний основной программы. Здесь описываются так называемые локальные переменные и константы, типы (за исключением классов - классы можно описывать только глобально) а также вложенные процедуры и функции. Все такие локальные объекты доступны лишь внутри данной подпрограммы и не видны извне.

Пример описания процедуры приводится ниже:

procedure DoAdd(a,b: real; var res: real);
begin
res := a + b;
end;

Внутри тела функции имя этой функции можно использовать как специальную переменную, которой необходимо присвоить возвращаемое значение. Например:

function Add(a,b: real): real;
begin
Add := a + b;
end;

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

Вместо имени функции, внутри тела функции можно использовать другую специальную переменную с именем Result. В отличие от имени функции, переменную Result можно использовать и в выражениях:

function MinElement(a: array of real): real;
var x: real;
begin
Result := real.MaxValue;
foreach x in a do
if x < Result then
Result := x;
end;

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

В разделе описаний подпрограммы можно описывать другие подпрограммы. Исключение составляют методы класса, описываемые непосредственно в теле класса: в них нельзя описывать локальные подпрограммы ввиду синтаксической неоднозначности.

В PascalABC.NET имеется упрощенный синтаксис описания однооператорных процедур и функций:

procedure WriteStar := write('*');

и

function Add(a,b: real): real := a + b;

При этом для возвращаемого значения функции возможен автовывод типов:

function Add(a,b: real) := a + b;


в одном модуле может быть множество подпрограмм (процедур и фунций)


p.s. Вы что, решили выучить Паскаль через форум? Неблагодарное, скажу Вам, это занятие!
Лучше книжку по Паскалю возьмите. Или онлайн курсы какие-нибудь прочитайте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.01.2015, 23:53
Помогаю со студенческими работами здесь

Принадлежность точки многоугольнику
Хочу разобраться с алгоритмом нахождения точки в многоугольнике. Алгоритм нашел здесь. В общем, для чего нужна переменная c? int...

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

Принадлежность точки многоугольнику
Многоугольник на плоскости задается координатами своих N вершин в порядке обхода их по контуру по часовой стрелке (контур самопересечений...

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

Принадлежность точки неправильному многоугольнику
Определяется область путём задания координат точек (количество точек может быть произвольным). Как определить принадлежит ли точка этой...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru