Gyakorlati alapok

Számok oszthatósága

 

Folytatjuk tovább az előző fejezetben bevezetett logikai döntéshalmazunkat. Ebben a fejezetben alapszinten számok más számokkal való oszthatóságát vizsgáljuk meg és ehhez újfent logikai döntésekre van szükségünk.

 

1. feladat: találjuk meg meg azon számokat, amelyek oszthatók 2-vel 1 és 50 között. Akik alaposan áttanulmányozták az előző fejezetet, már mosolyognak ezen, hiszen ezt a futtatható Java-kódot már megírtuk páros számok 1 és 50 között néven:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 


public class Main {
    public static void main(String[] args) {
        for (int i = 1; i < 50; i++){
            if (i % 2 == 0){
            System.out.print(i + " ");
            }
        }
    }
}

 

Végeredmény:

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48

 

Ha megértettük a kód belső működését, akkor nem lesz nehéz megoldanunk a 2. feladatot: találjuk meg azon számokat, amelyek oszthatók 3-mal 1 és 50 között:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 


public class Main {
    public static void main(String[] args) {
        for (int i = 1; i < 50; i++){
            if (i % 3 == 0){
            System.out.print(i + " ");
            }
        }
    }
}

 

Végeredmény:

3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48

 

Láthatjuk, hogy voltaképpen csak a feltételben foglalt számértéket kellett átállítanunk:

 

if (i % 3 == 0)

 

Most kissé nehezítsük a feltételmegadást!

 

3. feladat: találjuk meg azon számokat, amelyek oszthatók 2-vel ÉS 3-mal 1 és 50 között. Ekkor a 2 db feltételnek egyszerre kell teljesülnie:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 


public class Main {
    public static void main(String[] args) {
        for (int i = 1; i < 50; i++){
            if (i % 3 == 0 && i %  2 == 0){
            System.out.print(i + " ");
            }
        }
    }
}

 

Végeredmény:

6 12 18 24 30 36 42 48

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Az ÉS logikai műveletének jele &&, amint azt olvashattuk a Logikai operátorok című fejezetben.

 

4. feladat: találjuk meg azon számokat, amelyek oszthatók 2-vel VAGY 3-mal 1 és 50 között. Ekkor a 2 feltételnek NEM KELL egyszerre kell teljesülnie, csakis az egyiknek:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 


public class Main {
    public static void main(String[] args) {
        for (int i = 1; i < 50; i++){
            if (i % 3 == 0 || i %  2 == 0){
            System.out.print(i + " ");
            }
        }
    }
}

 

Végeredmény:

2 3 4 6 8 9 10 12 14 15 16 18 20 21 22 24 26 27 28 30 32 33 34 36 38 39 40 42 44 45 46 48

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

A VAGY logikai műveletének jele ||, amint azt olvashattuk a Logikai operátorok című fejezetben.

 

A fenti kódban észrevehetjük, hogy a VAGY művelete sokkal "lazább", kötetlenebb az ÉS műveletnél, ezért jóval több végeredményt szolgáltat.

 

Most pedig az 5. feladatban szigorkodjunk tovább a feltételek megadásának szűkítésével!

 

5. feladat: találjuk meg 1 és 100 között azon számokat, amelyek oszthatók 5-tel ÉS 10-zel ÉS 50 ÉS 60 között vannak (beleértve az 50 ÉS 60-at is). Ekkor a 4 db feltételnek egyszerre kell teljesülnie:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 


public class Main {
    public static void main(String[] args) {
        for (int i = 1; i < 100; i++){
            if (i % 5 == 0 && i % 10 == 0 && i <= 60 && i >= 50){
            System.out.print(i + " ");
            }
        }
    }
}

 

Végeredmény:

50 60

 

A kód legproblematikusabb része a feltételmegadás. Fejtsük meg visszafelé a feltételeket, először az 50 és 60 közötti feltételmegadást tisztázzuk:

 

i <= 60 && i >= 50

 

Itt 2 tipikus relációs operátorral szembesülünk, ezek a nagyobb egyenlő (i >= 50) és kisebb egyenlő (i <= 60) operátorok. A feltételmegadás több részével találkoztunk, csak más számokkal:

 

i % 5 == 0 && i % 10 == 0

 

A feltételmegadás tehát bár többszörös, de valójában nem oly bonyolult:

 

i % 5 == 0 && i % 10 == 0 && i <= 60 && i >= 50

 

A végeredmény egyértelműen mutatja a feltételmegadás szigorú vonását: a követelményeknek csak két szám felel meg:

 

Végeredmény:

50 60