Вопрос по информатике:
Найти длину наибольшей диагонали выпуклого многоугольника, заданного координатами своих вершин. В Паскаль!!
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 08.01.2016 10:41
- Информатика
- remove_red_eye 15234
- thumb_up 9
Ответы и объяснения 1
// Внимание! Если программа не работает, обновите версию!
type
Point=(real,real);
function ReadPoint(n:integer):Point;
begin
var a,b:real;
Write('Координаты точки ',n,': '); Read(a,b);
Result:=(a,b)
end;
function GetPoints(n:integer):array of Point;
begin
Result:=new Point[n];
for var i:=0 to n-1 do Result[i]:=ReadPoint(i+1)
end;
function Lsqr(a,b:Point):=sqr(b[0]-a[0])+sqr(b[1]-a[1]);
function Diags(a:array of Point; n:integer):array of real;
begin
Result:=new real[n*(n-3) div 2];
var k:=0;
for var i:=0 to n-3 do
for var j:=i+2 to min(n+i-2,n-1) do begin
Result[k]:=Lsqr(a[i],a[j]);
k+=1
end;
end;
begin
var n:=ReadInteger('Количество вершин:');
if n>3 then begin
var a:=GetPoints(n);
Writeln('Длина наибольшей диагонали равна ',sqrt(Diags(a,n).Max):0:5)
end
else Writeln('Диагонали отсутствуют')
end.
Пример
Количество вершин: 5
Координаты точки 1: -3 2.5
Координаты точки 2: 3 5.2
Координаты точки 3: 6.1 1
Координаты точки 4: 2 -7.3
Координаты точки 5: -5 -7
Длина наибольшей диагонали равна 14.58904
- 09.01.2016 05:21
- thumb_up 7
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.