Mesačné archívy: jún 2014

Programovanie pre neprogramátorov – 2. lekcia

Tento článok je súčasťou môjho online kurzu programovania v JavaScripte. Každý sa ho môže zúčastniť, kurz je zdarma. Kto sa ešte nezaregistroval, môže tak spraviť tu: http://eepurl.com/UzefH. Kurz obsahuje teoretickú časť (články na tomto blogu) a praktickú čast (domáce úlohy zadávané emailom).

V prvej lekcii som vysvetľoval prvé základné stavebné kamene každého programu/aplikácie. Dnes si ukážeme ďalšie stavebné kamene a to podmienky.

Podmienky určujú, ktorá časť kódu sa vykoná. Z prvej lekcie budeme potrebovať vedieť čo sú boolean premenné (true, false).

var isRaining = true;
if (isRaining) {
  //prší, vykoná sa táto časť kódu
}

Ak by sme definovali “isRaining” false, blok kódu obalený if-om by sa nevykonal. Keďže je “isRaining” true, “prší” sa vykoná.

var isRaining = false;
if (isRaining) {
  //prší, vykoná sa táto časť kódu
} else {
  //neprší, vykoná sa táto časť kódu
}

V ukážke vyššie definujeme boolean premennú “isRaining” s hodnotou false (nepravda). Ktorá časť kódu sa vykoná? Vykoná sa “neprší” (vetva else), pretože “isRaining” je nepravda. Ak by sme definovali “isRaining” ako true, vykoná sa “prší”. Všimnite si medzeru za “if” a medzeru pred a za “else”. Takisto odsadenie 2 medzerami alebo tabulátorom vo vnútri “if”. Je to “coding standard“, ktorý by mali dodržiavať všetci programátori.

Skoro by som zabudol na “else if”:

var age = 18;
if (age === 18) {
  //si dospelý, už môžeš piť alkohol legálne
} else if (age < 18) {
  //si ešte dieťa, môžeš piť nelegálne alkohol
} else {
  //máš viac ako 18 rokov. Si už stará raketa.
}

“else if” použijeme ak chceme overiť viacero podmienok. “else if” môže byť za sebou ľubovoľne veľakrát. Po “else if” môže a nemusí nasledovať “else”.

Ešte je tu pár vecí, ktoré by sme mali vedieť pri podmienkach a boolean hodnotách. A to:

Operátory a vyhodnocovanie podmienok:

Operátor is equal ==

var name = 'Josh';
//operátor is equal (==) porovná 2 hodnoty a vyhodnotí podmienku na true (ak sa rovnajú) alebo false (ak sa nerovnajú)
var isJosh = (name == 'Josh'); //isJosh sa vyhodnotí na true. Zátvorky sú ľubovoľné, slúžia pre prehľadnosť kódu
var isPeter = (name == 'Peter'); //isPeter sa vyhodnotí na false pretože 'Josh' != 'Peter'

if (name == 'Josh') {
  //som Josh
}

Existuje aj operátor “===”, ktorý porovnáva rovnosť hodnôt ako aj “==” ale líšia sa tým, že operátor “===” porovnáva aj rovnosť typov premenných:

var zero = 0;

if (zero == "0") {
  //podmienka sa vyhodnotí na true. V JavaScripte môžeme porovnávať čísla so stringami s operátorom ==
}

if (zero === "0") {
  //podmienka sa vyhodnotí na false, pretože zero je typ Number a "0" je String
}

Operátor nerovná sa (is not equal) !=

var zero = 0;

if (zero != "0") {
  //tento blok sa nevykoná, vyhodnotenie podmienky je false
}

//operátor !== porovnáva hodnotu aj typ premenných
if (1 !== "1") {
  //true, 1 je typ Number, "1" je typ string.
}

Porovnávajúce operátory <, >, <=, >=

if (3 > 4) {
  //3 nie je väčšie ako 4...
}

if (5 <= 5) {
  //5 je menšie, alebo rovné 5
}

Operátor && (and) a || (or)

var isRaining = true;
var isStorm = false;
var isRainingAndStorm = isRaining && isStorm; //operátor && je logický AND (a zároveň). Porovnáva 2 hodnoty. Ak sú obe hodnoty true, podmienku vyhodnotí na true. Ak je jedna, alebo obe hodnoty false, podmienku vyhodnotí na false

isRainingAndStorm = isRaining || isStorm //operátor || je logický OR (alebo). Stačí ak je jedna hodnota true a celý výraz sa vyhodnotí na true

Viac o porovnávacích operátoroch sa dozviete tu.

Zhrnutie

Mali by ste chápať načo slúžia podmienky “if”, “else if”, “else”
Mali by ste chápať operátorom “&&”, “||”, “==”, “===”, “!=”, “!==”, “<“, “>”, “<=”, “>=”

Cvičenie/Domáca úloha

http://jsfiddle.net/elfoslav/fyC3L

