Var x1, y1, x2, y2, x3, y3, a, b, c, p, s: real; begin readln(x1, y1, x2, y2, x3, y3); a:=sqrt(sqr(abs(x1-x2))+sqr(abs(y1-y2))); b:=sqrt(sqr(abs(x2-x3))+sqr(abs(y2-y3))); c:=sqrt(sqr(abs(x1-x3))+sqr(abs(y1-y3))); p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); if s=0 then write('Лежат на одной прямой') else write('Не лежат на одной прямой'); end.
Объясняю. Образуем из этих трёх точек треугольник. a, b, c - стороны треугольника. p - полу-периметр треугольника. s - площадь треугольника. Площадь вычисляется по формуле Герона. Если площадь равна нуля, значит точки лежат на одной прямой. Если нет - не лежат.
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(20,2,5);Write('Оценки за диктант: ');a.Println; Writeln('Двоек: ', a.Where(t-> t = 2).Count); Writeln('Троек: ', a.Where(t-> t = 3).Count); Writeln('Четверок: ', a.Where(t-> t = 4).Count); Writeln('Пятерок: ', a.Where(t-> t = 5).Count); Writeln('Средний за диктант: ', a.Average:0:2); end.
Пример: Оценки за диктант: 4 3 2 3 5 3 3 2 5 2 3 5 4 3 3 4 2 2 3 2 Двоек: 6 Троек: 8 Четверок: 3 Пятерок: 3 Средний за диктант: 3.15
л͓и͓ш͓н͓е͓е͓ т͓у͓т͓ р͓е͓ч͓ь͓ п͓о͓э͓т͓а͓