Function Sq(a,b,c:real):real; Var p:real; Begin p:=(a+b+c)/2; result:=Sqrt(p*(p-a)*(p-b)*(p-c)) End;
Function Tr(a,b,c:real):boolean; Begin result:=(a+b>c)and(a+c>b)and(b+c>a) End;
Var a,b,c,k1,k2,h,t,s,r1,r2:real; Begin writeln(' найти радиус или площадь треугольника? если радиус,то нажмите 1. Если площадь, то нажмите 2 '); readln(k1); if k1=1 then
begin writeln('окружность вписанная(нажмите 1) или описанная(нажмите 2)?'); readln(k2);
write('сторона а = '); readln(a); write('сторона b = '); readln(b); write('сторона с = '); readln(c); if Tr(a,b,c) then begin s:=Sq(a,b,c);
if k2=1 then begin r1:=(a+b+c)/(2*s); writeln('радиус вписанной окружности = ' , r1); end;
if k2=2 then begin r2:=a*b*c/(4*s); writeln('радиус описанной окружности = ', r2); end; end else WriteLn('Треугольник не существует'); end else
if k1=2 then begin writeln('что вам известно? если а и h, то нажмите 1. если а,b,с то нажмите 2' ); readln(k2); if k2=1 then begin write('высота = '); readln(h); write('cторона = '); readln(t); s:=1/2*h*t; writeln('площадь = ',s); end;
if k2=2 then begin Write('a = '); ReadLn(a); Write('b = '); ReadLn(b); Write('c = '); ReadLn(c); if Tr(a,b,c) then begin s:=Sq(a,b,c); writeln('площадь = ',s) ; end else WriteLn('Треугольник не существует'); end; end; end.
Пример: найти радиус или площадь треугольника? если радиус,то нажмите 1. Если площадь, то нажмите 2 2 что вам известно? если а и h, то нажмите 1. если а,b,с то нажмите 2 1 высота = 3 cторона = 4 площадь = 6
// PascalABC.NET 3.2, сборка 1425 от 22.04.2017 // Внимание! Если программа не работает, обновите версию!
function KS(a:array[,] of integer):(integer,integer); begin (var k,var s):=(0,0); for var i:=0 to a.RowCount-1 do for var j:=i to a.ColCount-1 do if a[i,j]<0 then (k,s):=(k+1,s+a[i,j]); Result:=(k,s) end;
begin var a:=MatrRandom(5,5,-50,50); a.Println(4); var r:=KS(a); Writeln('k=',r[0],', Sum=',r[1]); var b:=MatrRandom(8,8,-80,45); b.Println(4); r:=KS(b); Writeln('k=',r[0],', Sum=',r[1]); end.
Var p:real;
Begin
p:=(a+b+c)/2;
result:=Sqrt(p*(p-a)*(p-b)*(p-c))
End;
Function Tr(a,b,c:real):boolean;
Begin
result:=(a+b>c)and(a+c>b)and(b+c>a)
End;
Var
a,b,c,k1,k2,h,t,s,r1,r2:real;
Begin
writeln(' найти радиус или площадь треугольника? если радиус,то нажмите 1. Если площадь, то нажмите 2 ');
readln(k1);
if k1=1 then
begin
writeln('окружность вписанная(нажмите 1) или описанная(нажмите 2)?');
readln(k2);
write('сторона а = ');
readln(a);
write('сторона b = ');
readln(b);
write('сторона с = ');
readln(c);
if Tr(a,b,c) then
begin
s:=Sq(a,b,c);
if k2=1 then
begin
r1:=(a+b+c)/(2*s);
writeln('радиус вписанной окружности = ' , r1);
end;
if k2=2 then
begin
r2:=a*b*c/(4*s);
writeln('радиус описанной окружности = ', r2);
end;
end else WriteLn('Треугольник не существует');
end
else
if k1=2 then
begin
writeln('что вам известно? если а и h, то нажмите 1. если а,b,с то нажмите 2' );
readln(k2);
if k2=1 then
begin
write('высота = ');
readln(h);
write('cторона = ');
readln(t);
s:=1/2*h*t;
writeln('площадь = ',s);
end;
if k2=2 then
begin
Write('a = ');
ReadLn(a);
Write('b = ');
ReadLn(b);
Write('c = ');
ReadLn(c);
if Tr(a,b,c) then
begin
s:=Sq(a,b,c);
writeln('площадь = ',s) ;
end else WriteLn('Треугольник не существует');
end;
end;
end.
Пример:
найти радиус или площадь треугольника? если радиус,то нажмите 1. Если площадь, то нажмите 2
2
что вам известно? если а и h, то нажмите 1. если а,b,с то нажмите 2
1
высота = 3
cторона = 4
площадь = 6
// Внимание! Если программа не работает, обновите версию!
function KS(a:array[,] of integer):(integer,integer);
begin
(var k,var s):=(0,0);
for var i:=0 to a.RowCount-1 do
for var j:=i to a.ColCount-1 do
if a[i,j]<0 then (k,s):=(k+1,s+a[i,j]);
Result:=(k,s)
end;
begin
var a:=MatrRandom(5,5,-50,50); a.Println(4);
var r:=KS(a); Writeln('k=',r[0],', Sum=',r[1]);
var b:=MatrRandom(8,8,-80,45); b.Println(4);
r:=KS(b); Writeln('k=',r[0],', Sum=',r[1]);
end.
Пример
-9 -41 -6 -49 36
6 -7 -2 -1 28
22 -29 -20 -12 7
-11 -37 14 34 -41
-23 11 -9 -26 -46
k=11, Sum=-234
9 34 -68 -32 -43 -61 -19 -55
-66 3 -79 41 -47 27 -7 31
-71 -7 -26 28 -58 -2 -61 -77
-66 39 -39 -76 -13 2 21 6
-56 42 -61 1 -39 -69 -57 -2
-51 -79 -57 10 -10 -27 29 19
-48 -55 -56 -76 43 -32 29 -70
15 -71 -46 -37 23 -24 3 -22
k=23, Sum=-1010