Seminář 1


Základy jazyka Java

Materiály

Vývojová prostředí

IntelliJ IDEA, Eclipse, Netbeans, JBuilder, JDeveloper

Syntaxe

Primitivní datové typy

Konvence

            
                // Názvy proměnných začínají malým písmenem a každé další slovo velkým.
                int celeCislo = 10;

                // Konstanty jsou psány s velkými písmeny a slova se oddělují podtržítkem _
                final int CISLO_N = 123;

                // Pro názvy metod platí stejné konvence jako pro proměnné.
                int faktorial(int n) { ... }

                // Názvy tříd začínají velkým písmenem, stejně tak i každé další slovo.
                class Clovek { ... }
            
        

Základní konstrukce

Větvení programu

            
                if (<podminka>) {
                    ...
                } else {
                    ...
                }

                // <podminka> musí být typu boolean.
                int a = 2;

                if (a == 2) {
                    System.out.println("Proměnná a je 2");
                }

                // Pokud je v bloku pouze jen výraz, pak nemusíme psát { }
                if (a == 2)
                    System.out.println("Proměnná a je 2");


                // Chyba
                if (a) { ... }

                // Konstrukce switch pro čísla.
                switch (a) {
                    case 0:
                        System.out.println("Proměnná a je 0");
                        break;

                    ...

                    default:
                        System.out.println("Proměnná a je 0");
                        break;
                }

                // Konstrukce switch pro řetězce.
                String mesic = "leden";

                switch (mesic) {
                    case "leden":
                        System.out.println("January");
                        break;

                    ...

                    default:
                        System.out.println("Unknown month");
                        break;
                }

                // Ternární operátor
                a = mesic == "leden" ? 1 : 0;
            
        

Cykly

V javě jsou dostupné cykly for, while, dowhile.

            
                for (int i = 0; i < 10; i++) {
                    System.out.println("Číslo  i = " + i);
                }

                int i = 0;
                while (i < 10) {
                    System.out.println("Číslo  i = " + i);
                    i++;
                }

                int i = 0;
                do {
                    System.out.println("Číslo  i = " + i);
                    i++;
                } while (i < 10);
            
        

Program Hello World

Stejně jako jazyk C má i Java funkci main. Tato funkce je spustěna jako první. V příkladu níže je definovaná třída HelloWorld. Tato třída se musí nacházet v souboru HelloWorld.java. Třída se nalézá v balíčku cz.upol.zp3jv.lecture1, což opovídá adresáři cz/upol/zp3jv/lecture1. Překlad se provadí programem javac. Příklad použití javac HelloWorld.java. Vygerovat adresářovou strukturu lze pomocí javac -d [složka] HelloWorld.java. Program lze pak spustit příkazem java cz.upol.zp3jv.lecture1.HelloWorld. Většinu těchto kroků za Vás udělá vývojové prostředí.

            
                package cz.upol.zp3jv.lecture1;

                public class HelloWorld {
                    public static void main(String[] args) {
                        System.out.println("Hello World!");
                    }
                }
            
        

Úkoly

  1. Naprogramujte v Javě program, který vypíše na obrazovku trojúhelník o zadané velikosti n pomocí znaku "*". Velikost bude zadána pomocí lokální proměnné.

    Příklad výstupu

        *****
        *  *
        * *
        **
        *
        
  2. Naprogramujte v Javě program, který po zadání mzdy vypočítá a na obrazovku vypíše výši odpovídající daně. Daň bude zadána pomocí lokální promenné.

    Výpočet

    Pro účel této úlohy uvažujme progresivní zdanění ve výši 10 % pro příjem do 10000, 20 % pro příjem od 10000 do 20000 a 30 % pro příjem nad 20000. Například, pokud máme hrubou mzdu 24000, bude se prvních 10000 danit 10 % (tj. daň z této části mzdy je 1000), dalších 10000 se daní 20 % (daň z této části je 2000) a zbývající 4000 se daní 30 % (daň je 1200). Celkovou výši daně pak vypočítáme jako součet jednotlivých "částečných" daní (tj. celková daň 4200).

    Příklad výstupu

        Zadaná mzda: 12000
        Odpovidající daň je: 1400
        Zadaná mzda: 33353
        Odpovidající daň je: 7005.9
        
  3. Naprogramujte v Javě program, který pro zadané pole vypíše nejmenší a největší číslo.

    Příklad výstupu

        Příklad výstupu:
        pole = [-2, 0, 5, 7, 8, 9, 9, 2, 0, 1]
    
        maximum:  9
        minimum: -2
        
  4. Napište program v jazyce Java, který vypíše na obrazovku všechna Twin prime menší než 100. Twin prime je dvojice prvočísel které se od sebe liší o 2.

    Příklad výstupu

            [3, 5], [5, 7], [11, 13], [17, 19], [29, 31], [41, 43], [59, 61], [71, 73]
        
Úkoly posílejte na email r.vyjidacek@gmail.com s předmětem ZP3JV01. Termín odevzdání do půlnoci 4. 10. 2017. Odevzdávejte pouze zdrojové kódy v archivu zip.