// PascalABC.NET 3.0, сборка 1157 от 02.02.2016 begin var n:=ReadInteger('n='); if n<0 then Writeln(n,'! не определено: n<0') else if n=0 then Writeln('0!=1') else begin var p:BigInteger:=1; for var i:=2 to n do p*=i; Writeln(n,'!=',p) end end.
// PascalABC.NET 3.3, сборка 1605 от 31.12.2017 // Внимание! Если программа не работает, обновите версию!
begin var P:=new real[3,2]; // массив координат вершин for var i:=0 to 2 do (P[i,0],P[i,1]):=ReadReal2('Введите x и y вершины '+(i+1)); // длины сторон var L:(real,real)->real:=(x,y)->Sqrt(x**2+y**2); var a:=L(P[1,0]-P[0,0],P[1,1]-P[0,1]); var b:=L(P[2,0]-P[1,0],P[2,1]-P[1,1]); var c:=L(P[0,0]-P[2,0],P[0,1]-P[2,1]); if (a+b>c) and (a+c>b) and (b+c>a) then // треугольник существует if (a=b) or (a=c) or (b=c) then Writeln('Треугольник равнобедренный') else Writeln('Треугольник не равнобедренный') else Writeln('Треугольник построить невозможно') end.
Замечание: для сборок ниже 1603 от 30.12.2017 необходимо заменить Sqrt(x**2+y**2) на Sqrt(x*x+y*y)
begin
var n:=ReadInteger('n=');
if n<0 then Writeln(n,'! не определено: n<0')
else
if n=0 then Writeln('0!=1')
else begin
var p:BigInteger:=1;
for var i:=2 to n do p*=i;
Writeln(n,'!=',p)
end
end.
Тестовое решение:
n= 138
138!=691778647261948849222819828311491035886734385827028118707676848307166514238979223884785249055995983385450621636277440066920043595627074569065446040152660143904127838730788278294186615891819670506731208704000000000000000000000000000000000
// Внимание! Если программа не работает, обновите версию!
begin
var P:=new real[3,2]; // массив координат вершин
for var i:=0 to 2 do
(P[i,0],P[i,1]):=ReadReal2('Введите x и y вершины '+(i+1));
// длины сторон
var L:(real,real)->real:=(x,y)->Sqrt(x**2+y**2);
var a:=L(P[1,0]-P[0,0],P[1,1]-P[0,1]);
var b:=L(P[2,0]-P[1,0],P[2,1]-P[1,1]);
var c:=L(P[0,0]-P[2,0],P[0,1]-P[2,1]);
if (a+b>c) and (a+c>b) and (b+c>a) then // треугольник существует
if (a=b) or (a=c) or (b=c) then Writeln('Треугольник равнобедренный')
else Writeln('Треугольник не равнобедренный')
else Writeln('Треугольник построить невозможно')
end.
Замечание: для сборок ниже 1603 от 30.12.2017 необходимо заменить
Sqrt(x**2+y**2) на Sqrt(x*x+y*y)