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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 665
#1

Расчет ускорения тела на плоскости - C++

22.09.2012, 21:24. Просмотров 2046. Ответов 22
Метки нет (Все метки)

Доброго время суток. Написать программу для расчета тела массой m, которое находится на горизонтальной плоскости и к которому под углом http://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha (к горизонту) приложена сила http://www.cyberforum.ru/cgi-bin/latex.cgi?{F}_{0}. Коэффициент трения тела о плоскость равен http://www.cyberforum.ru/cgi-bin/latex.cgi?\mu. Предусмотреть вариант, когда тело неподвижно (использовать тернарный оператор). Воспользоваться тем, что если тело движется, на него вдоль плоскости движения действует равнодействующая сила http://www.cyberforum.ru/cgi-bin/latex.cgi?F = {F}_{0} * \cos (\alpha )- {F}_{t}, где http://www.cyberforum.ru/cgi-bin/latex.cgi?{F}_{t} = \mu * m * g * \sin (\alpha ). Ускорение тела a ищется из второго закона Ньютона http://www.cyberforum.ru/cgi-bin/latex.cgi?F = m * a. Вот мой код программы
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
#include <cmath>
#include <iostream>
using namespace std;
double g = 9.81;
double Pi = 3.1416;
int main()
{
setlocale( LC_ALL,"Russian" );
double m;    
double F0;
double mu;
double alpha;
double a;
cout<<" m = ";cin>> m;
cout<<"F0 = ";cin>>F0;
cout<<"mu = ";cin>>mu;
cout<<"a(in deg) = ";cin>>alpha;
a = (F0 * cos (alpha*Pi/180) - mu * m * g * sin (alpha*Pi/180))/m;
cout<<"Ускорение тела равно : "<<a<<endl;
 (a = 0) //Тернарник проверки того, что тело покоится
  ? 
 cout<<"Ускорение тела равно: "<<a
  :
  cout<<"Тело неподвижно: ";
 cout<<endl;
system("pause");
return 0;
}
У меня не получается правильно записать условие, когда тело неподвижно, используя тернарный оператор???? Проверьте пожалуйста правильность работы программы???? Заранее огромное!!!! спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2012, 21:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Расчет ускорения тела на плоскости (C++):

Расчет траектории движении тела с учетом сопротивления воздуха - C++
Подобная задача, без учета сопротивления среды была только, что мною решена. если поможет, могу выложить листинг со скрином. но тут...

Расчет сумм в формуле и расчет xi должны быть оформлены в виде отдельных функций. - C++
День добрый товарищи специалисты, помогите пожалуйста с примером m=((1/n)*\sum_{i=1}^{n}{x}_{i}){}^{2}-\sum_{i=1}^{n}{x}_{i} ,n=5 ф-ция...

Расчет ускорения тела - Механика
Прошу проверить задачу: Поезд из грузиков, соединенных пружинками, приводится в ускоренное движение постоянной силой. Сила натяжение...

Определить модуль ускорения тела - Механика
Есть легкая задача: Тело массой m = 6 кг перемещают по гладкой горизонтальной поверхности, действуя горизонтальной силой, модуль которой...

Найти нормальное и тангенциальное ускорения тела - Механика
Найти нормальное и тангенциальное ускорения тела которое брошено с начальной скоростью V0 = 10 м/с под углом α=30 градусов к горизонту...

Каковы будут нормальное и тангенциальное ускорения тела - Механика
Тело брошено под углом = 30° к горизонту со скоростью 30 м/с. Каковы будут нормальное и тангенциальное ускорения тела через время t = 1 с...

22
-=ЮрА=-
Заблокирован
Автор FAQ
23.09.2012, 00:10 #16
Вот рисунок сил
1
Миниатюры
Расчет ускорения тела на плоскости  
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 665
23.09.2012, 13:04  [ТС] #17
-=ЮрА=- че то у меня ни чего не получается???? Бред какой то:
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
#include <cmath>
#include <iostream>
using namespace std;
double g = 9.81;
double Pi = 3.1416;
double a(double m, double F0, double alpha, double k);
int main()
{
setlocale( LC_ALL,"Russian" );
double m;    
double F0;
double k;
double alpha;
double a;
cout<<" m = ";cin>> m;
cout<<"F0 = ";cin>>F0;
cout<<"k = ";cin>>k;
cout<<"a(in deg) = ";cin>>alpha;
alpha *= asin(1.0)/90;
double a = a(m, F0, alpha, k);
a = (F0 * cos (alpha) - k * m * g * sin (alpha))/m;
cout<<"Ускорение тела равно : "<<a<<endl;
 
(F0*cos(alpha) = k*(m*g - F0*sin(alpha)) //Тернарник проверки того, что тело неподвижно
        ? 
        cout<<"Ускорение тела равно : "<<a
        : 
        cout<<"Тело неподвижно";
    cout<<endl;
    system("pause");
    return 0;
    }
    double a(double m, double F0, double alpha, double k);
    {
        return a = (F0 * cos (alpha) - k * m * g * sin (alpha))/m;
    }
Помогите пожалуйста. Заранее огромное спасибо.
0
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 665
26.09.2012, 21:19  [ТС] #18
Подскажите пожалуйста как правильно записать условие, когда тело неподвижно, используя тернарный оператор???? Тема еще актуальна. заранее огромное спасибо!!!!!
0
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 665
03.10.2012, 23:40  [ТС] #19
Вот правильно вывел формулу для расчета ускорения:
http://www.cyberforum.ru/cgi-bin/latex.cgi?a= ({F}_{0}*\cos(\alpha)- k*m*g + k*{F}_{0}*\sin(\alpha))/m.
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
40
41
42
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
setlocale( LC_ALL,"Russian" );
double g = 9.81;
double m = 0;    
double F0;
double Fresult;
double k;
double deg   = asin(1.0)/90;
double angle = 0;
double a;
cout<<" m = ";cin>> m;
cout<<"F0 = ";cin>>F0;
cout<<"k = ";cin>>k;
cout<<"angle = ";cin>>angle;
angle *= deg;
Fresult = F0 * cos (angle) - k * m * g + F0 * k * sin (angle);
a = Fresult/m;
if(m != 0 && m > 0)
    
{
cout << "Ускорение тела равно :  " << a <<endl;
}
    
else 
{
cout << "Введено некорректное значение массы" << endl;
 
  } 
 
(Fresult = 0) //Тернарник проверки того, что тело неподвижно
        ? 
        cout<<"Ускорение тела равно : "<<a
        : 
        cout<<"Тело неподвижно";
    cout<<endl;
    system("pause");
    return 0;
    }
