Язык программирования - Pascal.В одномерном массиве с четным количеством элементов (2N)
Язык программирования - Pascal.
В одномерном массиве с четным количеством частей (2N) находятся координаты N точек плоскости. Они размещаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. Найти номера точек, которые могут являться вершинами равнобедренного треугольника.
Инна Пшикина
Заполняется массив с клавы либо рандомно?
1 ответ
Агата Харинина
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 (alt;b+c)and(blt;c+a)and(clt;a+b) then
Begin
if ((a=b)and(blt;gt;c))or((b=c)and(clt;gt;a))or((c=a)and(alt;gt;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
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 (alt;b+c)and(blt;c+a)and(clt;a+b) then
Begin
if ((a=b)and(blt;gt;c))or((b=c)and(clt;gt;a))or((c=a)and(alt;gt;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
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов