ВЫРУЧАЙТЕ,ЗАЙКИСДАВАТЬ ЧЕРЕЗ ПОЛ ЧАСА ВАС,ТОЛЬКО БЕЗ ИГНОРА,ПРОЧТИТЕ, УМОЛЯЮ. Выполнить в среде программирования(Паскаль abc). Заданные действительные числа х1, у1, х2, у2, х3, у3, которые определяют координаты вершин треугольника. Определить периметр и площадь треугольника, создав процедуру, вычисляет длину отрезка и функцию для определения площади треугольника.
Итак, для начала разберемся с формулой:
+ bx + c = 0
Возьмем случайные значения
a = 1
b = -11
c = -152
Подставим и получим
x^2 - 11x - 152 = 0
d = 27
x1 = 19
x2 = -8
Теперь подставим всё это в программу:
var
a,b,c,i,n : integer;
r1,r2,d : real;
begin
i:=0;
write('Введите колличество повторений: ');
read(n);
while i <> n do
begin
i:=i+1;
writeln('Ввод номер ', i, ': ');
write('a = '); read(a);
write('b = '); read(b);
write('c = '); read(c);
d:=(sqr(b) - (4*a*c));
if d > 0 then
begin
r1:=((-b + sqrt(d)) / (2*a));
writeln('x1= ', r1:3:2);
r2:=((-b - sqrt(d)) / (2*a));
writeln('x2= ', r2:3:2)
end
else
if (d = 0) then
begin
writeln('x = ');
writeln(-b / (2 * a))
end
else
if (d < 0) then
begin
writeln('Нет корней')
end
end;
end.
type
Point=record
x,y:real
end;
function GetPoint(c:char):Point;
begin
Writeln('Введите координаты точки ',c,':');
Read(Result.x,Result.y)
end;
function Line(A,B:Point):real;
begin
Result:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y))
end;
function SqTriangle(pA,pB,pC:Point):real;
begin
var a:=Line(pB,pC);
var b:=Line(pA,pC);
var c:=Line(pA,pB);
if (a+b>c) and (a+c>b) and (b+c>a) then begin
var p:=(a+b+c)/2;
Result:=sqrt(p*(p-a)*(p-b)*(p-c))
end
else Result:=0
end;
begin
var A:=GetPoint('A');
var B:=GetPoint('B');
var C:=GetPoint('C');
Writeln('Площадь треугольника равна ',SqTriangle(A,B,C))
end.
Тестовое решение:
Введите координаты точки A:
-5 3.18
Введите координаты точки B:
1.45 6.2
Введите координаты точки C:
6 -5.93
Площадь треугольника равна 45.98975