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

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

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

Каким образом программа определяет эффективный угол? - C++

08.03.2014, 01:35. Просмотров 360. Ответов 6
Метки нет (Все метки)

Ребят, объясните одну вещь:
есть программа на С++,которая вычисляет при каком угле расстояние полета тела будет максимальным, и выводит эти значения.Вот участок кода который это делает:

C++
1
2
3
4
5
6
7
8
9
10
11
float d, max_d, max_a;
max_d = 0;
for (float a = 0; a < 90; a+=1) перебирает значение угла
{
d = dist(v,a);
if (max_d < d) Почему программа записывает именно максимальное значение d, ведь условие требует ЛЮБОЕ число больше нуля?
{
max_d = d;
max_a = a;
}
}
cout « "Максимальное расстояние: "«d«endl;
cout « "Эффективный угол: "«a«endl;
Собственно вопрос: Каким образом программа определяет эффективный угол?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2014, 01:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Каким образом программа определяет эффективный угол? (C++):

Объясните, каким образом программа могла бы использовать класс string, не прибегая к объявлению using - C++
Объясните, каким образом программа могла бы использовать класс string, не прибегая к объявлению using.

Программа определяет код символа по кодовой таблицей ASCII и определяет размер типа данных в байтах - C++
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include &lt;stdlib.h&gt; int main() {puts(&quot;My first program&quot;); //вывод сообщения char s='a'; int...

Каким образом легче выучить c++ - C++
Как легче понять и выучить язык с++

Каким образом разархивировать gzip? - C++
Здравствуйте, имеется буфер (ответ сервера на запрос), заархивированный в gzip (в заголовке - Content-Encoding: gzip) Требуется его...

GUI - каким образом лучше - C++
Подскажите как лучше реализовать GUI (в VS 2012 если быть точнее), слышал я что есть MFS как бы он вроде предназначен для создания GUI но...

Каким образом зашифровать Hex строки - C++
Интересует следующий вопрос, каким образом можно зашифровать hex строку в dll чтобы ее нельзя было расшифровать. Сам в прикладном...

6
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
08.03.2014, 01:54 #2
Tim308, Функция dist считает расстояние для текущего угла. В процессе прохода по циклу расстояние сравнивается с max_d. Если посчитанное расстояние для текущего угла больше чем последнее значение max_d, то max_d становится равным значению этого расстояния. Попутно запоминается угол, на котором это расстояние было получено. Ну и т.д. В конце у нас получается максимальное расстояние, достигнутое на заданном диапазоне углов, и собственно угол, на котором получение этого расстояния стало возможным (т.к. они запоминаются вместе).
Цитата Сообщение от Tim308 Посмотреть сообщение
Почему программа записывает именно максимальное значение d, ведь условие требует ЛЮБОЕ число больше нуля?
К сожалению формулировки самого условия ты не привел.
Но по тому, что видно, вроде бы все логично. Если мы считаем эффективным углом тот, при котором достигается наибольшая горизонтальная дальность бросания, то программа работает корректно (я исхожу из предположения, что в функции dist нет ошибок).
1
Tim308
0 / 0 / 0
Регистрация: 08.03.2014
Сообщений: 26
08.03.2014, 02:14  [ТС] #3
DrOffset, Ааа...я понял..т.е. при каждом проходе цикла программа записывает значение большее 0 в max_d, потом берет это число из max_d и сравнивает его с новым значением d и таким образом находится максимальное
0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
08.03.2014, 02:45 #4
Tim308, да.
Еще хотел спросить, ты в курсе, что эта задача: "нахождение максимального расстояния по заданному углу бросания" не требует перебора? Наибольшее расстояние всегда будет получено при угле 45 градусов.
0
gunslinger
случайный прохожий
1144 / 762 / 196
Регистрация: 20.07.2013
Сообщений: 2,131
08.03.2014, 03:09 #5
Если не учитывать сопротивление воздуха, я прав? Или это повлияет только на расстояние?
Хотя я придираюсь (можно просто считать сопротивление константой, иначе рассчет скорей всего вызовет сложности).
v, так понимаю, скорость тела при броске?
0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
08.03.2014, 03:46 #6
gunslinger, если учитывать сопротивление воздуха, ветер в слоях атмосферы, кривизну земли, разное значение g в зависимости от высоты траектории и т.д., тот тут будут совсем другие расчеты
Конечно тут все упрощено.
v - да, начальная скорость.
Тут формула простая: L = V02 * sin(2 * a) / g
0
Tim308
0 / 0 / 0
Регистрация: 08.03.2014
Сообщений: 26
08.03.2014, 09:48  [ТС] #7
DrOffset, Да знаю.Тут сама суть была написать "умную" программу.
0
08.03.2014, 09:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2014, 09:48
Привет! Вот еще темы с ответами:

Каким образом реализуется квалификатор const? - C++
Каким образом реализуется квалификатор const? Хранится ли в памяти в процессе выполнения программы какая либо информация по этому...

Каким образом параметры передаются в функцию? - C++
Задумался над тем, каким образом параметры передаются в функцию. Т.е. как именно это происходит внутри, это уже на вопрос к тому, как...

Каким образом пройдёт передача параметров в функцию - C++
Доброго времени! Переписываю код с Си. Есть такая вот ф-ия: cl_int clEnqueueCopyImage ( сonst size_t src_origin ) Как произойдёт...

Каким образом работает swap в приведенном коде? - C++
Каким образом работает swap в коде ниже? #include&lt;list&gt; #include&lt;memory&gt; #include&lt;utility&gt; struct test { ...


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

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

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