Найти в массиве точки, которые принадлежат кругу радиуса r с центром в начале координат - PascalABC.NET
Формулировка задачи:
Народ, помогите с задачей в голову ничего не приходит..
{ Даны натуральное число n, действительные числа r,A1,..,An, где 2<=n<=50. Найти точки (A1,An), (A2,An-1),...,(An,A1)
Которые принадлежат кругу радиуса r с центром в начале координат, и определить их количество. Кроме того, сформировать последовательность
B1,...,Bn из отсортированных в порядке возрастания элементов исходной последовательности. }
Решение задачи: «Найти в массиве точки, которые принадлежат кругу радиуса r с центром в начале координат»
textual
Листинг программы
function inCircle(x, y, r : Real) : Boolean := sqr(x) + sqr(y) <= sqr(r); begin var n := ReadLnInteger('n ='); var r := ReadLnReal('r ='); var a : array of Real; SetLength(a, n); for var i := 1 to n do a[i-1] := ReadLnReal('A' + i + ' ='); WriteLn('a = ', a); var s : string := ''; var count := 0; for var i := 0 to n-1 do if inCircle(a[i], a[n-1-i], r) then begin count += 1; s += ' (' + a[i] + ',' + a[n-1-i] + ')'; end; if count = 0 then WriteLn('Нет точек принадлежащих окружности.') else WriteLn('Количество точек принадлежащих окружности ' + count + NewLine + s); var b : array of Real; SetLength(b, n); b[0] := a[0]; for var i := 1 to n-1 do begin var j := i; while (j > 0) and (b[j - 1] > a[i]) do begin b[j] := b[j - 1]; j -= 1; end; b[j] := a[i]; end; WriteLn('b = ', b); end.
Объяснение кода листинга программы
- Задаются параметры функции: x, y, r (строка с номером 1).
- Функция inCircle проверяет принадлежит ли точка с координатами (x, y) кругу с радиусом r и центром в начале координат (строка с номером 2).
- Запрашивается количество точек (n) для проверки (строка с номером 3).
- Запрашиваются координаты точек (a) (строка с номером 4).
- Считается и выводится количество точек принадлежащих окружности (строка с номером 5).
- Выводится сообщение о количестве точек принадлежащих окружности и их координатах (строка с номером 6).
- Запрашивается количество точек (n) для сортировки (строка с номером 7).
- Создается массив b, повторяющий массив a, кроме последней точки (строка с номером 8).
- Массив b сортируется по возрастанию координаты x (строка с номером 9).
- Выводится отсортированный массив b (строка с номером 10).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д