zuzazuza61
?>

Напишите программу, которая вычисляет площадь треугольника, с клавиатуры вводятся длины двух сторон и угол градусов между ними. язык: pascal

Информатика

Ответы

gen218
Вот решение вашей задачки
poch23420
Проверка существования треугольников не выполняется.
1)
var 
x1,y1,x2,y2,x3,y3,x4,y4:real;
sq1,sq2,sq3,sq4,max:real;
procedure s(a1,b1,a2,b2,a3,b3:real;var sq:real);
var s1,s2,s3,p:real;
begin
s1:=sqrt((a2-a1)*(a2-a1)+(b2-b1)*(b2-b1));
s2:=sqrt((a3-a1)*(a3-a1)+(b3-b1)*(b3-b1));
s3:=sqrt((a3-a2)*(a3-a2)+(b3-b2)*(b3-b2));
p:=(s1+s2+s3)/2;
sq:=sqrt(p*(p-s1)*(p-s2)*(p-s3));
end;
begin
write('x1,y1: '); readln(x1,y1);
write('x2,y2: '); readln(x2,y2);
write('x3,y3: '); readln(x3,y3);
write('x4,y4: '); readln(x4,y4);
s(x1,y1,x2,y2,x3,y3,sq1);
s(x1,y1,x3,y3,x4,y4,sq2);
s(x1,y1,x2,y2,x4,y4,sq3);
s(x2,y2,x3,y3,x4,y4,sq4);
writeln('sq1 = ',sq1:5:2,' sq2 = ',sq2:5:2,' sq3 = ',sq3:5:2,' sq4 = ',sq4:5:2);
if sq1>sq2 then max:=sq1 else max:=sq2;
if sq3>max then max:=sq3;
if sq4>max then max:=sq4;
writeln('max = ',max:5:2);
end.

2)
var 
x1,y1,x2,y2,x3,y3,x4,y4:real;
sq1,sq2,sq3,sq4,max:real;
function s(a1,b1,a2,b2,a3,b3:real):real;
var s1,s2,s3,p:real;
begin
s1:=sqrt((a2-a1)*(a2-a1)+(b2-b1)*(b2-b1));
s2:=sqrt((a3-a1)*(a3-a1)+(b3-b1)*(b3-b1));
s3:=sqrt((a3-a2)*(a3-a2)+(b3-b2)*(b3-b2));
p:=(s1+s2+s3)/2;
s:=sqrt(p*(p-s1)*(p-s2)*(p-s3));
end;
begin
write('x1,y1: '); readln(x1,y1);
write('x2,y2: '); readln(x2,y2);
write('x3,y3: '); readln(x3,y3);
write('x4,y4: ');
readln(x4,y4);
sq1:=s(x1,y1,x2,y2,x3,y3);
sq2:=s(x1,y1,x3,y3,x4,y4);
sq3:=s(x1,y1,x2,y2,x4,y4);
sq4:=s(x2,y2,x3,y3,x4,y4);
writeln('sq1 = ',sq1:5:2,' sq2 = ',sq2:5:2,' sq3 = ',sq3:5:2,' sq4 = ',sq4:5:2);
if sq1>sq2 then max:=sq1 else max:=sq2;
if sq3>max then max:=sq3;
if sq4>max then max:=sq4;
writeln('max = ',max:5:2);
end.

Пример:
x1,y1: -5 1
x2,y2: -3 4
x3,y3: -1 2
x4,y4: -1 0
sq1 =  5.00 sq2 =  4.00 sq3 =  7.00 sq4 =  2.00
max = 7
korotaeva778898
Program ZvonPOBEDITEL;var i,n,k,i_1,i_2,d_1,d_2: integer;c: char;s,s_1,s_2: string;begin i_1:=0; i_2:=0; d_1:=1; d_2:=1; readln(n); for i:=1 to n do begin  c:='a';  s:='';  while c<>' ' do  begin   read(c);   s:=s+c;  end;  read(c);  while c<>' ' do  begin   s:=s+c;   read(c);  end;  read(c);  while c<>' ' do  begin   read(c);  end;  readln(k);  if (k=i_1) and (i<>1) then d_1:=d_1+1;  if k>i_1 then   begin   i_2:=i_1;   i_1:=k;   s_2:=s_1;   s_1:=s;   d_2:=d_1;   d_1:=1;  end;  if (k=i_2) and (i<>1) then d_2:=d_2+1;  if (k>i_2) and (k<i_1) then   begin    i_2:=k;   s_2:=s;   d_2:=1;  end; end; if (i_1<=200) and (d_1=1) then writeln(s_1); if (i_1<=200) and (d_1<>1)then writeln(d_1); if (i_1>200) and (d_2=1) then writeln(s_2); if (i_1>200) and (d_2<>1) then writeln (d_2);end. Это сугубо мое решение за копирайтинг отвешу люлей. И к тому же сдесь есть одна ошибка о которой знаю только я, так сказать один из частных случаев здесь не прощитывается, по этому поломайте голову, Ха-Ха-Ха...

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите программу, которая вычисляет площадь треугольника, с клавиатуры вводятся длины двух сторон и угол градусов между ними. язык: pascal
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

krylova-natali
ev89036973460
Nivanova995
Корягина
Anatolevich667
zibuxin6
tatyana58
sergeyshuvalov
Pona4ka93
Aleksandrovich1075
tobolenecivanov1675
samofar
maxborod
tretyakovamarina201155
Fateevsa9