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

    question img
    question img

Ответы 1

  • Const   N = 13;Var   XY:array[1..2*N] of integer;   i,j,m:integer;   a,b,c:real;BeginWrite('Исходный массив:');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
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years