Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 38
1

Вычисление максимальной дальности полета и максимального угла

22.04.2010, 00:05. Просмотров 829. Ответов 5
Метки нет (Все метки)

Приветствую всех.
Только начал изучение программирования, решил изучать с c++
Задачка для вычисление максимально дальности полета и максимального угла, вот:
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
#include <iostream>
#include <cmath>
 
 
float dist ( float v, float a)
{
    return v * v *  sin (2 * a * 0.0175 )/ 9.8; 
 
}
 
 
using namespace std;
int main()
{
    float v;
    cout << "Vvedite skorost, m/s - ";
    cin >> v;
    float d;
    float max_d;
    float max_a;
    max_d = 0;
    for (float a = 0; a < 90; a += 1)
    {
        d = dist (v,a);
        if (max_d < d)
        {
            max_d = d;
            max_a = a;
        }
 
    }
    cout << "Max distance - " << max_d << endl;
    cout << "Max ugol - " << max_a;
}
Вопросы вот какие:
1. зачем нужна строка max_d = 0;
2. Где здесь вычисляется именно то, что при нахождение максимального угла задача считается выполненной. Я все никак просто не могу алгоритм понять здесь, в этой части:
C++
1
2
3
4
5
6
7
8
9
{
        d = dist (v,a);
        if (max_d < d)
        {
            max_d = d;
            max_a = a;
        }
 
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2010, 00:05
Ответы с готовыми решениями:

Вычисление дальности полёта снаряда
Задали составить программу в Pascale.Вычисление дальности полёта снаряда. Сможете составить?

Отношение высоты полета и дальности полета
Тело брошено под углом к горизонту. Найдите, во сколько раз максимальная высота его подъема меньше...

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

Реализуйте функцию расчета угла прицеливания, в зависимости от начальной скорости снаряда и дальности до цели
Помогите пожалуйста решить задачу.

5
4848 / 3269 / 466
Регистрация: 10.12.2008
Сообщений: 10,569
22.04.2010, 06:46 2
C++
1
if (max_d < d)
сюда заходит только когда max_d < d

Цитата Сообщение от alfer
1. зачем нужна строка max_d = 0;
max_d может не содержать нуля при создании (так как она не глобальная и не локальная статическая)

Цитата Сообщение от alfer
Где здесь вычисляется именно то, что при нахождение максимального угла задача считается выполненной.
после цикла для максимальной дальности полёта max_d есть её угол max_a
цикл отфильтровал
1
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 38
22.04.2010, 08:09  [ТС] 3
Цитата Сообщение от accept Посмотреть сообщение
сюда заходит только когда max_d < d
Эт я понял, но вот вопрос как раз, а что это за max_d , что (какое число) сравнивается с результатом d? Ничего же не вводится, ничего же не вычисляется, а что тогда сравнивается с d?
Я конечно вижу, результат есть, но честно никак не пойму этот момент.
0
221 / 135 / 48
Регистрация: 12.04.2010
Сообщений: 248
22.04.2010, 08:49 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
        max_d = 0; //Это инициализация переменной max_d, т.е. при запуске программы максимальная дистанция = 0.
 
        for (float a = 0; a < 90; a     += 1) //Здесь цикл от 0 до 90 градусов.
        {
                d = dist (v,a);//Вычисляется дистанция при введенной скорости v и угла a (который перебирается в цикле)
                if (max_d < d)//Сравниваем расчетную дистанцию d с максимальной max_d (при первом проходе цикла max_d = 0)
                {
                        max_d = d;//устанавливаем значение максимальной дистанции
                        max_a = a;//устанавливаем значение максимального угла
                }
         }
         //После перебора всех углов получаем в max_d максимальную дистанцию и в max_a максимальный угол
1
4848 / 3269 / 466
Регистрация: 10.12.2008
Сообщений: 10,569
22.04.2010, 10:00 5
Цитата Сообщение от alfer
что (какое число) сравнивается с результатом d?
предыдущее d
начинается с нуля, таким образом первая полученная дистанция сразу записывается как самая большая (так как она не нулевая), а следующая дистанция (вторая) сравнивается с самой большой дистанцией (первой) и, если вторая больше первой, то вторая запишется как самая большая, а если нет, то вычислится третья дистанция и будет сравниваться с самой большой (первой)
если третья дистанция больше самой большой, то третья запишется как самая большая
смысл цикла в том, чтобы оставить самую большую дистанцию
1
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 38
22.04.2010, 14:41  [ТС] 6
Как все просто, правда когда вы объяснили . accept,uggway, большое спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2010, 14:41

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

Вывести данные об авиарейсе с максимальной длительностью полета
№ Авиарейса Время вылета Время прилета Направление Марка самолета Расстояние Вывести данные...

Найти вид зависимости горизонтальной длины полета тела и максимальной высоты траектории
Найти вид зависимости горизонтальной длины полета тела и максимальной высоты траектории от одного...

Нахождение максимальной высоты от угла выстрела
Здравствуйте. Помогите пожалуйста, нужно найти максимальную высоту от угла броска. Есть программа...

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


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

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

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