Премини към съдържанието

Препоръчан отговор


Напишете програма, която изписва на конзолата дали дадено положително число се дели на 3 или на 5 без остатък.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

преди 5 часа, Tonny Petkova написа:

Напишете програма, която изписва на конзолата дали дадено положително число се дели на 3 или на 5 без остатък.

Здравейте !

Бихте ли приложили разработения от Вас код до момента ? 

А, и още нещо - Ванката днеска на Шумен ли е или пак е тренирал вдигане на 4х100 на маса с неговите :beer: ?

Редактирано от soundtracker (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 12 часа, soundtracker написа:

Здравейте !

Бихте ли приложили разработения от Вас код до момента ? 

А, и още нещо - Ванката днеска на Шумен ли е или пак е тренирал вдигане на 4х100 на маса с неговите :beer: ?

Решението ми беше никакво и не си изпратих домашното.

Относно Ванката, не се е прибирал човекът и не знаем къде е. Тежка седмица, си мисля аз. :D

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 39 минути, Tonny Petkova написа:

Решението ми беше никакво и не си изпратих домашното.

Относно Ванката, не се е прибирал човекът и не знаем къде е. Тежка седмица, си мисля аз. :D

Да, питам и аз все едно не знам какво става по 8-ми декември ...

Добре, въпреки, че малко се оттърва влака (явно), ще приложа едно решение, което дава отговора. Иска ми се да видя и Ваш вариант обаче - в случай, че това Ви е трябвало като задание по специалност с която всъщност след това ще започнете работа, силно Ви препоръчвам да го направите. Ако пък програмирането Ви се води "онова нещо, дето просто е трябвало да запълнят 3-4 часа в седмицата", явно приоритета му е нулев ...

import java.util.Scanner;
public class Divider {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        sc.close();
        System.out.println(String.format("Is %d divisible by 3 and 5 : %s\n", input, Boolean.toString(input%3==0 && input%5==0)));
    }
}

P.S. Тъй като съм почти убеден, че това задание е нечие "професорско"/"доцентско"/"асистентско" задание, ще бъде ли проблем да споделите поне на кой университет правим умствените упражнения - като гледам тая Java, имам усещането за ТУ, но все пак да видим :D .

Поздрави !  

Редактирано от soundtracker (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 13 минути, soundtracker написа:

Да, питам и аз все едно не знам какво става по 8-ми декември ...

Добре, въпреки, че малко се оттърва влака (явно), ще приложа едно решение, което дава отговора. Иска ми се да видя и Ваш вариант обаче - в случай, че това Ви е трябвало като задание по специалност с която всъщност след това ще започнете работа, силно Ви препоръчвам да го направите. Ако пък програмирането Ви се води "онова нещо, дето просто е трябвало да запълнят 3-4 часа в седмицата", явно приоритета му е нулев ...


import java.util.Scanner;
public class Divider {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        sc.close();
        System.out.println(String.format("Is %d divisible by 3 and 5 : %s\n", input, Boolean.toString(input%3==0 && input%5==0)));
    }
}

P.S. Тъй като съм почти убеден, че това задание е нечие "професорско"/"доцентско"/"асистентско" задание, ще бъде ли проблем да споделите поне на кой университет правим умствените упражнения - като гледам тая Java, имам усещането за ТУ, но все пак да видим :D .

Поздрави !  

Не става въпрос за университет, а за курс по програмиране - Телерик. :D  И аз мога да го направя по този начин, но се иска със switch-case конструкцията. 


Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 11 минути, Tonny Petkova написа:

Не става въпрос за университет, а за курс по програмиране - Телерик. :D  И аз мога да го направя по този начин, но се иска със switch-case конструкцията. 

Dejavu ... 

В тази тема ми искат същия безумен подход за решаване на задача с булеви параметри и някакви маймуни. Явно става дума за един и същ курс/преподавател/запитващ - в случая това не ме вълнува.

Но се запитвам ако това е реално така, що за подход е да Ви обучават на грешно алгоритмично конструиране на решенията за даден проблем ? 

Без да се заяждам, нека да оценим самата задача:

1) Иска се написването на алгоритъм, който при подадено цяло число, да проверява дали се дели на 3 и на 5.

2) Проверките за целочислено делене са чрез използването на оператора "Остатък от целочислено делене" - т.нар. оператор модул (%).

3) Операцията модул има 2 параметъра - числото за проверка (n) и число за делене (p). Резултата от тази операция е число в интервала [-p+1, p-1] (в зависимост от знака пред n).

4) Ако резултата от модулната операция е 0, то числото n се дели на p без остатък.

В цялата тази логическа поредица, стъпките са изцяло математически операции, които произвеждат true/false резултати

За разлика от цитираната тема обаче, тук поне типовете са числови. И switch може да работи (макар и при абсолютно дебилно и безпочвено използване).

Горния код ще се трансформира до следното:

import java.util.Scanner;
public class Divider {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        sc.close();
        int modulusRemainerThree = input%3;
        switch (modulusRemainerThree) {
            case 0: 
                System.out.println(String.format("Is %d divisible by 3 and 5 : %s\n", input, Boolean.toString(input%5==0)));
                break;
            default: System.out.println(String.format("Is %d divisible by 3 and 5 : false\n", input));
                break;
        }
    }
}

Или ако искаме тотално да докараме сърдечен удар на колегите-програмисти:

import java.util.Scanner;
public class Divider {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        sc.close();
        int modulusRemainerThree = input%3;
        switch (modulusRemainerThree) {
            case 0: {
                int modulusRemainerFive = input%5;
                switch(modulusRemainerFive) {
                    case 0: 
                        System.out.println(String.format("Is %d divisible by 3 and 5 : true\n", input));
                        break;
                    default: 
                        System.out.println(String.format("Is %d divisible by 3 and 5 : false\n", input));
                        break;
                }
                break;
            } 
            default: 
                System.out.println(String.format("Is %d divisible by 3 and 5 : false\n", input));
                break;
        }
    }
}

Оставям на Вас анализа на горните две "творения" и защо смятам, че в момента това, на което Ви учат ще го изхвърлите още първия ден, като дойдете в някой проект.

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

Поздрави !

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 13 минути, soundtracker написа:

Dejavu ... 

В тази тема ми искат същия безумен подход за решаване на задача с булеви параметри и някакви маймуни. Явно става дума за един и същ курс/преподавател/запитващ - в случая това не ме вълнува.

Но се запитвам ако това е реално така, що за подход е да Ви обучават на грешно алгоритмично конструиране на решенията за даден проблем ? 

Без да се заяждам, нека да оценим самата задача:

1) Иска се написването на алгоритъм, който при подадено цяло число, да проверява дали се дели на 3 и на 5.

2) Проверките за целочислено делене са чрез използването на оператора "Остатък от целочислено делене" - т.нар. оператор модул (%).

3) Операцията модул има 2 параметъра - числото за проверка (n) и число за делене (p). Резултата от тази операция е число в интервала [-p+1, p-1] (в зависимост от знака пред n).

4) Ако резултата от модулната операция е 0, то числото n се дели на p без остатък.

В цялата тази логическа поредица, стъпките са изцяло математически операции, които произвеждат true/false резултати

За разлика от цитираната тема обаче, тук поне типовете са числови. И switch може да работи (макар и при абсолютно дебилно и безпочвено използване).

Горния код ще се трансформира до следното:


import java.util.Scanner;
public class Divider {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        sc.close();
        int modulusRemainerThree = input%3;
        switch (modulusRemainerThree) {
            case 0: 
                System.out.println(String.format("Is %d divisible by 3 and 5 : %s\n", input, Boolean.toString(input%5==0)));
                break;
            default: System.out.println(String.format("Is %d divisible by 3 and 5 : false\n", input));
                break;
        }
    }
}

Или ако искаме тотално да докараме сърдечен удар на колегите-програмисти:


import java.util.Scanner;
public class Divider {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        sc.close();
        int modulusRemainerThree = input%3;
        switch (modulusRemainerThree) {
            case 0: {
                int modulusRemainerFive = input%5;
                switch(modulusRemainerFive) {
                    case 0: 
                        System.out.println(String.format("Is %d divisible by 3 and 5 : true\n", input));
                        break;
                    default: 
                        System.out.println(String.format("Is %d divisible by 3 and 5 : false\n", input));
                        break;
                }
                break;
            } 
            default: 
                System.out.println(String.format("Is %d divisible by 3 and 5 : false\n", input));
                break;
        }
    }
}

Оставям на Вас анализа на горните две "творения" и защо смятам, че в момента това, на което Ви учат ще го изхвърлите още първия ден, като дойдете в някой проект.

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

Поздрави !

 

Разбирам те напълно.. С тая конструкция switch-case се удължава кодът и е толкова.. ми не знам, излишно писане се получава. Аз го бях измислила, но по друг начин без тва switch-case, обаче после ми правят забележка, че трябва да са неща, от урока, на когото сме.. не знам прост..

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 12 минути, Tonny Petkova написа:

Разбирам те напълно.. С тая конструкция switch-case се удължава кодът и е толкова.. ми не знам, излишно писане се получава. Аз го бях измислила, но по друг начин без тва switch-case, обаче после ми правят забележка, че трябва да са неща, от урока, на когото сме.. не знам прост..

Т.е. това е проблем на самите задачи. Недоизмислени ама грам. 

Добре, нека започнем от следното - кога изобщо има смисъл да използваме switch:

1) Самия switch е абсолютно еквивалентен на if-elseif-...-else chain-овете. Т.е. дали ще имате switch или много if-elseif-else логики е все едно.

2) Break e ключова дума за напускане на switch statement-а. Ако се изпусне, се получава "пропадане" .

3) Логически, switch операция се ползва основно върху Integer/целочислени типове, enum-и и String-ове. Общото между тях е, че типовете им не са строго изброими (за разлика от Boolean - на ниво Java, Boolean няма как да има други стойности освен true или false) , не са податливи на информационна грешка (като Double/Float) и типовете са сравними по стойност (Само String и Enum правят изключение, но String-а така или иначе почти се държи като примитивен с оглед на String Pool-а, докато Enum-ите са затворени типове с ограничен набор единично-създадени стойности). В общи линии, сравняването става все едно се използва оператора "==" - това обяснява защо обекти от разни класове не могат да са в switch-а.

Кога има смисъл да се ползва Switch:

1) Когато искаме по-чист запис на логика с един вход и много възможни изходи, в зависимост от текущите данни.

2) Когато имаме композиция от логика, която може да се възползва от логиката за "пропадане" - тук фактически отново може да се ползва if-else-if-elseif логика, но е по-объркваща.

Един пример за това да е напише код, който по ден от седмицата да определи да е почивен или не - switch-а ще направи case клаузи за всеки ден, подредени от понеделник до петък и само за петък ще трябва да се изведе, че е работен и да се сложи break. Така логиката за всички работни ще е само в последния и flow-а на програмата ще пропадне до там.

3) Когато искаме да разделим определени обработки (сегрегиране) на програмната логика, които се изпълняват само при определени стойности на данните - т.е. получаваме число и само за 2 и 12, програмата трябва да направи нещо по-различно. В останалите случай (default), кода ще продължи нормално. Същия ефект се получава и с един if-else.

В реалния свят, switch се използва рядко, като най-често се прави в случаи 1) и 2) (парадоксално, но 2) даже е по-честия вариант).

Та толкова в общи линии.

Дано Ви е полезно това.

Поздрави !

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 48 минути, soundtracker написа:

Т.е. това е проблем на самите задачи. Недоизмислени ама грам. 

Добре, нека започнем от следното - кога изобщо има смисъл да използваме switch:

1) Самия switch е абсолютно еквивалентен на if-elseif-...-else chain-овете. Т.е. дали ще имате switch или много if-elseif-else логики е все едно.

2) Break e ключова дума за напускане на switch statement-а. Ако се изпусне, се получава "пропадане" .

3) Логически, switch операция се ползва основно върху Integer/целочислени типове, enum-и и String-ове. Общото между тях е, че типовете им не са строго изброими (за разлика от Boolean - на ниво Java, Boolean няма как да има други стойности освен true или false) , не са податливи на информационна грешка (като Double/Float) и типовете са сравними по стойност (Само String и Enum правят изключение, но String-а така или иначе почти се държи като примитивен с оглед на String Pool-а, докато Enum-ите са затворени типове с ограничен набор единично-създадени стойности). В общи линии, сравняването става все едно се използва оператора "==" - това обяснява защо обекти от разни класове не могат да са в switch-а.

Кога има смисъл да се ползва Switch:

1) Когато искаме по-чист запис на логика с един вход и много възможни изходи, в зависимост от текущите данни.

2) Когато имаме композиция от логика, която може да се възползва от логиката за "пропадане" - тук фактически отново може да се ползва if-else-if-elseif логика, но е по-объркваща.

Един пример за това да е напише код, който по ден от седмицата да определи да е почивен или не - switch-а ще направи case клаузи за всеки ден, подредени от понеделник до петък и само за петък ще трябва да се изведе, че е работен и да се сложи break. Така логиката за всички работни ще е само в последния и flow-а на програмата ще пропадне до там.

3) Когато искаме да разделим определени обработки (сегрегиране) на програмната логика, които се изпълняват само при определени стойности на данните - т.е. получаваме число и само за 2 и 12, програмата трябва да направи нещо по-различно. В останалите случай (default), кода ще продължи нормално. Същия ефект се получава и с един if-else.

В реалния свят, switch се използва рядко, като най-често се прави в случаи 1) и 2) (парадоксално, но 2) даже е по-честия вариант).

Та толкова в общи линии.

Дано Ви е полезно това.

Поздрави !

Както винаги изчерпателен :D Човек много може да научи от теб. Толкова обстоятелствено, подредено и смислено е написано всичко, как да не си ми бил полезен. Със сигурност и не само на мен. 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

  • Разглеждащи това в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

  • Горещи теми в момента

  • Подобни теми

    • от Kristian Krastev
      Здравейте,написал съм едно текстово поле и една текстова област, 
      направил съм бутон "Търси",искам неговият ActionListener да взима текста от текстовото поле
      и да го търси в текстова област,или по някакъв начин да го отбелязва?
      Благодаря предварително!

    • от Kristian Krastev
      Здравейте,
      искам да попитам ако имам това:
      JLabel time = new JLabel();
      JLabel time1 = new JLabel();
              Thread clock = new Thread() {
                  public void run() {
                      for (;;) {
                      Date date = new Date();
                      SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
                      
                      time.setText(format.format(date));
                      time1.setText(format.format(date));
                      try {
                          sleep(1000);
                      } catch (InterruptedException e) {
                          e.printStackTrace();
                      }
                  }
              }
          };
          clock.start();
       
      как да направя на time и time1 int едното минус другото, за да ми даде разликата примерно ако time е 14:00 а time1 е 14:01 
      да ми изведе времетраене 00:01 една минута.
       
      time ще е когато се натисне един бутон а time1 когато се натисне друг бутон,и
      целта е да даде разликата в времето на натискането на бутоните.
      Благодаря предварително!
    • от Kristian Krastev
      Здравейте,
      искам да попитам ако една JTextArea чете от три файла:
      файл "A" файл "B" и файл "C"
      Имали как JTextArea примерно като прочете реда от файл "A"  реда да бъде с червен цвят,
      реда от файл "B" да бъде със син цвят а реда от файл "C" да бъде с зелен цвят.
    • от Kristian Krastev
      ако int = 0;
      и после му зададеш да дава по едно число отгоре след натискане на бутон с i++;
      как мога да запазя последното дадено число от i след рестарт на програмата?
      Примерно i++; System.out.println(i); натиснал съм 50 пъти бутона и стигнало до 50 но след рестарт пак ще започне
      от 0.
      Въпроса ми е как да продължи от 50? 
    • от Магдаленаг
      Please guys if u have time to spare I'd be extremely and beyond greatful
      Да се разработи уеб сайт по тема музикални изпълнители. 
      Сайтът трябва да съдържа поне 4 страници, всяка от които да отговаря на:
      Задължително трябва да се предвиди версия за ниска разделителна способност на екрана (800 x 600 пиксела) и реализирана с CSS; за този случай може да се използва свободно избрана и 
      независима схема за разположение, като единственото изискване е за запазване на 
      използваемостта.
      Сайтът трябва да включва всички технологии - HTML/XHTML, 
      CSS, DOM, JavaScript.
      Всички страници трябва да се валидират по HTML5. Допустимо е да има минимален брой 
      грешки от валидацията.
      Сайтът трябва да бъде придружен от документация, която да включва:
      1. Заглавна страница.
      2. Задание с посочените варианти:
      /списък на елементите :
      1. Меню, съдържащо rollover бутони, реализирано чрез JavaScript. При посочване на бутон да 
      се променят неговите цвят на фона и цвят на текста. Използването на изображения за 
      бутоните е по желание на студента.
      3. Номериран списък с римски цифри и форматиран със CSS, така че всички нечетни редове 
      да бъдат в курсив (наклонени).
      4. Неномериран списък, използващ собствено изображение подредба на елементите по 
      хоризонтал (т.е. елементите да не са на нов ред).
      6. Формуляр, съдържащ текстови полета за въвеждане на собствено име, фамилно име, email, 
      голямо поле за съобщение, избор чрез радио бутони на приоритета на съобщението –
      „нисък”, „среден” или „висок” и два бутона – „Изпрати” и „Изчисти”. Чрез CSS на 
      текстовите полета и бутоните да се зададе цвят на фона и цвят на текста./
      3. Използваните HTML и CSS код, с които е реализирана зададената схема на 
      разположение:
                            header
                        навигация
                Осн                              За
      съдържание               контакти
      4. Използваният или собствен JavaScript код. 
      5. Резултати от валидацията на отделните страници.
      6. Списък на източниците, от където е заимстван готов код, текст или снимки.
  • Дарение

×

Информация

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