• Нужно переделать эту программу на паскале для нахождения треугольника с самой большой площадью, образованным всеми вариантами точек
    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.

Ответы 1

  • Попробуйте такое: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.
    • Автор:

      clicker
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years