Сап, дотач. Не думал, что когда-нибудь придется создавать подобную тему (и тему вообще), но нужда приперла.
Короче, дело такое: Дан рисунок поля -
Синяя точка - местонахождение предмета (в данном случае - оружия), зеленое - грунт, а.к.а земля, красное - цель, в которую необходимо попасть.
Дано: формулы - x=v0t*cosa; y=v0t*sina-gt^2/2;
Ускорение свободного падения g=8.86 (m/s^2);
Начальная скорость v0=15 m/s;
Угол а,который требуется ввести самостоятельно, а также временной интервал и шаг дельта t=0.05;
Требуется создать программу, которая позволяет высчитать траекторию полета. Траекторию высчитывать нужно до достижения цели, либо до падения снаряда на землю, в каждом случае нужно вывести определенное сообщение - "достиг цели" и "промах" соответственно.
Условия для сдачи программы:
необходимо использовать оператор
while,
запрещено использовать оператор
break . Спойлер: "Неверный код (Шок-контент) разбитый по каким-то причинам на 2 спойлера" import java.util.Scanner; public class Ld2161rdb087{ public static void main(String [] args){ Scanner sc=new Scanner(System.in); double g=8.86, v0=15; double y, t, x,a ; boolean hitTarget=false; System.out.println("Лысый из РТА LRDB02 161RDB087"); System.out.print("x="); if (sc.hasNextDouble()) x0=sc.nextDouble(); else{ System.out.println("input-output error"); sc.close(); return; } System.out.print("y="); if (sc.hasNextDouble()) y0 = sc.nextDouble(); else { System.out.println("input-output error"); sc.close(); return; } System.out.print("a="); if (sc.hasNextFloat()) a = sc.nextFloat(); else { System.out.println("input-output error"); sc.close(); return; } System.out.println("t \t x \t y"); t=0.05; x = v0 * t*Math.cos(a); y = v0 * t * Math.sin(a)-g*t*t/2; System.out.printf("%3.2f\t%7.3f\t%7.3f\n", t, x, y);
Спойлер: "Неверный код (Шок-контент) разбитый по каким-то причинам на 2 спойлера" while (y>=0){ if (x>=15 && x<=18 && y>=4 && y<=6){
hitTarget=true; } t+=0.05; }
if (hitTarget) System.out.println("Снаряд достиг цели"); else System.out.println("промах"); } } После долгих мучений, я все еще не вдуплил, как заставить его выводить оповещения на оба случая, и прибавлять к t 0.05, если снаряд все еще в воздухе. Посему, прошу помощи у икспертов форума
По канонам
: Спойлер: "Мой лоускилльный дб" Фото под спойлером в подписи
Нажмите, чтобы раскрыть...