Язык программирования - Pascal. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости.
Язык программирования - Pascal. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. Определить номера точек, которые могут являться вершинами равнобедренного треугольника.
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
На паскале --- uses crt; var a,b,max: integer; begin writeln('Вводите последовательность. Окончание последовательности - 0.'); readln(a); max:=a; while a<>0 do begin if (a>max) then max:=a; readln(a); end; writeln('Наибольшее число последовательности: ',max); <span>end.</span>
Можно задачу решать так, как показано ниже (с использованием констант), а можно все данные вводить с клавиатуры. const xn=-1.5; xk=1.5; h=0.1; b=2; var x,y:real; i,n:integer; begin x:=xn-h; n:=round((xk-xn)/h)+1; writeln(' x y'); for i:=1 to n do begin x:=x+h; if x<1 then y:=x*x-b*sqrt(abs(b*b-x)) else if x<9 then y:=cos(2*x)-x*x*x else y:=ln(abs(2.7*x*x-exp(x))); writeln(x:4:1,y:8:3); end; <span>end.