× Aktuálně z oboru

SHIELD Experience Upgrade 7 – méně hledání a více zábavy [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]
Celá zprávička [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]

PHP (III) - 2. lekce – Teorie programování

[ http://programujte.com/profil/20356-lukas-blatecky/ ]Google [ ?rel=author ]       [ http://programujte.com/profil/118-zdenek-lehocky/ ]Google [ ?rel=author ]       2. 10. 2006       31 493×

Ve 2. lekci našeho kurzu si vysvětlíme některé z pojmů teorie programování a podíváme se na podmínky a cykly.

Tak vidíte, netrvalo to nikterak dlouho a opět se setkáváme u našeho seriálu věnovaného programovacímu jazyku PHP. Jak už jsem předeslal v prvním díle, naším prvotním úkolem bude seznámit se malinko s teorií programování všeobecně. V této lekci si tedy osvětlíme některé z termínů užívaných v programování a ukážeme si něco málo z činností, které by měly vždy předcházet samotnému programování. No a abychom nechodili stále kolem horké kaše, tak se do toho ihned s chutí pustíme!

Posloupnost činností

Ať už pracujete na čemkoliv (nemusí se vůbec jednat o programování), vždy si určitě vytváříte nějaký postup, kterého se poté držíte a jdete ke svému cíli. Správné rozvržení pracovní náplně je jedním z nepostradatelných aspektů každé činnosti. Bez správné organizace by ten dům nikdy nestál, auta by nikdy nejezdila, atd. Toto platí i v programování. Pokud si práci dobře nerozvrhneme a nepromyslíme, můžeme se do toho pěkně zamotat.

Vždy bychom se měli při vývoji jakékoliv aplikace držet postupu:

zadání úkolu
– je pro nás výchozím prvkem. Je to logické, pokud není co na práci, tak se nepracuje.

analýza projektu
– jedná se o jednu z nejnáročnějších činností před samotným programováním. O co jde? Musíme si dobře celý projekt promyslet, znát veškeré jeho složky tak, aby nás při pozdější činnosti nic zásadního nepřekvapilo. Hlavně je důležité si v tomto bodě ujasnit veškeré vlastnosti a funkce, kterými má aplikace disponovat. Dobrý programátor již při analýze vidí části kódu, který bude zanedlouho sepisovat. Takže si zapamatujeme, že analýzou bychom se měli zabývat opravdu pečlivě.

volba jazyka
– možná to zní trochu divně, ale zvolit správný programovací jazyk, ve kterém projekt napíšeme, není někdy zrovna jednoduché. V tomto bodě vám nemám moc co poradit. Čím více programovacích jazyků ovládáte, tím delší bude nejspíš vaše rozhodování. Musíte pečlivě zvážit veškeré aspekty a nakonec zvolit ten nejvhodnější jazyk. Např.: Co je lepší? Programovat redakční systém jako síťovou aplikaci v Delphi nebo PHP?

programování
– k této položce není co dodat. Pokud jsme se dostali až sem, je jenom na nás, jak si s tím nyní poradíme.

ladění aplikace
– jedná se o činnost, při které máme projekt již hotový a zjišťujeme spíše už jen závady a hledáme možná vylepšení. S tím úzce souvisí:

testování
– aplikaci rozjíždíme na více strojích, u více uživatelů – sbíráme jejich názory a budujeme kompromis tak, aby aplikace uspokojovala co nejvíc z dotázaných testerů.

završení projektu
– jedna z nejpříjemnějších činností. Představíme si ji asi následovně: vypálíme aplikaci, hodíme do krabice, stanovíme cenu a prodáváme :)

Algoritmizace a vývojové diagramy

Slovo algoritmizace zní sice možná šíleně, ale ve skutečnosti se za tím neskrývá nic tak světoborného a nepřekonatelného. Jde vlastně o sestavení posloupnosti běhu programu. Co tím myslím? Algoritmizací se myslí to, že si definuji jednotlivé kroky programu, jak půjdou za sebou, popř. jak se budou opakovat, atd. Každý jsme se již s algoritmizací setkali, byť si to možná ani neuvědomujeme. Jedním z nejznámějších příkladů algoritmizace je recept z kuchařky. Přesně nám udává posloupnost činností vedených k vytouženému cíli. My, jakožto kuchař/počítač, vykonáváme kroky tak, jak jdou po sobě, jak nám je udává kuchařka.

Dalším příkladem algoritmizace je např. návod na sestavení modelu ze stavebnice LEGO. Kdo by to neznal, že?

Než přejdeme k vývojovým diagramům, musíme se seznámit s pojmem, který jistě všichni známe, ale hlavně – v programování se bez něj neobejdeme. Říká vám něco slůvko proměnná? Jsem si jistý, že určitě každému, kdo někdy počítal minimálně nějakou rovnici nebo jiný všeobecný příklad v matematice. V našem případě je proměnná vlastně pojmenovaná část paměti, do které budeme později ukládat různé hodnoty a pracovat s nimi. Takže je to opravdu jako v matematice – jednou jsme do proměnné x vložili číslo 1, poté třeba číslo 3, atd.

Nyní si ukážeme, co to jsou vývojové diagramy. Vývojový diagram je prakticky grafické znázornění algoritmizace. To znamená, že za pomoci blokového schématu znázorníme to, co chceme, aby počítač (přesněji řečeno program) vykonal.

Nebudeme se tady pitvat ve vývojových diagramech dopodrobna, ale ukážeme si jen základní tvary, se kterými budeme pracovat:

Nyní si ukážeme tyto tvary v praxi na jednoduchém příkladu:

Př. 1:
Máme za úkol vytvořit program, který načte dvě čísla, mezi sebou je sečte a vypíše výsledek. Pozn.: Nebudeme tady rozebírat, v jakém programovacím jazyce budeme tento program psát – postačí nám pro názornost jen všeobecný vývojový diagram.

V programu použijeme tři proměnné:

  • a (pro načtení první hodnoty)
  • b (pro načtení druhé hodnoty)
  • s (pro výsledek sčítání)

Doufám, že byl první příklad srozumitelný a že jsem vše vysvětlil tak, aby to šlo pochopit. Dále si vysvětlíme, co znamenají pojmy podmínka a cyklus.

Podmínky

Podmínkou je označováno místo v programu, kde dochází k nějakému rozhodování a následnému větvení programu. Podmínku tedy použijeme v případě, když např. chceme zjistit, jestli platí a > 10, a > b, b = 0, atd.

Podmínky rozlišujeme podle počtu výchozích možností na dvou, tři a vícevětvé. Dvouvětvá podmínka nám zaručuje, že po vyhodnocení podmínky dojde k pokračování buď v jedné, nebo druhé větvi programu. Vícevětvá podmínka zaručuje prakticky to samé, avšak je zde více možností, kudy se má běh programu ubírat v závislosti na vyhodnocované podmínce. Situace si představíme následovně:

Cykly

Už z názvu je patrné, co bude asi tento pojem vyjadřovat. Jedná se o proces, při kterém se neustále opakuje tělo cyklu, a to tak dlouho, dokud není splněna podmínka cyklu. Např.: Pokud chceme, aby program zmenšoval hodnotu proměnné a tak dlouho, dokud nebude hodnota proměnné rovna 0, nastavíme podmínku cyklu na a > 0 a pokud je podmínka vyhodnocena kladně, tzn. že hodnota v proměnné a je větší než nula, snížíme hodnotu proměnné o jedna a program se vrací zpět k podmínce a vyhodnocuje ji znovu. Tak to probíhá neustále dokola, dokud není v proměnné a hodnota 0. V takovém případě se již tělo cyklu nevykonává a program pokračuje dál.

Cykly dělíme na tři druhy:

  • cyklus s podmínkou na začátku
  • cyklus s podmínkou na konci
  • cyklus s předem daným počtem opakování
Cyklus s podmínkou na začátku
Jedná se o cyklus, kdy je nejdříve vyhodnocena podmínka a teprve na jejím základě se určuje, zdali se půjde do těla cyklu či dál do programu.


Cyklus s podmínkou na konci
Jedná se o cyklus, kdy je nejdříve provedeno tělo cyklu a teprve poté se zjišťuje, zdali je podmínka vyhovující, nebo se má tělo opakovat znovu.


Cyklus s předem daným počtem opakování
Jedná se o cyklus, kdy již na začátku přesně víme, kolikrát se tělo cyklu provede. Tento cyklus používáme v případech, kdy opravdu nemůže dojít ke změně počtu opakování (např. týden má vždy 7 dní, tudíž zde můžeme tento cyklus použít, pokud jej potřebujeme).

Věřím tomu, že tento díl našeho kurzu byl určitě velmi obsáhlý na nové informace pro ty, kteří se setkali s těmito pojmy poprvé, a dozajista byl pro ně velmi vyčerpávajícím. Doufám ale, že jsem zde popsal vše alespoň trochu srozumitelně a že si s tím všichni poradíte. Úkol z této lekce nebude, avšak byl bych rád, kdybyste se mnou podebatovali o čemkoliv, co vám není jasné, v komentářích.

V dalším díle se zaměříme na instalaci webového serveru, abyste každý mohl programovat doma na svém stroji a už se pomalu přesuneme k samotnému programování v jazyce PHP.

Přeji mnoho zdaru a odhodlání do dalších lekcí!


Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2006092901-php-iii-2-lekce-teorie-programovani/ ].