Function s(a,b,c: real): real; var p: real; begin p: =(a+b+c)/2; result: =sqrt(p*(p-a)*(p-b)*(p-c)) end; var a,b,c,k,v,t,o,g,e,q,r,w: real; begin writeln(' найти радиус или площадь треугольника? если радиус,то нажмите 1. если площадь, то нажмите 2 '); //если радиус,то нажмите 1. если площадь, то нажмите 2 readln(g); if g=2 then begin writeln('окружность вписанная(нажмите 1) или описанная(нажмите 2)? '); readln(e); if e=1 then begin write('сторона а='); readln(a); write('сторона b ='); readln(b); write('сторона с ='); readln(c); q: =s(a,b,c); r: =(a+b+c)/2*q; writeln('радиус вписанной окружности =' , r ); end else if e=2 then begin write('сторона а='); readln(a); write('сторона b ='); readln(b); write('сторона c ='); readln(c); q: =s(a,b,c); w: =a*b*c/4*q; writeln('радиус описанной окружности =', w ); end else if g=1 then begin writeln('что вам известно? если а и h, то нажмите 1. если а , b,с то нажмите 2 ' ); //а-сторона; h-высота,проведенная на сторону; b-cторона; с -сторона; readln(k); if k=1 then begin write('высота ='); readln(v); write('cторона='); readln(t); o: =1/2*v*t; writeln('площадь=',o) ; end else if k=2 then begin write('a = '); readln(a); write('b = '); readln(b); write('c = '); readln(c); if (a else writeln('треугольник не существует'); end; end; end; end. что здесь неправильно ? почему он может найти радиус . но на площади треугольника останавливается? если можно то сразу исправить буду

лтвтыьц лтвтыьц    2   30.08.2019 03:20    0

Ответы
aniavetisa aniavetisa  06.10.2020 04:27
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
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика