1 / 1 / 0
Регистрация: 02.12.2009
Сообщений: 38
1

Из заданного на плоскости множества точек выбрать 3 различные

03.12.2009, 22:35. Показов 1819. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Из заданного на плоскости множества точек выбрать 3 различные так,чтобы разность между площадью круга,ограниченного окружностью,проходящей через эти 3 точки и площадью треугольника с вершинами в этих точках была минимальной.Смотрите зад.24.А там:определить радиус и центр такой окружности,проходящей хотя бы через 3 различные точки заданного множества точек на плоскости,которая содержит внутри наибольшее количество точек этого множества.Далее найти по трем сторонам площадь треугольника,вписанного в окружность.Я никак не могу эту задачу решить... а уже зачет((..пожалуйста помогите..PASCAL

Добавлено через 36 секунд
эту задачу я решить не могу((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2009, 22:35
Ответы с готовыми решениями:

Из заданного множества точек на плоскости выбрать две различные точки так, чтобы количества точек различались наименьшим образом
Из заданного множества точек на плоскости выбрать две различные точки так, чтобы количества точек,...

Выбрать три различные точки из заданного множества точек на плоскости по условию
вот у меня задача нарисовалась нужно выбрать три различные точки из заданного множества точек на...

Выбрать три различные точки из заданного множества
Доброго времени суток, буду вам очень признателен, если вы поможете мне решить вот эту задачу: ...

Выбрать три различные точки из заданного множества
Выбрать три различные точки из заданного множества точек на плоскости так, чтобы была минимальной...

4
1 / 1 / 0
Регистрация: 02.12.2009
Сообщений: 38
18.12.2009, 19:25  [ТС] 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
54
55
56
57
58
59
60
61
62
63
64
65
program zad_1;
uses crt;
var
x1,x2,x3,y1,y2,y3,max,m1:real;
i,j,k:integer;
function st(x1,x2,x3,y1,y2,y3:real):real;
    begin
    st:=(abs(x1*(y2-y3)+x2*(y3-y1)+x2*(y1-y2)))/2;
    end;
 
function det (x1,x2,x3,y1,y2,y3:real):real;
    var h1,h2,h3:real;
    begin
        h1:=(sqr(x1)+sqr(y1));
        h2:=(sqr(x2)+sqr(y2));
        h3:=(sqr(x3)+sqr(y3));
        det:=(h1*(y2-y3)-y1*(h2-h3)+(h2*y3-h3*y2));
    end;
 
function x0 (x1,x2,x3,y1,y2,y3:real):real;
    var a:real;
    begin
        a:=st(x1,x2,x3,y1,y2,y3);
        x0:=(1/(4*a))*det(x1,x2,x3,y1,y2,y3);
    end;
 
 
function y0 (x1,x2,x3,y1,y2,y3:real):real;
    var a:real;
    begin
        a:=st(x1,x2,x3,y1,y2,y3);
        y0:=-(1/(4*a))*det(x1,x2,x3,y1,y2,y3);
    end;
    
function so(x1,x2,x3,y1,y2,y3:real):real;
    var
    r,x,y:real;
    begin
    x:=x0(x1,x2,x3,y1,y2,y3);
    y:=y0(x1,x2,x3,y1,y2,y3);
    r:=sqrt(sqr(x1-x)+sqr(y1-y));
    so:=3.14*sqr(r);
    end;
 
begin
randomize;
max:=0;
for i:=1 to 5 do
begin
    x1:=random(100);
    x2:=random(100);
    x3:=random(100);
    y1:=random(100);
    y2:=random(100);
    y3:=random(100);
    writeln('(',x1:4:2,',',y1:4:2,');');
    writeln('(',x2:4:2,',',y2:4:2,');');
    writeln('(',x3:4:2,',',y3:4:2,');');
    m1:=(so(x1,x2,x3,y1,y2,y3)-st(x1,x2,x3,y1,y2,y3));
    writeln('S',i,'=',m1:6:4);
    if (max<m1) then max:=m1;
end;
writeln(max);
readln;
end.
Добавлено через 2 минуты
вы бы не могли мне помочь..немного изменить программу..она работает,но у меня точки выбираются не из множества..мне сказали надо ввести 2 массиа.. х и у..и изменить только вот здесь
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
x1:=random(100);
x2:=random(100);
x3:=random(100);
y1:=random(100);
y2:=random(100);
y3:=random(100);
writeln('(',x1:4:2,',',y1:4:2,');');
writeln('(',x2:4:2,',',y2:4:2,');');
writeln('(',x3:4:2,',',y3:4:2,');');
m1:=(so(x1,x2,x3,y1,y2,y3)-st(x1,x2,x3,y1,y2,y3));
writeln('S',i,'=',m1:6:4);
if (max<m1) then max:=m1;
end;
0
Платежеспособный зверь
8930 / 4358 / 1642
Регистрация: 28.10.2009
Сообщений: 11,578
18.12.2009, 20:35 3
Нет, не так всё просто. Надо найти прогу, которая перебирает все варианты троек из заданного количества, потом по трём точкам найти длины отрезков, потом по формуле Герона площадь треугольника, а как искать площадь круга? Я не возьмусь
0
1 / 1 / 0
Регистрация: 02.12.2009
Сообщений: 38
18.12.2009, 20:38  [ТС] 4
alexevt, преподу программа понравилась..но он сказал,просто измени только то:ну чтобы мои точки выбирались из множества..но если вы считаете это долгим занятием,то ладно))как-нибудь доберусь до конца))еще 2 дня есть до очередного зачета))
0
1 / 1 / 0
Регистрация: 02.12.2009
Сообщений: 38
24.12.2009, 20:47  [ТС] 5
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
program zad_1;
const n = 10;
var
 
dy, dx : array [1..n] of real;
min,m1:real;
i,j,k:integer;
 
function st(x1,x2,x3,y1,y2,y3:real):real;
     begin
     st:=(abs(x1*(y2-y3)+x2*(y3-y1)+x2*(y1-y2)))/2;
     end;
     
function det (x1,x2,x3,y1,y2,y3:real):real;
     var
          h1, h2, h3 :real;
 
     begin
          h1 := (sqr(x1)+sqr(y1));
          h2 := (sqr(x2)+sqr(y2));
          h3 := (sqr(x3)+sqr(y3));
          det := (h1*(y2-y3)-y1*(h2-h3)+(h2*y3-h3*y2));
     end;
function x0 (x1,x2,x3,y1,y2,y3:real):real;
     var a:real;
     begin
          a := st(x1,x2,x3,y1,y2,y3);
          x0 := (1/(4*a))*det(x1,x2,x3,y1,y2,y3);
    end;
function y0 (x1,x2,x3,y1,y2,y3:real):real;
     var a:real;
     begin
          a := st(x1,x2,x3,y1,y2,y3);
          y0 := -(1/(4*a))*det(x1,x2,x3,y1,y2,y3);
    end;
 
function so(x1,x2,x3,y1,y2,y3:real):real;
     var
     r,x,y:real;
     begin
     x:=x0(x1,x2,x3,y1,y2,y3);
     y:=y0(x1,x2,x3,y1,y2,y3);
     r:=sqrt(sqr(x1-x)+sqr(y1-y));
     so:=3.14*sqr(r);
     end;
 
begin
randomize;
min:=32467;
 
Writeln('vvodite koordinati tochek') ;
 
for i := 1 to n do
 Readln(dx[i], dy[i]);
 for i:=1 to n do
    for j := 1 to n do
        if(i <> j) then
            for k := 1 to n do
                if((i <> k) and (j <> k)) then
begin
m1:= so(dx[i],dx[j],dx[k],dy[i],dy[j],dy[k]) - st(dx[i],dx[j],dx[k],dy[i],dy[j],dy[k]);
 
     writeln('S',i,'=',m1:7:2);
 
     if (min < m1) then
        min:=m1;
end;
 
writeln(min:7:2);
readln;
end.
это так я изменила
1
24.12.2009, 20:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2009, 20:47
Помогаю со студенческими работами здесь

Из заданного множества точек на плоскости выбрать две различные точки по условию
из заданного множества точек на плоскости выбрать две различные точки так, чтобы количества точек,...

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

Выбрать три различные точки из заданного множества точек
выбрать три различные точки из заданного множества точек на плоскости так, чтобы была минимальной...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru