С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 28.06.2016
Сообщений: 5

Первые шаги

26.07.2016, 07:32. Показов 1483. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Программа должна рассчитать время, за которое световой луч проходит расстояние от Солнца до Земли.
Потратил уже не мало времени, но не могу понять в чем ошибка.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Filename: Sunlight.java
public class Sunlight {
    public static void main(String[] args) {
        // Distance from sun (150 million kilometers)
        int kmFromSun = 150000000;
 
        int lightSpeed = 299792458; // meters per second
 
        // Convert distance to meters.
        long mFromSun = kmFromSun * 1000;
 
        long seconds = mFromSun / lightSpeed;
 
        System.out.print("Light will use ");
        printTime(seconds);
        System.out.println(" to travel from the sun to the earth.");
    }
 
    public static void printTime(long sec) {
        long min = sec/60;
        sec = sec - (min*60);
        System.out.print(min + " minute(s) and " + sec + " second(s)");
    }
}
Выдача программы:
C:\Users\Сергей\IdeaProjects\untitled\sr c>java Sunlight
Light will use 0 minute(s) and -1 second(s) to travel from the sun to the earth.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.07.2016, 07:32
Ответы с готовыми решениями:

Первые шаги
Здраствуйте, меня зовут Женя, мне 16 лет. Я решил научиться программировать. Юзал поиск и в конце концов, накачав достаточно литературы и...

Первые шаги по изучению java
Прошу с пониманием отнестись. Предлагаю данную тему для новичков, здесь будут находиться самые разные вопросы, что где как и почему, это...

Первые шаги пройдены, что дальше?
Добрый день (утро/вечер) ув. форумчане. Несколько лет назад учился на программиста (не в ВУЗе), преподавали нам несколько языков, но...

6
 Аватар для RedPatrick
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
26.07.2016, 07:55
Лучший ответ Сообщение было отмечено Сергей 1008 как решение

Решение

Сергей 1008, поменяйте целочисленный тип long на double.
1
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
26.07.2016, 09:40
Сергей 1008, у Вас с выбором типа переменных путаница полнейшая - читайте подробнее в доступных источниках. А вообще должно выйти нечто вроде такого:
Java
1
2
3
4
5
6
7
8
9
10
11
class TimeFromSunToEarth {
    static int DISTANCE = 149_600_000;
    static int SPEEDLIGHT = 299_792_458;
 
    public static void main(String[] args) {
        double time = DISTANCE / (SPEEDLIGHT / 1000.0);
        int timeMinute = (int) (time / 60);
        double timeSeconds = time % 60;
        System.out.println("Солнечный свет достигает Земли приблизительно за " + timeMinute + " минут и " + timeSeconds + " секунд");
    }
}
1
0 / 0 / 0
Регистрация: 28.06.2016
Сообщений: 5
28.07.2016, 08:42  [ТС]
Добрый день! Поменял long на double. Считает, но результат неверный.
Диапазоны перепроверил, все должно работать.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Filename: Sunlight.java
public class Sunlight {
    public static void main(String[] args) {
        // Distance from sun (150 million kilometers)
        int kmFromSun = 150000000;
 
        int lightSpeed = 299792458; // meters per second
 
        // Convert distance to meters.
        double mFromSun = kmFromSun * 1000;
 
        double seconds = mFromSun / lightSpeed;
 
        System.out.print("Light will use ");
        printTime(seconds);
        System.out.println(" to travel from the sun to the earth.");
    }
 
    public static void printTime(double sec) {
        double min = sec/60;
        sec = sec - (min*60);
        System.out.print(min + " minute(s) and " + sec + " second(s)");
    }
}
 Комментарий модератора 
Используйте теги форматирования кода.


Выдача программы:
C:\Users\Сергей\IdeaProjects\untitled\sr c>java Sunlight
Light will use -0.0180044200222453 minute(s) and 0.0 second(s) to travel from the sun to the earth.

Добавлено через 4 минуты
HOBATOP, Добрый день! Это учебная задача, нужно исправить ошибке в коде. Ваш вариант мне нравится больше)
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
28.07.2016, 09:43
Сергей 1008,
Цитата Сообщение от Сергей 1008 Посмотреть сообщение
нужно исправить ошибке в коде
ну так и исправьте:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Sunlight {
    public static void main(String[] args) {
        // Distance from sun (150 million kilometers)
        int kmFromSun = 150000000;
 
        int lightSpeed = 299792458; // meters per second
 
        // Convert distance to meters.
        double mFromSun = kmFromSun * 1000.0;
        
        double seconds = mFromSun / lightSpeed;
 
        System.out.print("Light will use ");
        printTime(seconds);
        System.out.println(" to travel from the sun to the earth.");
    }
 
    public static void printTime(double sec) {
        int min = (int)sec/60;
        sec = sec - (min*60);
        System.out.print(min + " minute(s) and " + sec + " second(s)");
    }
}
присмотритесь, сравните что к чему, иногда даже точка и нолик могут всю картину поменять.
1
0 / 0 / 0
Регистрация: 28.06.2016
Сообщений: 5
28.07.2016, 11:08  [ТС]
HOBATOP, Благодарю, все оказалось так просто)
0
14 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 50
07.08.2016, 23:01
Подскажите как правильно считать дроби например 1/2+1/4=0.75 на java без манипуляций со строкой вывода типа

Java
1
2
3
4
5
6
7
class a7{
public static void main(String args[]){
float x=1;
 
System.out.printf("Result is %.2f \n", x/2+x/4 );
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.08.2016, 23:01
Помогаю со студенческими работами здесь

Шаги создания игры
Привет всем! А кто-нибудь знает, как начинать и вообще как написать игру на java? Конкретно мне интересно знать с чего начинать и что...

Какие шаги предпринять для овладения java и какую среду java посоветуете?
Пока сть опыт по Visual С, Basic; Borland Delphi, CBuilder. Хочется и в java разбираться.

C++ первые шаги (абсолютно первые)
Привет, пользователи CyberForum. Я относительно давний юзер этого форума, и вот, наконец-то решил воплощать мечту в реальность, а именно...

Первые шаги
Посоветуйте, с точки зрении СЕО на пользу сайта? За ранее благодарю за внимание. My Web

Первые шаги
Привет всем! Я хочу попробовать себя в контекстной рекламе. Тематику выбрали - кулинария. Я по бегуну посмотрел и ахнул, цена бида 2-3...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru