Březen 06 2011

Základy programování #4 – Cykly

Pokud potřebujeme něco v programu mnohokrát opakovat, použijeme cykly.

Vstupní předpoklady

  • Znalost zápisu kódu v Javě
  • Znalost podmínek
  • Java jako i většina jiných jazyků má mnoho druhů cyklů, můžeme je rozdělit do následujících skupin:

    • Cykly s pevným počtem opakování – Opakuje se přesně tolikrát, kolikrát předem nastavíme
    • Cykly „se závislým“ počtem opakování - Opakuje se dokud platí nějaký výrok
    • Cykly, s podmínkou na začátku – Nejprve testuje platnost výroku, teprve potom provadí úkony, pokuď neplatí výrok, cyklus se neprovede ani jednou
    • Cykly s podmínkou na konci – Nejprve provádí úkon, potom testuje výrok, neplatí li výrok, cyklus se provee právě jednou.

    Cyklus FOR
    Jedná se o cyklus z kategorie cyklů s pevným počtem opakování, zápis je následující:

    for (int i = 1; i <= 50; i++)
    {
    System.out.println("Cislo i je: " + i);
    }

    Cyklus vypíše 50x  Cislo i je: s inkrementující se hodnotou proměnné i.



    Cyklus DO  - WHILE
    Patří do kategorie cyklů s podmínkou na konci, zápis:

    do
    {
    System.out.println("iterace");
    } while (výraz);

    Cyklus bude vypisovat slovo iterace, dokud platí výraz, pokud výraz platit přestane, cyklus vypíše naposledy slovo „iterace“ a ukončí se.

    Cyklus WHILE
    Cyklus s podmínkou na začátku, zápis:

    while (výraz)
    {
    System.out.println("iterace");
    }

    Cyklus se bude opakovat tak dlouho, dokud platí výraz, pokud přestane platit, cyklus se ukončí. Slovo iterace se tedy při stejném výrazu použitém u cyklu WHILE i DO-WHILE vypíše zde o 1x méně.

    Toto by byl základní přehled cyklů v jazyce Java, nyní již máte možnost vaše programy opakovat ve smyčce.

    Úkol:

    • Experimentovat se všemi druhy cyklů a naučit se je používat.

    Únor 26 2011

    Základy programování #3 – Podmínky, proměnné a datové typy

    Dnešní lekce se bude zaobírat problematikou podmínek a proměných v Javě.

    Předpoklady

    • Schopnost založit projekt v NetBeans
    • Zvládnout zapis přikazů. (např. v minulé lekci probíraný println)

    Nejprve se budeme věnovat proměnným. Jak již název napovídá, jedná se o místo v paměti, jehož obsah můžeme měnit i za běhu programu. Proměnou si můžeme označit téměř jakkoliv chceme, ale je vhodné dodržovat zažité konvence, které jsou následující

    • Proměnnou vždy označujeme malým písmenem na začátku, například „auto“
    • Pokuď je proméná složená z více slov, zápis je následující „mojeOsobniAuto“, každé nové slovo tedy začíná velkým písmenem, bez mezery.

    informování kompilátoru o našich proměnných provedeme tzv. deklarací. Abysme mohli deklarovat proměnnou, musíme kompilátoru říci i její datový typ.



    Datový typ
    informuje kompilátor o tom jak velkou část paměti a jakého typu má vyhradit pro naši proměnnou. V Javě se naštěstí narozdíl od některých jazyků nemusíme zaobírat se samotnou alokací paměti pomocí ukazatelů, Java řeší tento problém za nás. Datové typy dělíme na primitivní datové typy a „vlastní typy vytvořené podle třídy“. Druhou skupinou se budeme zaobírat až v objektově orientovaném programování, první nás bude zajímat už teď. Následující tabulku je vhodné si zapamatovat, alespoň přibližně.

    Deklaraci proměnné potom provadíme tímto zápisem:

    int vyska;
     
    double vaha;

    Do deklarované proměnné musíme přiřadit i nějakou hodnotu, tu přiřadíme snadno

    vaha = 72;
     
    vyska = 189.74;

    Podmínka je způsob jak zapsat do programu „rozhodování“. Během zpracovávání podmínky se rozhoduje, jestli je zadaný výrok pravdivý. Pokud ano, splníme jednu větev, pokud ne tak druhou. Java má narozdíl od některých programovacích jazyků vícero možností jak zapsat podmínku. Nejsnažśí zápis je tento:

    if(výraz) {
           System.out.println("Tohle se vypise, pokud je vyraz pravdivy");
    } else {
           System.out.println("Tohle se vypise, pokud je vyraz NEpravdivy");
    }

    Podmínka samozřejmně nemusí mít obě větve, následující zapis vyhodnotí výraz, pokud je výraz pravdivý, vypíše text, pokud není, nevypíše nic a pokračuje v kódu za podmínkou.

    if(výraz) {
    System.out.println("Tohle se vypise, pokud je vyraz pravdivy");
    }

    Za slovo výraz můžeme dosadit výrazy v následujícím (nebo podobném tvaru):

    x1 == x2
    vyska > vaha
    vyska <= vaha

    Příklad:

    int x1 = 20;
    int x2 = 25;
    if(x1 < x2) {
          System.out.println("x2 je vetsi nez x1");
    } else {
          System.out.println("x1 je vetsi nez x2");
    }

    Výrazy v podmínce můžeme i spojovat logickými operátory

    || pro OR, tzn. pro kladné vyhodnocení podmínky musí být splněn alespoň jeden z výrazů

    && pro AND tzn. pro kladné vyhodnocení podmínky musí být splněny všechny výrazy.

    Java dále umožňuje zapsat i „přepínač“, který nám nahrazuje zbytečně velké množství podmínek.

    switch(cislo) {
       case 1: System.out.println("1"); break;
       case 2: System.out.println("2"); break;
       case 3: System.out.println("3"); break;
       case 4: System.out.println("4"); break;
       case 5: System.out.println("5"); break;
       case 6: System.out.println("6"); break;
       case 7: System.out.println("7"); break;
       default: System.out.println("jine cislo");
    }

    Do hlavičky umístníme proměnnou o jehož obsahu se rozhoduje, každý case obsahuje jednu z možných variant (v tomto příkladě je v proměnné cislo uloženo celociferné číslo, jehož hodnoty jsou vypsány za příkazem case, pokud proměnná neobsahuje ani jedno z čísel, vypíše se hodnota, která je zadaná u příklazu default. Za každým příklazem (kromě default) musí být navíc ještě pŕíkaz break, bez něj by po nalezení konkrétní hodnoty stejně bylo pokračováno dál.

    Java má mnoho způsobů jak zapsat podmínku, pro začátek si vystačíme se zde zmíněnými, naším cílem je poskytnout hrubý obraz o programování, ne o specifikacích konkrétního jazyka.

    Úkol

    • Procvičit zápis a použití podmínek a „switche“.

    Únor 25 2011

    Základy programování #2 – Hello World

    V dnešním dílu našeho seriálu si vytvořime náš první spustitelný program, bude se jednat o jednoduchý program vypisující slovní spojení „Ahoj světe“.

    Předpoklady

    • Nainstalované vývojové prostředí NetBeans a Java Developer Kit (JDK)

    Nejprve si zapněte vývojové prostředí, nechte jej naběhnout, až se dostanete k této obrazovce:

    Klikněte na liště na tuto ikonku, tím založíte NetBeans projekt.

    (Zde se na chvíli zastavíme a vysvětlíme si strukturu Java programu, Java projekt se skláda z:

    1. Soubory *.java, jedná se o tzv. Třídy, může jich být i více v jednom souboru, tvoří jakousi „formu programu“.
    2. Třídy obsahují Metody (pozor nezaměňovat s pojmem Funkce užívaným například v C, princip je stejný, ale v objektově orientovaném programování se užíva pojmu metoda). Do metod píšeme to, co má program vykonávat.
    3. Projekt je balíček (package) třid, které „patří k sobě“.  Můžeme se obejít i bez něj, například pokud používáme jeden soubor pro všechny třídy, ale obecně se to nedoporučuje a je lepší použít balíček (projekt). Každé vývojové prostředí má svou strukturu balíčku, nejsou bohůžel vzájemně kompatibilní, takže projekt z NetBeans v Eclipse neotevřete.

    Na další obrazovce vybereme z levého menu „Java“ a z pravého „Java Application“, klikneme na tlačítko Next, následující okno vyplníme podle obrázku: (Projekt location si nasměrujte kam je vám libo, třeba do C:\JavaTutorial\Lekce01, je to na vás)

    Tím jsme vytvořili projekt v Java SE, který již obsahuje základní třídu (Main()) s hlavní metodou, metodou main().

    (Zde se opět na chvíli zastavíme, existují jístá zažitá pravidla, kterých by se měl vývojář  v jazyce Java držet, pokud píšeme o metodách (i obecně v textu), vždy používáme zápis se závorkami na konci např. vylezZAuta();



    Kompilátor javy je CASE SENSITIVE, to znamená, že rozeznává velká a malá písmena. Je tedy rozdíl, pokud napíšeme vylezZAuta() a VylezZAuta(), kompilátor by tyto dva zápisy povaźoval každý za samostatnou metodu.
    Obecně ustálený zvyk je následující:

    Metody zapisujeme malým písmenem na začátku vylez()
    Třídy naopak velkým písmenem Auto()
    Proměnné píšeme jako dveře
    Konstanty jako SKLO.

    Vytvořenou třidu si tedy otevřeme (pokud se neotevřela sama), proklikáme se k ní podle následujícího obrázku

    Soubor by měl obsahovat následující zápis (to co je zapsané mezi znaky /*  */ nebo za znaky // může být jiné, jsou to pouze komentáře, poznámky vyvojáře, které kompilátor ignoruje) .

    V kódu zde jsem komentáře vymazal, aby nám zbytečně nezabírali místo a nemátli nás.

    package ahojsvete;
     
    public class Main {
         public static void main(String[] args) {
     
         }
    }

    Na prvním řádku vidíte název balíčku, v kterém jsou obsaženy vaše soubory. Budete-li přidávat další NetBeans automaticky do každého přidá tento řádek.
    Na dalším řádku vidíte hlavičku Třídy, která je ukončena poslední složenou závorkou, zápis je odsazen od kraje, abyste viděli, která závorka uzavírá kterou třídu nebo metodu.
    Dalším řádkem je hlavička metody, zde se konkrétně jedná o metodu hlavní main(), jejíž hlavičku vždy NetBeans vygeneruje za nás. Metoda main() se nazývá hlavní, protože je její obsah zpracováván jako první hned po spuštění programu. Ze začátku našeho kurzu budeme vše vyplňovat pouze a jenom do této metody main(), až později se naučíme tvořit vlastní metody.

    Klikněte do těla metody main() a napište tam následující řádek:

    System.out.println("Ahoj světe");

    K zápisu můžete využít následující „NetBeans zkratku“, napište „sout“ a stiskněte TAB.

    Výsledek by měl vypadat takhle:

    package ahojsvete;
     
    public class Main {
         public static void main(String[] args) {
             System.out.println("Ahoj světe");
         }
    }

    Pokuď jste se dostali až sem, mám pro vás příjemnou zprávu, nyní jste napsali váš první zdrojový kód k programu.
    Nezbývá než pokusit se jej přeložit (zpracovat kompilátorem), ten spustíme klávesou F6 (popřípadě spouštíme-li třídu, kterou máme otevřenou tak Shift+F6, nebo tlačítkem se zeleným trojúhelníkem na liště.

    Pokud jsme vše zapsali správně, vypíše se nám dole v konzoli náš zadaný text, pokud ano, gratuluji, zvládli jste neprogramovat váši první aplikaci, pokud ne, vypíše vám NetBeans chybu a musíte si zápis programu opravit.

    Tímto bych druhý díl seriálu ukončil, příště se podíváme na tvorbu podmínek.
    Těším se na vaše komentáře.

    • Úkol:
      Experimentovat s výpisy v programu. Vypsat si i jiné věty, popřípadě jich vypsat více.

    Tag Cloud