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

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

Войти
Регистрация
Восстановить пароль
 
alfer
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 38
#1

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

22.04.2010, 00:05. Просмотров 393. Ответов 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;
        }
 
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2010, 00:05     Вычисление максимальной дальности полета и максимального угла
Посмотрите здесь:

Дано значение угла alfa в радианах (0 < alfa < 2*pi). Определить значение этого же угла в градусах C++
Вычисление максимального элемента, среди элементов, расположенных на побочных диагоналях матрицы C++
C++ Вычисление максимального элемента побочной диагонали матрицы
C++ Вычисление косинуса угла между векторами, в чем ошибка
Вычисление величины максимального и минимального элементов массива. C++
Ввод/вывод элементов квадратной матрицы, вычисление индексов максимального элемента C++
C++ Вычисление максимального элемента в одномерном динамическом массиве
Дискретная модель. Задача на вычисление времени полета тела C++
C++ Вычисление времени полета тела
C++ Ввод элементов массива с клавиатуры, вычисление суммы по формуле, нахождение максимальной суммы
Рассчитать квадрат синуса угла, значение угла вводится с клавиатуры в градусах C++
C++ Неправильное вычисление синуса угла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
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
цикл отфильтровал
alfer
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 38
22.04.2010, 08:09  [ТС]     Вычисление максимальной дальности полета и максимального угла #3
Цитата Сообщение от accept Посмотреть сообщение
сюда заходит только когда max_d < d
Эт я понял, но вот вопрос как раз, а что это за max_d , что (какое число) сравнивается с результатом d? Ничего же не вводится, ничего же не вычисляется, а что тогда сравнивается с d?
Я конечно вижу, результат есть, но честно никак не пойму этот момент.
uggway
219 / 133 / 9
Регистрация: 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 максимальный угол
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.04.2010, 10:00     Вычисление максимальной дальности полета и максимального угла #5
Цитата Сообщение от alfer
что (какое число) сравнивается с результатом d?
предыдущее d
начинается с нуля, таким образом первая полученная дистанция сразу записывается как самая большая (так как она не нулевая), а следующая дистанция (вторая) сравнивается с самой большой дистанцией (первой) и, если вторая больше первой, то вторая запишется как самая большая, а если нет, то вычислится третья дистанция и будет сравниваться с самой большой (первой)
если третья дистанция больше самой большой, то третья запишется как самая большая
смысл цикла в том, чтобы оставить самую большую дистанцию
alfer
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 38
22.04.2010, 14:41  [ТС]     Вычисление максимальной дальности полета и максимального угла #6
Как все просто, правда когда вы объяснили . accept,uggway, большое спасибо.
Yandex
Объявления
22.04.2010, 14:41     Вычисление максимальной дальности полета и максимального угла
Ответ Создать тему
Опции темы

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