• Предмет: Информатика
  • Автор: 1234563434343
  • Вопрос задан 3 месяца назад

100 баллов Напишите пожалуйста простой код на паскале
В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке x1, y1, x2, y2, x3, y3, и т.д.
Определить кольцо с центром в начале координат, которое содержит все точки.

Ответы

Ответ дал: Karolina438671
0
program RingCoordinates;

const
N = 3; // Задайте бажану кількість точок (N)

type
Point = record
x, y: Integer;
end;

var
points: array[1..N] of Point;
i: Integer;
maxRadius: Real;

function DistanceToOrigin(p: Point): Real;
begin
DistanceToOrigin := sqrt(p.x * p.x + p.y * p.y);
end;

begin
// Введення координат точок
writeln('Введіть координати точок:');
for i := 1 to N do
begin
write('x', i, ': ');
readln(points[i].x);
write('y', i, ': ');
readln(points[i].y);
end;

// Знаходження найбільшої відстані від початку координат до точок
maxRadius := DistanceToOrigin(points[1]);
for i := 2 to N do
begin
if DistanceToOrigin(points[i]) > maxRadius then
maxRadius := DistanceToOrigin(points[i]);
end;

// Виведення результату
writeln('Радіус кільця, що містить всі точки: ', maxRadius);
end.

pb1036: Ответ неполный. Вычисляется наружный радиус кольца, а внутреннего нет.
Ответ дал: pb1036
1

Программа на PascalАВС.NЕТ 3.9. Координаты точек могут быть и нецелыми.

##

var n := ReadInteger('Число точек =');

var a := ReadArrReal('Вводите для каждой точки координаты x и y:', 2 * n);

var (Rmax, Rmin) := (-1e300, 1e300);

foreach var i in Range(0, 2 * N - 2, 2) do

begin

 var r2 := Sqr(a[i]) + Sqr(a[i + 1]);

 if r2 > Rmax then Rmax := r2;

 if r2 < Rmin then Rmin := r2

end;

Rmax := Sqrt(Rmax);

Rmin := Sqrt(Rmin);

Writeln('Радиусы кольца: наружный ', Rmax, ', внутренний ', Rmin)

Приложения:

v325729: спасибо хоть мне и ненадо
pb1036: Тогда за что "спасибо" ?
Вас заинтересует