Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Turbo Pascal

Войти
Регистрация
Восстановить пароль
 
ktotonokto
3 / 3 / 0
Регистрация: 22.10.2013
Сообщений: 16
#1

Найти координаты трёх точек, которые образуют треугольник с наименьшей площадью - Turbo Pascal

29.12.2013, 22:30. Просмотров 510. Ответов 1
Метки нет (Все метки)

На плоскости заданы своими координатами N точек, заданные своими координатами. Найти координаты трёх точек, которые образуют треугольник с наименьшей площадью.
Подпрограмма: площадь треугольника, заданного координатами своих вершин.

По-любому там всё неверно решено...
Нужна помощь!

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
  uses crt;
  procedure SquareTR(a,b,c,p,x1,x2,x3,y1,y2,y3,S:real);
begin
  a:=sqrt(sqr(abs(x1-x2))+sqr(abs(y1-y2)));
  b:=sqrt(sqr(abs(x2-x3))+sqr(abs(y2-y3)));
  c:=sqrt(sqr(abs(x3-x1))+sqr(abs(y3-y1)));
  p:=(a+b+c)/2;
  S:=sqrt(p*(p-a)*(p-b)*(p-c));
end;
  var X:array[1..100] of real;
      Y:array[1..100] of real;
      a,b,c,p,x1,x2,x3,y1,y2,y3,S,min:real;
      N,i,j,l:integer;
begin
  clrscr;
  write('Kol-vo tochek: ');
  readln(N);
  min:=0;
  randomize;
  for i:=1 to N do begin
    X[i]:=random(21)-10;
    Y[i]:=random(21)-10;
  end;
  for i:=1 to N do begin
    x1:=X[i];
    y1:=Y[i];
    for j:=1 to N do begin
      if j<>i then begin
        x2:=X[j];
        y2:=Y[j];
      end;
      for l:=1 to N do begin
        if (l<>i) and (l<>i) then begin
          x3:=X[l];
          y3:=Y[l];
        end;
        if S<min then min:=S;
      end;
    end;
  end;
  writeln('min S: ',min);
  readln
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2013, 22:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти координаты трёх точек, которые образуют треугольник с наименьшей площадью (Turbo Pascal):

Выбрать три точки, которые образуют треугольник наименьшей площади - Turbo Pascal
На плоскости задано множество точек. Выбрать три различные не лежащие на одной прямой точки, которые образуют треугольник наименьшей...

Найти треугольник с наименьшей и наибольшей площадью, вершинами которого будут исходные точки - Turbo Pascal
Дано множество точек (точки заданы своими координатами). Найти треугольник с наименьшей и наибольшей площадью, вершинами которого будут...

Процедура позволяет рисовать треугольник по координатам вершин трёх точек. Нарисовать прямоугольный треугольник, и равнобедренный - Turbo Pascal
помогите пожалуйста решить, срочно нужно на экзамен...жду вашей помощи) 1)Процедура позволяет рисовать треугольник по координатам вершин...

Найти треугольник с наибольшей площадью - Pascal
Задана таблица из N чисел. Сколько треугольников можно составить из этих чисел? Найти треугольник с наибольшей площадью.

Известны координаты четырех точек. Выяснить, образуют ли они равнобедренную трапецию - Turbo Pascal
Помогите с программой разобраться: *Известны координаты четырех точек. Выяснить, образуют ли они равнобедренную трапецию, и найти площадь...

Выдать данные о стране с наименьшей площадью - Turbo Pascal
Помогите с написанием программы пожалуйста Введите сведения о шести странах: номер страны , название страны , площадь , население ,...

1
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23670 / 15670 / 4709
Регистрация: 22.10.2011
Сообщений: 27,764
Записей в блоге: 5
29.12.2013, 22:40 #2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
uses crt;
 
function S(x1,x2,x3,y1,y2,y3:real):real;
var a, b, c, p : real;
begin
  a:=sqrt(sqr(abs(x1-x2))+sqr(abs(y1-y2)));
  b:=sqrt(sqr(abs(x2-x3))+sqr(abs(y2-y3)));
  c:=sqrt(sqr(abs(x3-x1))+sqr(abs(y3-y1)));
  p:=(a+b+c)/2;
  S:=sqrt(p*(p-a)*(p-b)*(p-c));
end;
 
var
  X:array[1..100] of real;
  Y:array[1..100] of real;
  sum, min:real;
  N,i,j,l,c:integer;
  indexi, indexj, indexl : integer;
begin
  clrscr;
  write('Kol-vo tochek: ');
  readln(N);
  min:=maxlongint;
  randomize;
  for i:=1 to N do begin
    X[i]:=random(21)-10;
    Y[i]:=random(21)-10;
  end;
 
  for i:=1 to N do
  begin
    for j:=1 to N do
    begin
      if (i = j) then continue; { пропускаем одинаковые индексы }
      for l:=1 to N do begin
        if (l = i) or (l = j) then continue; { пропускаем одинаковые индексы }
 
        sum := s(X[i], X[j], X[l], Y[i], Y[j], Y[l]);
        if sum = 0 then continue; { пропускаем нулевую площадь: точки расположены на одной линии }
 
        if sum<min then begin
          min:=Sum;
          indexi := i; indexj := j; indexl := l;
        end;
      end;
    end;
  end;
  writeln('min S: ',min:0:2, ' точки: ',
    '[', indexi, '](', x[indexi]:0:0, ',', y[indexi]:0:0, ')',
    '[', indexj, '](', x[indexj]:0:0, ',', y[indexj]:0:0, ')',
    '[', indexl, '](', x[indexl]:0:0, ',', y[indexl]:0:0, ')');
  readln
end.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2013, 22:40
Привет! Вот еще темы с ответами:

Известны координаты двух точек. Найти расстояния от начала координат до этих точек. - Turbo Pascal
Известны координаты двух точек A(x1,y1) и B(x2,y2). Найти расстояния от начала координат до этих точек. Не знаю как высчитать...

Если прямые попарно пересекаются и образуют треугольник, то найти его площадь - Turbo Pascal
три прямые на плоскости заданы уравнениями акх+bky=ck (к=1,2,3) если прямые попарно пересекаются и образуют треугольник, то найти его...

Если прямые попарно пересекаются и образуют треугольник, найти его площадь - Pascal
Помогите! пропадаю! Три прямые на плоскости заданы уравнениями akx+bky=ck, k=1,2,3. Если эти прямые попарно пересекаются и образуют...

Найти сумму координат точек пересечения диагоналей трёх квадратов - Pascal
Помогите, пожалуйста, решать задачу. На плоскости расположены три квадрата так, что их стороны параллельны осям координат. Для каждого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru