| BG Development · За реклама · За контакти |
Помощ Търсене Потребители Календар Правила |
| Здравей! ( Включване | Регистриране ) |
| Страници: (3) [1] 2 3 ( Първото ново мнение ) | ![]() ![]() ![]() |
| jordanElj |
Публикувано на: 25-09-2022, 11:47
|
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 19 Регистриран на: 25.09.22 |
Някой да знае как може да се изчисли времето въведено от конзолата?!
Задача: Трябва да създадете програма, която изчислява колко пари генерират вашите слънчеви клетки на ден въз основа на броя часове слънчева светлина. Започнете задачата, като изградите блок-схема и програмна логика на хартия. След това опишете вашата структура в текстова форма (псевдокод) в заглавката на коментара на програмата, така че външен човек да може да разбере какво прави програмата и как работи вашата логика/алгоритъм. Инсталирали сте слънчеви клетки на покрива си и искате да изчислите колко печелите в слънчев летен ден. Закупили сте 26 слънчеви панела, всеки с размери 1,7x1 m и може да произведе максимум 290 W. Предположения: Вие сте монтирали слънчевите си панели, обърнати директно на юг и имате идеален ъгъл на покрива (35-45 градуса). Слънчевата радиация в Sofia в слънчев летен ден (юни/юли) е средно 166 Wh/m2/час. Ефективността на слънчевата клетка (Връзки към външен сайт.) се приема за 20% (от слънчевата радиация). Приема се, че цената на електроенергията е 0,9 LV/kWh (включително данъчна отстъпка от 60 st). Производство (Wh) = Слънчева радиация (Wh/m2/час) x ефективност x повърхност (m2) x слънчеви часове Потребителят въвежда кога слънцето изгрява и колко залязва. Използвайте скенер за въвеждане (не диалогови прозорци). Часът се въвежда във формат чч:мм. Програмата трябва първо да изчисли броя на слънчевите часове, след това какво производство се извършва и накрая каква печалба дава продажбата на цялата продукция. Представете резултатите до два знака след десетичната запетая, използвайте printf за форматиране на изхода. В програмата приемаме, че всички въведени часове се отнасят за един и същи ден. Трябва да проверите въведените стойности, така че "датата" да е през юни/юли (месец 6 или 7) и че времето на залез е по-късно от изгрева. За всички други стойности програмата трябва да върне едно Разделител Трябва да използвате useDelimiter, за да посочите разделителя при зареждане съгл. изпълнението на програмата по-горе |
| jordanElj |
Публикувано на: 25-09-2022, 11:52
|
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 19 Регистриран на: 25.09.22 |
Става въпрос за JAVA!
|
| thrawn |
Публикувано на: 25-09-2022, 11:53
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3864 Регистриран на: 17.01.17 |
Какво питаш в действителност?
Въвеждаш в колко изгрява слънцето и в колко залязва. Разликата между дветв стойности е врвмето което ти трябва. В условието дори ти е дадено да ползвал скенер за прихващане на потребителския вход. Това мнение е било редактирано от thrawn на 25-09-2022, 11:58 |
| jordanElj |
Публикувано на: 25-09-2022, 13:05
|
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 19 Регистриран на: 25.09.22 |
Проблема е, че не знам как да преобразувам данните въведени от конзолата, и в същото време да използвам ---> useDelimiter(":|\\s+"); при вход от потребител
Scanner input = new Scanner(System.in); System.out.println("Enter sunrise in format hh:mm ---> "); input.useDelimiter(":|\\s+"); int hoursM = input.nextInt(); int minutesM = input.nextInt(); input.nextLine(); int timeM = hoursM + minutesM; System.out.println("Enter sunset in format hh:mm ---> "); int hoursE = input.nextInt(); int minutesE = input.nextInt(); input.nextLine(); int timeE = hoursM + minutesM; |
| thrawn |
Публикувано на: 25-09-2022, 13:22
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3864 Регистриран на: 17.01.17 |
Какво смяташ, че ще получиш като събереш часове с минути?
Умножи часовете по 60 и тогава добави минутите. След като намериш разликата в минути, я делиш на 60 за да получиш времето в часове (формулите ти го налагат). Задачата обаче изисква проверки за валиден час и минути и за това дали залезът е след изгрева. Също така се споменава и за дата, та най-вероятно се иска да въведеш пълни дата и час. Като цяло, задачата има по-лесна имплементация използваща java.time но в края на краищата това е задача с ясно посочени изисквания към решението. |
| jordanElj |
Публикувано на: 25-09-2022, 13:26
|
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 19 Регистриран на: 25.09.22 |
Имам на предвид как часът въведен от конзолата например --> 12:05...ще стане на 12.05...така, че да бъде във формат в които става за изчеление
|
| thrawn |
Публикувано на: 25-09-2022, 13:30
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3864 Регистриран на: 17.01.17 |
Още в началните класове се учи за мерни еденици. 12:05 няма нищо общо с 12.05 (десерична дроб). Пробвай да осмислиш какво съм ти написал по-горе.
|
| jordanElj |
Публикувано на: 25-09-2022, 14:08
|
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 19 Регистриран на: 25.09.22 |
получи се нещо...tanks double timeE = hoursE - hoursM + (( minutesE /60.0) - (minutesM / 60.0)) Enter sunrise in format hh:mm ---> 01:46 Enter sunset in format hh:mm ---> 23:28 21.7 |
| jordanElj |
|
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 19 Регистриран на: 25.09.22 |
Това беше първата ми програма javascript:emoticon(':shock:')
Scanner input = new Scanner(System.in); System.out.println("Input Month and Date in format [MM-DD] and then press Enter ---> "); input.useDelimiter("-|\\s+"); double month = input.nextInt(); double date = input.nextInt(); input.nextLine(); if (month == 06 || month == 07) { System.out.println("The Month is OK!\nInput sunrise time in format [HH:MM] and then press Enter ---> "); } else { System.out.println("Invalid Month!You are supposed to enter June(06) or July(07), try again. "); } input.useDelimiter(":|\\s+"); int hoursM = input.nextInt(); int minutesM = input.nextInt(); input.nextLine(); System.out.println("Input sunset time in format [HH:MM] and then press Enter ---> "); int hoursE = input.nextInt(); int minutesE = input.nextInt(); input.nextLine(); double solPanDepth = 1.7f; double solPanQuantity = 26; double solPanArea = solPanDepth * solPanQuantity; double solarRadKW = 166; double electrPrice = 0.9; double timeE = hoursE - hoursM + (( minutesE /60.0) - (minutesM / 60.0)); double ProductionWh = solPanArea * solarRadKW * 0.20 * electrPrice * timeE / 1000; System.out.print( "The average number of hours in the day is: " + String.format("%.2f" , timeE) + " hours.\n" + "The value is: " + String.format("%.2f" , ProductionWh) + " lv."); input.close(); Input Month and Date in format [MM-DD] and then press Enter ---> 07-04 The Month is OK! Input sunrise time in format [HH:MM] and then press Enter ---> 03:45 Input sunset time in format [HH:MM] and then press Enter ---> 21:49 The average number of hours in the day is: 18,07 hours. The value is: 23,86 lv. |
| thrawn |
Публикувано на: 26-09-2022, 12:54
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3864 Регистриран на: 17.01.17 |
Използвай code тагът когато постваш код. Така е нечетим и практически никой няма да го погледне.
Иначе, какво ще стане ако приложението влезе в else блока за проверка на месец? Освен това ти липсва проверка за часовете (залез след изгеев и валиден диапазон за час и за минути). |
Страници: (3) [1] 2 3 |
![]() ![]() ![]() |