Ako odovzdávať cvičenia? Keď sa ti zobrazí stránka s cvičením, klikni v hornom menu na “Fork”. To vytvorí tvoju kópiu cvičenia. Keď budeš chcieť spustiť kód, klikni v hornom menu na “Run”. Keď budeš mať cvičenie hotové, klikni na “Update”, to uloží tvoje cvičenie. Potom už len skopíruješ link cvičenia a odošleš mi ho do mailu. Ja ti cvičenie skontrolujem a oznámkujem.

Alebo jednoduchšie: Zaregistruj sa na http://www.codermania.com a prejdi si cvičenia tam. Cvičenia sa vyhodnocujú automaticky. Ak si nebudeš dať vedieť rady, je tam tlačidlo “Ask for help”. Ak nevieš po anglicky, môžeš použiť Google translator. Veľa šťastia.

Prihlásiť sa k odberu noviniek o programovaní

* povinné pole



Chcem dostávať novinky o:


 

Hare Krišna

Hare Krišna je pôvodom indická filozofia prameniaca z Védskej tradície podobne ako hinduizmus. A. C. Bhaktivédánta Svámí Prabhupáda rozšíril filozofiu Hare Krišna v Amerike a neskôr sa dostala aj do Európy. Krišna je najvyššia osobnosť božstva.

V Brne stretávam “Krišňákov” dosť často. Predávajú knihy (väčšinou za 100,-Kč) a niekedy Krišnodvorské kokosky. Vždy, keď na niekoho z nich narazím, pozrie sa na mňa a osloví ma. Ja sa zastavím, pokecáme a skoro vždy si kúpim dáku knižku alebo výborné kokosky z ich BIO farmy. Asi 2 týždne dozadu som sa dozvedel, že každú nedeľu o 14:00 robia program pre verejnosť. Tak som si povedal, že keď budem cez víkend v Brne, tak tam zájdem. Rád skúšam nové veci a spoznávam nových ľudí.

Prišiel som na Durďákovu 34 a čo ma hneď zaujalo, bola žena (asi Indka), v indickom oblečení, ktorá sa prechádzala v záhrade. Ja som vošiel do otvoreného domu a ostal som na chodbe, lebo som nevedel či ísť ďalej bez opýtania. Medzitým mladá Indka prešla okolo mňa s pozdravom “Hare Krišna”, automaticky som odpovedal “Hare Krišna” aj keď trochu zaskočený. Takto sa tu zdravia? “Hare Krišna”? Zaujimavé… Čakal som na chodbe až kým niekto neprišiel a nepovedal mi, že môžem ísť dovnútra. Tak som sa vyzul a vošiel do miestnosti, kde sa mal odohrať program. Tam bolo pár ľudí v civile a zbytok “Krišňáci”. Jeden muž v civile sa ma spýtal či som tu prvý krát. Povedal som, že hej. Tak mi povedal ako to tu chodí: hodinu sa spieva Hare Krišna, hodinu sa prednáša a potom sa ide jesť. Zase som zostal zaskočený… hodinu sa spieva? hodinu?? Dúfal som, že sa bude spievať aspoň viacero pesničiek. No nie. Naozaj sa hodinu spievalo a hralo:

Vraj aby navodili meditačný stav. Našťastie to nebolo stále to isté, menil sa rytmus, melódia a dynamika. Nebolo to také hrozné ako som čakal a ku koncu sa mi to aj zapáčilo :)

Po spievaní prišiel prednášajúci. Bol som milo prekvapený, že bol Slovák. Podľa prízvuku Blavák. Prednášal úryvok z Bhagavad Gíty o tom, že Boh je osoba a nie nejaká neurčitá hmota. Vzťah môžeme mať len k osobe…  A ako bonus rozprával o tom, že sme duše uväznené v ľudskom tele. Sme otrokmi svojich tiel a svojich pudov. Prahneme po úspechu, uznaní a bohatstve, ktoré nám bude na smrtelnej posteli k ničomu.

Každý týždeň prednáša niekto iný.

Po prednáške nasledoval ešte krátky, asi 15 minutový tanec a spev. Tentokrát spievali aj dáke iné piesne a ku koncu zase Hare Krišna.

No a potom bola konečne hostina. A keď vravím hostina, tak naozaj hostina. Ešte ma kolega, ktorý sedel vedľa mňa, upozornil aby som si prvé kolo nenaložil veľa, že bude viacero chodov. A tak aj bolo. Ryža, strukovinová omáčka, zeleninová zmes, jogurt, škoricové guličky… jedlo po obrade sa nazýva prasádam. A bolo vynikajúce. Najedol som sa do prasknutia.

Na hostine ma zaujalo, že muži jedli v jednej polovici miestnosti a ženy v druhej. Jedli sme na zemi v miestnosti, kde bol aj obrad.

Pokecal som s pár ľuďmi, kúpil som si ďalšiu knihu “Vědecké poznání duše” a s dobrým pocitom a plným žalúdkom šiel domov. Keď budem môcť, zavítam aj nabudúce. Tí ľudia nie sú žiadna sekta, ale naozajstní Krišnovi oddaní.

No a na záver, Hare Krišna!

IMAG0031