• Предмет: Информатика
  • Автор: yaroslavv2300
  • Вопрос задан 7 лет назад

Язык программирования - Pascal.
В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. Определить номера точек, которые могут являться вершинами равнобедренного треугольника.

Приложения:

Ответы

Ответ дал: Аноним
0
Const
   N = 13;
Var
   XY:array[1..2*N] of integer;
   i,j,m:integer;
   a,b,c:real;
Begin
Write('Исходный массив:');
For i:= 1 to N do
    Begin
    XY[2*i-1]:=random(21)-10;
    XY[2*i]:=random(21)-10;
    Write(' (',XY[2*i-1],',',XY[2*i],')')
    End;
WriteLn;
For i:= 1 to N do
    For j:= i+1 to N do
        Begin
        a:=Sqrt(Sqr(XY[i*2-1]-XY[j*2-1])+Sqr(XY[i*2]-XY[j*2]));
        For m:= j+1 to N do
            Begin
            b:=Sqrt(Sqr(XY[i*2-1]-XY[m*2-1])+Sqr(XY[i*2]-XY[m*2]));
            c:=Sqrt(Sqr(XY[j*2-1]-XY[m*2-1])+Sqr(XY[j*2]-XY[m*2]));
            if (a<b+c)and(b<c+a)and(c<a+b) then
               Begin
               if ((a=b)and(b<>c))or((b=c)and(c<>a))or((c=a)and(a<>b)) then
                  Begin
                  WriteLn('Точки:');
                  WriteLn('№',i,': (',XY[2*i-1],',',XY[2*i],')');
                  WriteLn('№',j,': (',XY[2*j-1],',',XY[2*j],')');
                  WriteLn('№',m,': (',XY[2*m-1],',',XY[2*m],')');
                  WriteLn('Могут быть вершинами треугольника со сторонами: ',a:0:3,' ',b:0:3,' ',c:0:3);
                  End
               End;
            End;
        End;
End.


Пример работы программы:

Исходный массив: (-7,-7) (0,-4) (3,7) (-3,4) (5,-8) (10,-10) (1,10) (9,1) (4,-8) (6,-10) (9,-9) (-4,-7) (9,3)
Точки:
№1: (-7,-7)
№10: (6,-10)
№13: (9,3)
Могут быть вершинами треугольника со сторонами: 13.342 18.868 13.342
Точки:
№2: (0,-4)
№3: (3,7)
№13: (9,3)
Могут быть вершинами треугольника со сторонами: 11.402 11.402 7.211
Точки:
№2: (0,-4)
№8: (9,1)
№9: (4,-8)
Могут быть вершинами треугольника со сторонами: 10.296 5.657 10.296
Точки:
№2: (0,-4)
№8: (9,1)
№11: (9,-9)
Могут быть вершинами треугольника со сторонами: 10.296 10.296 10.000
Точки:
№7: (1,10)
№10: (6,-10)
№11: (9,-9)
Могут быть вершинами треугольника со сторонами: 20.616 20.616 3.162
Вас заинтересует