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

Центр тяжести - C++

Восстановить пароль Регистрация
 
JoHarvelle
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 21
09.12.2013, 09:49     Центр тяжести #1
Система из n материальных точек в пространстве задана с помощью последовательности действительных чисел x1, y1, z1, p1, x2, y2, z2, p2, ..., xn, yn, zn, pn, где xi, yi, zi - координаты i-ой точки, а pi - ее вес (i = 1, 2, ..., n). Получить координаты центра тяжести системы.

Задачу практически решила. НО есть вопрос:
Как посчитать x, y, z по формулам в программе? ( я так понимаю, это сумма произведений двух массивов, но как в виде кода это записать - не понимаю). Помогите, пожалуйста!

C++
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
#include <stdio.h>     #include <stdlib.h>
#include <math.h>
#include <iostream.h>
void main ()
{
float x, y, z, p, P_Sum;
int n, i;
float mas[4][25]={0};
printf ("Vvedite kolich.mater.tochek - n:");
scanf  ("%d", &n);
 
for (i=0; i < n; i++)
{
printf ("Vvedite x:");
scanf ("%f", &mas[0][i]);
printf ("Vvedite y:");
scanf ("%f", &mas[1][i]);
printf ("Vvedite z:");
scanf ("%f", &mas[2][i]);
printf ("Vvedite p:");
scanf ("%f", &mas[3][i]);
}
P_Sum = 0;
for (i=0; i < n; i++)
{
P_Sum = P_Sum+mas[3][i];
}
x= 0;
for (i=0; i < n; i++)
{
x = ...
y = ...
z = ...
}
printf ("X = %f \n", x);
printf ("Y = %f \n", y);
printf ("Z = %f \n", z);
 
}
Ах, да! И вот формулы для подсчета координат:
x = (x1*p1+x2*p2+...+xn*pn)/(p1+p2+...+pn)
y = (y1*p1+y2*p2+...+yn*pn)/(p1+p2+...+pn)
z = (z1*p1+z2*p2+...+zn*pn)/(p1+p2+...+pn)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2013, 09:49     Центр тяжести
Посмотрите здесь:

Центр тяжести C++
C++ Центр графа
Точка, наиболее близкая к центру тяжести C++
C++ Центр орграфа, классы
C++ Тело падает под действием силы тяжести
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
09.12.2013, 10:11     Центр тяжести #2
C++
1
2
3
4
5
6
7
8
x = 0; y = 0; z = 0;
for (i=0; i < n; i++)
{
    x += mas[0][i]*mas[3][i];
    y += mas[1][i]*mas[3][i];
    z += mas[2][i]*mas[3][i];
}
x /= P_Sum; y /= P_Sum; z /= P_Sum;
Если нигде не напортачил, то как-то так.
JoHarvelle
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 21
09.12.2013, 10:33  [ТС]     Центр тяжести #3
Спасибо большое!
Но один вопрос: объясните, пожалуйста, что означают эти плюсики перед x, y, z?
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
09.12.2013, 10:56     Центр тяжести #4
a = a + b; и a += b; одно и то же. Так же там ниже с делением.
Yandex
Объявления
09.12.2013, 10:56     Центр тяжести
Ответ Создать тему
Опции темы

Текущее время: 10:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru