자바 t초 후 위치 계산 코드 질문
-
게시물 수정 , 삭제는 로그인 필요
자바 t초 후 위치 계산 코드 질문
코드를 작성하기 전에, 계산의 가정을 정리해보면
시작 속도: x m/s
거리 간격: n 미터
속도 감소: y m/s
최소 속도: 0 m/s
경과 시간: t 초
속도가 n 미터 이동할 때마다 y m/s씩 감소하므로, 이동할 때마다 시간과 현재 위치를 계산해야 합니다.
속도가 감소하는 조건은 x - y가 0 이상일 때만 적용됩니다.
만약 속도가 0이 되면, 그 이후에는 위치가 변하지 않습니다.
아래는 이 로직을 반영한 자바 코드 예시입니다,
public class SpeedCalculation {
public static void main(String[] args) {
double x = 10.0; // 초깃값 m/s
int n = 50; // 구간 m
double y = 2.0; // 속도 감소 m/s
double t = 1; // 시간 s
System.out.printf("%.2f\n", calculatePosition(x, n, y, t));
}
public static double calculatePosition(double initialSpeed, int distanceInterval, double speedDecrease, double time) {
double currentSpeed = initialSpeed;
double currentPosition = 0.0;
double elapsedTime = 0.0;
while (elapsedTime < time) {
if (currentSpeed <= 0) {
break; // 속도가 0이면 더 이상 움직이지 않음
}
double timeToTravelInterval = distanceInterval / currentSpeed; // 현재 속도로 구간을 이동하는데 걸리는 시간
if (elapsedTime + timeToTravelInterval > time) {
timeToTravelInterval = time - elapsedTime; // 남은 시간보다 이동 시간이 길 경우, 남은 시간만큼만 이동
}
currentPosition += currentSpeed * timeToTravelInterval; // 현재 속도로 이동 거리 계산
elapsedTime += timeToTravelInterval;
currentSpeed -= speedDecrease; // 속도 감소
if (currentSpeed < 0) {
currentSpeed = 0; // 속도가 0 미만이면 0으로 설정
}
}
return currentPosition;
}
}
위의 코드에서 calculatePosition 함수는 주어진 속도, 구간, 속도 감소, 시간에 따라 최종 위치를 계산해주고
main 메서드에서는 예제 값들을 설정하고 결과를 출력하도록 했습니다.
또한 결과는 소수점 두 자리까지 표시하도록 했습니다.
위의 코드를 기반으로 추가 요구사항이 있다면 그에 맞게 변수를 조정하여 사용하시면 됩니다.
예시:
import java.util.Scanner;public class PositionCalculator { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 변수 입력 double x = sc.nextDouble(); // 초기 속도(m/s) double n = sc.nextDouble(); // 이동 거리(m) double y = sc.nextDouble(); // 감소 속도(m/s) double t = sc.nextDouble(); // 시간(초) // 위치 계산 double distance = 0; double position = x * t; for (int i = 0; i < Math.ceil(n / t); i++) { if (distance < n) { distance += t * x; } else { distance += Math.min(n - distance, t * (x - y)); position -= Math.max(0, distance - n); } } // 결과 출력 System.out.printf("%.2f", position); }}
자바 언어로 x m/s로 n m구간을 반복해서 이동할 때, t초 후 위치를 구하는 코드를 구현하고... 싶습니다 코드를 작성하기 전에, 계산의 가정을...
... 출처 : https://sangki19.tistory.com/entry/자바-생성자-규칙-상속-시-Super-위치 super(40);가 b = 20; 아래에 위치할 경우 오류가 발생하는 이유는 자바의...
... 3, 5 등 후에 추가한 값은 잘 걸러지지 않습니다. 9도 소수로 들어가구요 어디가 문제인가요??? 소수 계산 알고리즘은 에라토스테네스의 체 알고리즘을 많이 사용합니다. <
... 이렇게 계산하는 방법이 맞나요? 챗지피티 답변이 부정확한거같아 질문합니다 안녕하세요. 쉽게 설명드릴께요. x = 10; y = x++ + ++x; 이런 코드가 있다고 할때, 이...
... 연산자 위치 찾기: charAt() - 피연산자 구분... 따라 계산: switch문 - 결과 출력: 1234+50 = 1284 이 문제 도와주세요 ㅠ 안녕하세요. 코드...
자바를 배우고 있는 학생입니다. 왕복달리기... //t초 후의 위치 구하기 System.out.println(2*n-x*t); } } 요렇게 코드를 짜서 실행해봤는데...
... 후 다음과 같은 계산 결과를 출력하는 코드를... 잘봤는데 자바 진도들을 너무 많이 나가서 연습해서 안되는 부분 질문도 못하고 도저히 쫓아...
... ex) document.addEventListener("DOMContentLoaded", function () { // JavaScript 코드가 이 위치에 있으면 페이지 로드 후 실행됩니다. }); 3. 디버깅 설정 확인 Visual Studio에서...
head first java 책에 나와있는 코드 인데요... 그작업이 끝나면 사용자가 추측한 위치를... //abcdefg에서 계산된 column번째의 값을 temp에...
계산기 GUI 코드입니다 c.add(np.BorderLayout.NORTH) 이 부분에서... add에서는 첫번째 매개변수가 컴퍼넌트고 두번재가 위치일텐...