Но у меня не получается правильно записать два условия масса больше и не равно нулю и правильно записать условие, когда тело неподвижно, используя тернарный оператор???? Помогите пожалуйста???? Заранее огромное спасибо.
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
04.10.2012, 07:22 #20
ну вот тебе пример F0=1 H , m = 1 кг , k= 0. 01 , и как сделать так чтоб тело было неподвижным, нужно поменять угол наклона его движения , решение на вольфраме, ответ примерно 85 градусов, но чистый 0 ты не получишь, во вторых если у тебя ускорение , а ты считаешь именно ускорение меньше 0, а изночальная скорость 0, то тело у тебя стоит, это если m!=0 , F0=0 , нет воздействия, и тело будет только тормозить пропорционально силе трения качения, но если оно не двигалось, оно просто не сдвинется пока сила
F0*cos+F0*k*sin < kmg
0
-=ЮрА=-
Заблокирован
Автор FAQ
04.10.2012, 17:55 #21
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <cmath>
#include <iostream>
using namespace std;
 
template <class T>
bool SafeInput(const char * sMsg, T &val);
 
int main()
{
    double m = 0;
    double k = 0;
    double F = 0;
    double g = 9.81;
    double alpha = 0;
    double deg = asin(1.0)/90;
    while(true)
    {
        if(!SafeInput("m = ", m))
            cout<<"input error"<<endl;
        else
        if(m < 0)
            cout<<"m must be positive"<<endl;
        else
        if(!SafeInput("k = ", k))
            cout<<"input error"<<endl;
        else
        if(k < 0)
            cout<<"k must be positive"<<endl;
        else
        if(!SafeInput("F = ", F))
            cout<<"input error"<<endl;
        else
        if(!SafeInput("alpha(deg) = ", alpha))
            cout<<"input error"<<endl;
        else
        if(fabs(F*cos(alpha*deg) + k*F*sin(alpha*deg) - k*m*g) < 1E-6)
            cout<<"No movment"<<endl;
        else
            cout<<"a = "<<F/m*(cos(alpha*deg) + k*sin(alpha*deg)) - k*g<<endl;
    }
    return 0;
}
 
template <class T>
bool SafeInput(const char * sMsg, T &val)
{
    bool bInput = true;
    cout<<sMsg;
    if(!(cin>>val))
        bInput = false;
    if(!bInput)
    {
        cin.sync();
        cin.clear();
    }
    return bInput;
}
1
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 665
04.10.2012, 21:21  [ТС] #22
Огромное спасибо -=ЮрА=-, то, что надо, не много изменил условия, когда пользователь случайно ввел с клавиатуры m = 0
C++
1
2
3
else
        if(m <= 0)
            cout<<"m must be positive and no 0"<<endl;
То что надо супер, огромное тебе спасибо. Жалко, что еще раз не могу тебе добавить плюс.
0
Миниатюры
Расчет ускорения тела на плоскости  
-=ЮрА=-
04.10.2012, 21:30     Расчет ускорения тела на плоскости
  #23

Не по теме:

isaak, да с массой можно Согласен нулевой массы в природе не существует (по крайней мере в макромире, на счёт элементарных частиц и бозонов не уверен)

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2012, 21:30
Привет! Вот еще темы с ответами:

Каковы будут нормальное и тангенциальное ускорения тела - Механика
Тело брошено под углом α = 30о к горизонту со скоростью ν0 = 30 м/с. Каковы будут нормальное аn и тангенциальное аτ, ускорения тела через...

Расчет времени ускорения - Механика
Нужно написать формулу. Сколько потребуется времени, чтобы телу достичь заданной максимальной скорости ? Известные данные: ...

Найти ускорения, с которыми движутся тела, и силы натяжения нитей. - Механика
Доброе время суток помоги-те решить задчки : Несколько тел массами m1, m2, m3 соединены невесомыми нерастяжимыми нитями, перекинутыми...

Найти ускорения, с которыми движутся тела, и силы натяжения нитей. - Механика
Три тела соединены невесомыми нерастяжимыми нитями, перекинутыми через блоки, массами которых можно пренебречь. Массы тел m1=01 кг m2=0.1...


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

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

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