BG Development


Страници: (3) 1 [2] 3   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> как да изчислим време въведено от потребителя?
jordanElj
Публикувано на: 26-09-2022, 13:43
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 19
Регистриран на: 25.09.22



else връща отначало ако не е въведен правилния месец..."в слънчев летен ден (юни/юли)"

Input Month and Date in format [MM-DD] and then press Enter --->
01-23
Invalid Month!You are supposed to enter June(06) or July(07), try again.


къде се намира този таг?



PMEmail Poster
Top
thrawn
Публикувано на: 26-09-2022, 13:53
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3388
Регистриран на: 17.01.17



Я пробвай, да видиш какво точно става като въведеш грешен месец (ако това което е показано е актуалния код де).

Прикачена картинка (Кликнете на картинката, за да я увеличите!)
Прикачена картинка
PMEmail Poster
Top
jordanElj
Публикувано на: 26-09-2022, 13:57
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 19
Регистриран на: 25.09.22



според условието би трябвало да се изчисли само дневните слънчеви часове...

"В програмата приемаме, че всички въведени часове се отнасят за един и същи ден. Трябва да проверите въведените стойности, така че "датата" да е през юни/юли (месец 6 или 7) и че времето на залез е по-късно от изгрева. За всички други стойности програмата трябва да върне съобщение за грешка и да излезе."
PMEmail Poster
Top
jordanElj
Публикувано на: 26-09-2022, 14:00
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 19
Регистриран на: 25.09.22



[CODE]

това е изхода от else-->

Input Month and Date in format [MM-DD] and then press Enter --->
01-23
Invalid Month!You are supposed to enter June(06) or July(07), try again.
PMEmail Poster
Top
thrawn
Публикувано на: 26-09-2022, 14:59
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3388
Регистриран на: 17.01.17



Така де, семо дето ти не излизаш, след като изведеш съобщението за грешен месец...

А какво ще стане ако се въведе за изгрев 12:00 а за залез 1:00 ? ами ако се въведе за час 32:87?

---
Тагът CODE има отваряща и затваряща част. Кодът се поставя между тях.

[CОDE]Scanner input = new Scanner(System.in);[/CОDE]

Така ще получиш това
CODE
Scanner input = new Scanner(System.in);


Това мнение е било редактирано от thrawn на 26-09-2022, 15:00
PMEmail Poster
Top
jordanElj
Публикувано на: 26-09-2022, 17:01
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 19
Регистриран на: 25.09.22



малко подобрения, сега отговаря на условията



CODE
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/02:22\" 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/22:22\" and then press Enter ---> ");
          int hoursE = input.nextInt();
          int minutesE = input.nextInt();
          input.nextLine();
          
          
          
          double solPanDepth = 1.7;
            double solPanQuantity  = 26;
          
          double solPanArea  = solPanDepth * solPanQuantity;
          double solarRadKW = 166;
          double efficiency = 0.20d;
          double timeE = hoursE - hoursM + (( minutesE /60.0) - (minutesM / 60.0));
          
          double productionKwH  = solPanArea * solarRadKW * efficiency * timeE /1000;
          
          double electrPrice = 0.9;
          
          double productionMoney =  productionKwH * electrPrice;
      
          System.out.printf( "The average number of sun hours in the day is: %.2f hours.\nThe solar panels produce: %.2f KwH.\nThe value is: %.2f lv.", timeE,productionKwH, productionMoney );
          
          input.close();
PMEmail Poster
Top
jordanElj
Публикувано на: 26-09-2022, 17:02
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 19
Регистриран на: 25.09.22



CODE
Input Month and Date in format "MM-DD" and then press Enter --->
07-23
The Month is OK!
Input sunrise time in format "HH:MM/02:22" and then press Enter --->
03:33
Input sunset time in format "HH:MM/22:22" and then press Enter --->
23:33
The average number of sun hours in the day is: 20,00 hours.
The solar panels produce: 29,35 KwH.
The value is: 26,41 lv.
PMEmail Poster
Top
thrawn
Публикувано на: 26-09-2022, 18:48
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3388
Регистриран на: 17.01.17



Все още проверяваш само за месеца, но въпреки това не правиш нищо при невалидни данни (освен да изведеш текстовото съобщение).
PMEmail Poster
Top
jordanElj
Публикувано на: 26-09-2022, 21:38
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 19
Регистриран на: 25.09.22



Какво може да се направи там?
PMEmail Poster
Top
thrawn
Публикувано на: 27-09-2022, 05:06
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3388
Регистриран на: 17.01.17



QUOTE
... програмата трябва да върне съобщение за грешка и да излезе.


Съобщението за грешка го извеждаш, но не излизаш от програмата след като го изведеш. Така че, трябва да излезеш от нея. Предполагам, знаеш как се излиза от функция?

По същия начин трябва да се подходи и при проверка на всички останали стойности. Месеците са в диапазон 1-12, след това проверяваш деня дали е в диапазон 1-29, 30 или 31 (според месеца). В условието нямаш година, така че, за февруари приемаш 29 дни. Часовете са от 0 до 23, а минутите от 0 до 59. Последно проверяваш дали залеза е след изгрева. Като разбира се, съобщенията за грешка които извеждаш са адекватни на грешката.

Има и друг подход. Използваш цикъл в който караш потребителя да въвежда съответните данни отново и отново, докато не ги въведе коректно.

Между другото, затова първо ти искат блок схемат на хартия. Така предварително ще си на ясно с логиката която трябва да реализираш.

Това мнение е било редактирано от thrawn на 27-09-2022, 05:07
PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (3) 1 [2] 3  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0