Program n_1;
var i, b, k:integer; a: array [1..2000] of integer;
begin
writeln('Введите числа');
for i:=1 to 2000 do read(a[i]);
writeln;
writeln ('Числа, состоящие из 2 разрядов:');
for i:=1 to 2000 do begin
b:=a[i];
k:=0;
while b>0 do
begin
b:=b div 10;
k:=k+1;
end;
if k=2 then write(a[i], ' ');
end;
writeln;
writeln ('Числа, состоящие из 3 разрядов и кратные 3:');
for i:=1 to 2000 do begin
b:=a[i];
k:=0;
while b>0 do
begin
b:=b div 10;
k:=k+1;
end;
if k=3 then begin
b:=(a[i] mod 10) + ((a[i] div 10) mod 10) + ((a[i] div 100) mod 10);
if (b mod 3) = 0 then write(a[i], ' ');
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