100 баллов Напишите пожалуйста простой код на паскале
В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке x1, y1, x2, y2, x3, y3, и т.д.
Определить кольцо с центром в начале координат, которое содержит все точки.
Ответы
Ответ дал:
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.
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:
Ответ неполный. Вычисляется наружный радиус кольца, а внутреннего нет.
Ответ дал:
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)
Приложения:
![](https://st.uroker.com/files/9f2/9f2659484b48d538b38d9b09513812ba.jpg)
Вас заинтересует
3 месяца назад
3 месяца назад
3 месяца назад