Задача. Определить силу притяжения [latex]F[/latex] между телами массы [latex]m_1[/latex] и [latex]m_2[/latex], находящимися на расстоянии [latex]r[/latex] друг от друга.
Тесты
Масса первого тела(кг) | Масса второго тела(кг) | Расстояние(м) | Сила притяжения |
2e15 | 1.5e10 | 1e3 | 2.00215e+09 Н |
3e20 | 2.5 | 1e5 | 4.00430e+05 Н |
7e-1 | 9 | 2 | 1.05113e-10 Н |
3e20 | 0 | 1e5 | 0.00000e+00 Н |
20 | 50 | 9e5 | 8.23931e-20 Н |
Алгоритм
Задача состоит в том, чтобы успешно применить формулу закона всемирного тяготения. Мы должны вычислить силу притяжения между двумя телами, если известны их массы, а также расстояние между ними. Это легко найти без дополнительных преобразований по следующей формуле:
[latex]F=G\cdot \frac{m1\cdot m2}{r^2}[/latex],где [latex]m_1[/latex], [latex]m_2[/latex] — массы тел, [latex]r[/latex] — расстояние, а [latex]G[/latex] — гравитационная постоянная, значение которой задается в виде константы. Остальные значения вводятся с клавиатуры, в системе СИ.
Результат программы выводится в стандартном виде. Точность мантиссы по умолчанию равна пяти знакам после запятой.
Код программы:
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <stdio.h> #include <cmath> using namespace std; int main() { double m1, m2, r, F; //объявление переменных const double G = 6.67384e-11; //задается константа G scanf("%lg %lg %lg", &m1, &m2, &r); //ввод данных с клавиатуры F = G*m1*m2/r/r; //расчет силы по формуле printf("%.5le H\n", F); //вывод результата на экран return 0; } |
— У Вас в некоторых местах получились правильные формулы ([latex]m_1[/latex]). Так должно быть везде.
— Нужно указать единицы измерения физических величин.
— Последний тест не соответствует реальной физической ситуации.
Спасибо, сейчас исправлю.
— К сожаление в первом же предложении три ошибки с формулами.
— Зачем пустые строки в коде программы?
— Протестируем программу. Масса земли ~5.97 · 1024, масса моего тела ~90 кг, радиус Земли ~6371 км. Ваша программа вычислила, что меня тянет к земле с силой 8.83441 · 108 H. Это в миллион раз сильнее, чем я хотел бы. Придётся обратиться к Виктору Перестукину, иначе меня совсем расплющит. 🙁
Спасибо, я исправила. Расстояние теперь задается в метрах, как и положено в системе СИ.
Отлично, принято.