Нужно переделать эту программу на паскале для нахождения треугольника с самой большой площадью, образованным всеми вариантами точек uses crt,graphabc; var x,y: array[1..100] of integer; maxr,r,i,j: integer; begin randomize; for i: =1 to 100 do begin x[i]: =random(600)+10; y[i]: =random(360)+10; circle(x[i],y[i],2); end; maxr: =0; for i: =1 to 99 do for j: = i+1 to 100 do begin r: =sqr(x[i]-x[j])+sqr(y[i]-y[j]); if r> maxr then maxr: =r; end; readln; setpencolor(clred); for i: =1 to 99 do for j: =i+1 to 100 do begin r: =sqr(x[i]-x[j])+sqr(y[i]-y[j]); if r=maxr then line (x[i],y[i],x[j],y[j]); if r=maxr then writeln (x[i],' ',y[i],' ',x[j],' ',y[j]); end; end.

ibg478 ibg478    3   23.09.2019 02:50    1

Ответы
ОтличницаDashaE ОтличницаDashaE  21.08.2020 13:55
Попробуйте такое:

uses graphABC;
var
  x, y: array [1 .. 100] of integer;
  mI, mJ, mK, maxR, R, i, j, k: integer;
begin
  randomize;
  for i := 1 to 100 do
  begin
    x[i] := random(600) + 10;
    y[i] := random(360) + 10;
    circle(x[i], y[i], 2);
  end;
  maxR := 0;
  for i := 1 to 100 do
    for j := 2 to 99 do
      for k := 3 to 98 do
      begin 
        R := abs((x[i]-x[k])*(y[j]-y[k])-(x[j]-x[k])*(y[i]-y[k])div 2);
        if R > maxR then
        begin
          maxR := R;
          if R > mI then mI := i;
          if R > mJ then mJ := j;
          if R > mK then mK := k;
        end;
      end;
  setpencolor(clred);
  line(x[mI], y[mI], x[mJ], y[mJ]);
  line(x[mJ], y[mJ], x[mK], y[mK]);
  line(x[mK], y[mK], x[mI], y[mI]);
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика