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

Найти из множества материальных точку, которая наиболее близко расположена к центру тяжести этого множества

24.02.2012, 18:10. Показов 2019. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В трехмерном пространстве задано множество материальных точек. Найти ту из них, которая наиболее близко расположена к центру тяжести этого множества.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2012, 18:10
Ответы с готовыми решениями:

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

Массив: Среди всех точек этого множества, лежащих в одной из четвертей, найти точку, наиболее удаленную от начала координат
Дано множество A из N точек. Среди всех точек этого множества, лежащих в...

Дано множество A из N точек на плоскости. Найти точку (вывести её номер и значение) среди всех точек этого множества
Дано множество A из N точек на плоскости. Найти точку (вывести её номер и значение) среди всех...

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

10
71 / 71 / 72
Регистрация: 18.01.2012
Сообщений: 132
25.02.2012, 14:47 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
var
   mas:array [-50..50,-50..50,-50..50] of longint;
   n,x,y,z,i,xc,yc,zc,min1,min2,min3,l,r:longint;
begin
   readln(n);{количесвто точек}
   xc:=0;
   yc:=0;
   zc:=0;
   for x:=-50 to 50 do
      for y:=-50 to 50 do
         for z:=-50 to 50 do
            mas[x,y,z]:=0;{забиваем всё нулями}
   for i:=1 to n do
   begin
      read(x,y,z);
      mas[x,y,z]:=1;{единицы-клетки, которые мы вводим}
   end;
   for x:=-50 to 50 do
      for y:=-50 to 50 do
         for z:=-50 to 50 do
            if(mas[x,y,z]=1) then{если единица, то суммируем координаты}
            begin
               xc:=xc+x;
               yc:=yc+y;
               zc:=zc+z;
            end;
   xc:=trunc(xc/n);{потом ищем среднее}
   yc:=trunc(yc/n);
   zc:=trunc(zc/n);
   l:=0;
   for x:=-50 to 50 do
      for y:=-50 to 50 do
         for z:=-50 to 50 do
            if(mas[x,y,z]=1) then{}
            begin
               r:=trunc(sqrt((x-xc)*(x-xc)+(y-yc)*(y-yc)+(z-zc)*(z-zc)));{находим расстояние от
 текущей точки до центра}
               if(l=0) or (l>r) then{если нуль, то это первая точка.}
               begin
                  otv1:=x;{меняем ответ}
                  otv2:=y;
                  otv3:=z;
                  l:=r;
            end;
   writeln(otv1,otv2,otv3);{вывод}
end.
1
Mobile Software Engineer
Эксперт С++
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
25.02.2012, 15:12 3
Г.Р., вы потеряли один end; и не объявили 3 пременные otv1, otv2, otv3
0
71 / 71 / 72
Регистрация: 18.01.2012
Сообщений: 132
25.02.2012, 15:15 4
а поменять можешь? вот я не могу..
понятно, что они целые и end нужен в if в конце
0
71 / 68 / 46
Регистрация: 02.12.2015
Сообщений: 890
Записей в блоге: 1
29.05.2017, 15:06 5
Кто-нибудь может сказать ответ во втором сообщение верный или нет?
0
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.05.2017, 16:55 6
Задайте число точек n. Задайте 3 координаты каждой точки.
Координаты центра тяжести x=(сумма xi)/n, y=(сумма yi)/n, z=(сумма zi)/n.
Пройдите по массиву точек и найдите минимальное расстояние до центра, запомните номер этой точки и выведите его и координаты точки.
На код что выше не обращайте внимания.
0
71 / 68 / 46
Регистрация: 02.12.2015
Сообщений: 890
Записей в блоге: 1
29.05.2017, 17:06 7
Цитата Сообщение от Puporev Посмотреть сообщение
Задайте 3 координаты каждой точки.
Это в трехмерном массиве?
0
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.05.2017, 17:08 8
Можно трехмерный массив, можно 3 одномерных или 1 одномерный массив записей.
0
71 / 68 / 46
Регистрация: 02.12.2015
Сообщений: 890
Записей в блоге: 1
30.05.2017, 16:02 9
Начал так. До конца непонятно решение).
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  n :integer;
type point = record
  x: array[1..10] of integer;
  y: array[1.. 10] of integer;
  z :array[1..10] of integer;
end;
var
points:array[1..20] of point;
 
begin
  writeln('Введите n = ')
  readlin(n);
 
 
end.
0
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.05.2017, 16:31 10
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
type point=record
           x,y,z:real;
           end;
//квадрат расстояния между двумя точками
function rast(a,b:point):real;
begin
rast:=sqr(a.x-b.x)+sqr(a.y-b.y)+sqr(a.z+b.z);
end;
var n,i,imn:integer;
    a:array[1..50] of point;
    c:point;
    min:real;
begin
randomize;
repeat
write('Количество точек от 3 до 50 n=');
readln(n);
until n in [3..50];
writeln('Координаты точек');
for i:=1 to n do
 begin
  a[i].x:=-10+random(21);
  a[i].y:=-10+random(21);
  a[i].z:=-10+random(21);
  write(i:2,'(',a[i].x:5:1,';',a[i].y:5:1,';',a[i].z:5:1,') ');
  if i mod 3=0 then writeln;
 end;
writeln;
c.x:=0;
c.y:=0;
c.z:=0;
for i:=1 to n do
 begin
  c.x:=c.x+a[i].x;
  c.y:=c.y+a[i].y;
  c.z:=c.z+a[i].z;
 end;
c.x:=c.x/n;
c.y:=c.y/n;
c.z:=c.z/n;
writeln('Координаты центра тяжести: (',c.x:5:1,';',c.y:5:1,';',c.z:5:1,')');
min:=rast(a[1],c);
imn:=1;
for i:=2 to n do
if rast(a[i],c)<min then
 begin
  min:= rast(a[i],c);
  imn:=i;
 end;
writeln('Наиболее близкая к центру точка №',imn,' ее координаты:(',a[imn].x:5:1,';',a[imn].y:5:1,';',a[imn].z:5:1,')');
write('расстояние=',min:0:1);
end.
1
71 / 68 / 46
Регистрация: 02.12.2015
Сообщений: 890
Записей в блоге: 1
30.05.2017, 16:45 11
Большое спасибо.
0
30.05.2017, 16:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2017, 16:45
Помогаю со студенческими работами здесь

Найти координаты центра тяжести xc, yc, zc множества материальных точек
Найти координаты центра тяжести xc, yc, zc множества материальных точек. Множество материальных...

Найти точку среди всех точек этого множества, лежащих в первой четверти, наиболее близкую к началу координат
помогите решить задачу если можно то скоментариями зарание спасибо. Дано множество A из N точек...

Массив: Найти точку из этого множества, которая являлась бы центром окружности с минимальным радиусом.
Дано множество A из N точек с координатами (x,y). Найти точку из этого множества, которая являлась...

Найти точку из множества A, наиболее близкую к точке B
Дано множество A из N точек на плоскости и точка B (точки за- даны своими координатами x, y)....


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

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

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