Styly programování

Neprocedurální (sekvenční, "chaotický styl")

Program postupuje od startu ke konci. Postupně vykonává jednotlivé příkazy. Některé části programu mohou být vykonávány vícekrát (cykly). Na základě vyhodnocení podmínky může být program větven. Je-li program větven (vlastně i v cyklu), mohou být použity skoky na jiné místo programu. Hlavně skoky spolu s délkou kódu mohou zapříčinit značnou nepřehlednost programu. Tímto způsobem se dnes nedělají rozsáhlé programy, pouze jednoduché, ve specifických zařízeních nebo specifických omezených jazycích. Typickými představiteli programovacího jazyka využívajícího tento styl byl Fortran a Basic (neplést s Visual Basic - to je něco jiného). Pro přehlednost byly číslovány řádky kódu.

Procedurální (strukturované) programování

Některé části programu se opakují často. Nebo jsou obecné operace, které se využívají často (např. zaokrouhlení). Je proto výhodné tuto část programu vytvořit, umístit mimo (před, za) hlavní část programu a opakující se kód volat z kódu hlavního kdykoliv je potřeba. Často se opakující části se "zabalí" do procedury nebo funkce (funkce vrací hodnotu). Při volání se jí předají tzv. parametry. Např. VyberNahodneCislo(10) - funkce vybere náhodné číslo z 10, vrátí jej. Při dalším volání ji můžeme zavolat jako VyberNahodneCislo(30) - funkce vypbere ze 30, 30 je tzv. parametr. V příkladu výsledek rovnou přiřadím do deklarované proměnné.

int a = VyberNahodneCislo(30);

Procedurální programování umožnilo program rozdělit do funkčních celků (procedury a funkce - podrogramy), zpřehlednit a zkrátit, strukturovat. Nazývá se tedy také strukturované programování. Typickými programovacími jazyky pro tento styl jsou jazyk C a Pascal. Uvedený způsob programování se používá dodnes. Zejména pro jednoduché programy, pro jeho jednoduchost a přehlednost.

Objektové programování

Program se skládá z částí, kterým se říká objekty. Objekty mohou v sobě zahrnovat další objekty. Program po strartu nemá pevný řád, které všechny příkazy proběhnou a kde skončí. Principem objektového programování je posílání zpráv mezi těmito objekty a reakce na tyto zprávy. Zprávy mohou být zasílány (i jinak) při vzniku nějaké události - např. kliknutí myši.

Program po startu běží (resp. čeká) na vznik událostí. Při vzniku nějaké události nad jedním objektem (např. kliknutí myší na objekt tlačítko) tento objekt vysílá zprávu, kterou může jiný objekt přijmout a reagovat na ni. Vlastní běh programu pak tedy spočívá ve zpracování kódu, který píšeme jako reakci na jednotlivé události. Samozřejmě, že chci-li napsat program, je situace složitější, při psaní programu vytváříme nové třídy, vlastnosti a metody tříd, ze tříd vytváříme jejich konkrétní instance - objekty, deklarujeme proměnné, přiřazujeme jim hodnoty a mnoho dalších činností.

Proto, aby se mohl objekt chovat tak, jak je popsáno výše, potřebuje si uchovávat nějaké stavy, něco si "pamatovat" a také musí umět něco vykonat. Stavy (hodnoty) si uchová v proměnných. Aby objektu do nich ale nikdo nezasahoval, komunikuje s vnějším světem pomocí vlastnostní objektu. Vlastnost můžeme tedy chápat jako proměnnou, kterou objekt nabízí ke čtení nebo změně.

Tlačítko1.text = "ahoj";  // vlastnost text objektu Tlačítko1 nastavím na "ahoj"

Aby objekt mohl něco vykonat, obsahuje procedury, kterým se říká metody.  Metodu mohu zavolat, tím se provede.Objekt dostane určitou zprávu, vykoná se určitá část kódu programu.

Conslole.Write("ahoj");  // zavolám metodu write objektu Console, ona něco napíše. Já ji rovnou předávám jako parametr test "ahoj"