Hledat
Přihlásit se
  • Věda a technika
  • Herní doupě
  • Tipy pro PC
  • IT Byznys
  • Mobily
  • Počítače
  • Počítače
  • Témata
  • Poradna
  • Diskuzní fórum
  • Video
  • Bazar
  • Blogy
  • MĚŘENÍ RYCHLOSTI
  • RSS
  • Facebook Twitter Google+ YouTube
  • Hardware
  • Software
  • Počítače
  • Notebooky
  • Služby na webu
  • Apple
  • Google
  • Microsoft
  • Seznam
  • Tiskové zprávy
Další témata
  • Týden Živě
  • Zprávy Živě
  • Testy
  • Pitvy
Všechna videa
Blogy Živě » O programování a všem okolo

O programování a všem okolo

Články vytvořil Jiří Hrebenar
 

Archiv rubriky „Ruby“

Ruby - metody 2.díl: proměnný počet argumentů

V předcházejícím díle jsme měli možnost seznámit se se základy tvorby metod v jazyku Ruby. Nyní samozřejmě naše znalosti budeme prohlubovat. V dnešním článku bychom si měli říci něco málo k proměnnému počtu argumentů funkce. Tak tedy pojďme na to:

Pokračování příspěvku » »


13. 2. 2010 | gisat_cz | 1

Ruby - metody: 1. díl Úvod do metod

Na delší dobu jsem se odmlčel, za což se velmi omlouvám. Bohužel pro pracovní vytížení nebyl čas na napsání dalšího článku. Po 14 článcích věnovaných jazyku Ruby následuje jeho další pokračování, tentokrát se na několik dílů ponoříme za taji vytváření, volání a dalším nakládání s metodami.

Pokračování příspěvku » »


1. 2. 2010 | gisat_cz | 5

Ruby - break, redo a next v cyklech

Již nějakou dobu se zabýváme v našem povídání o jazyku Ruby cykly. Pokud jste četli předchozí články, jistě jste zjistili, že práce s cykly je mnohdy v Ruby mírně odlišná od aplikace cyklů v jiných programovacích jazycích.

Dnes bychom si měli něco říct o další možné součásti cyklů, jsou to příkazy break, redo a next. Tyto předchozí příkazy jsou využívány ve spojení cyklů, u kterých se vyskytují tzv. iterátory.

Pokračování příspěvku » »


23. 8. 2009 | gisat_cz | 0

Ruby - cyklus for a iterátory

Již několik dílů povídání o jazyku Ruby jsme se zabývali cykly. Dnes bychom si měli představit cyklus for. Umožňuje nám iterovat, neboli procházet nějakými hodnotami, ale jeho užití je odlišné od používání v jiných programovacích jazycích, ale o tom si povíme za chvilku.
Pokračování příspěvku » »


3. 8. 2009 | gisat_cz | 1

Ruby - cyklus while a until

CYKLUS WHILE:

Dalším hojně využívaným cyklem v jazyku Ruby je cyklus while.

Je velmi využívanou formou cyklu. Opět si vše ukážeme na příkladu: Představte si, že budete chtít opakovat nšjaký text až do doby než uživatel zmáčkne na klávesnici počítače písmeno k:

while($_!= “k”)

puts “Nezmáčkli jste písmeno k”

puts “Tento příklad ukončíte stiskem písmena k”

gets

chomp

end

Tady vidíte že konstrukce cyklu while je podobná například konstrukci if. Stejný význam jako má cyklus while má i cyklus for, o kterém si řekneme v dalším článku.

CYKLUS UNTIL:

Opět tu je jeden příkaz Ruby, který se mi zdá poněkud zbytečný, pokud jste se v některém mém předchozím článku setkali s cyklem unless tak cyklus until má podobnou funkci. Jednoduše se provede tehdy, když  daný jev není pravdou. Podívejte se na příklad:

until($_== “k”)

puts “Nezmáčkli jste písmeno k”

puts “Tento příklad ukončíte stiskem písmena k”

gets

chomp

end

Jak vidíte výsledek příkladu s until vykonává přesný opak, vykoná kód tehdy pokud jste nezmáčkli na klávesnici počítače písmeno k.  V dalším díle se budeme věnovat cyklu for.


30. 7. 2009 | gisat_cz | 1

Ruby - příkaz case a ternární operátor

Ruby disponuje příkazem case, který se do jisté míry odpovídá příkazu switch. Prakticky se jedná o vícecestný příkaz if, a to velmi silný příkaz.

Dejme tomu, že byste měli proměnou, která vyžaduje větší množství instrukcí, a u nějaké se na základě rozhodnutí potřebujete zastavit a u jiné ne. Tak právě pro tyto případy je výhodnější než používat sadu if a elsif používat příkaz case.

Opět se radši podívejme na příklad:

prikaz=”pátek”

case prikaz

when “pondělí”

puts “Cože zase začátek pracovního týdne?”

when “úterý”

puts “sláva jeden den za sebou”

when “středa”

puts “půlka týdne pryč”

when “čtvrtek”

puts “blíží se pátek”

when “pátek”

puts “sláva bude víkend”

else “Tak to je opravdu nějaká chyba”

end

Pokud bychom to takto nenapsali, museli bychom vytvořit kód, který by byl směsicí příkazů if a elsif. Takto se celé konstrukci vyhneme nádherným příkazem case.

TERNÁRNÍ OPERÁTOR:

Jedná se opět o jednoduchou konstrukci, pomocí níž můžeme zpracovávat nějakou podmínku. Jeho syntaxe je následná:

podmínka ? pravdivá hodnota : nepravdivá hodnota

podívejte se na příklad:

den=”pátek”

vysledek=den!=”čtvrtek” ? “je jiný den” : “je pátek”

puts vysledek


29. 7. 2009 | gisat_cz | 2

Ruby - příkaz unless


V předchozím díle jste poznali příkaz if. Jazyk Ruby však disponuje také příkazem, který znamená právě opak příkazu if. Smysl příkazu unless bychom mohli přirovnat českému pokud není. Prostě se vykoná podmínka jestliže se vyhodnotí jako nepravdivá.

Vše si jako obvykle vysvětlíme na příkladu:

cast_dne=”noc”

unless (cast_dne==”den” )

puts “Dobrou noc”

end

Prostě se příkaz vykoná tehdy, není-li  splněna podmínka, konkrétně tedy příkaz unless se vypíše tehdy pokud proměná cast_dne se nebude rovnat hodnotě den.

U příkazu unless nemůžeme používat příkaz elsif, také neexistuje opačný příkaz k příkazu elsif. Velmi často se příkaz unless používá s příkazem if:

jmeno==”Jirka”

if(jmeno==”Jirka”)

puts “To je Jirka”

end

unless(jmeno==”Petr”)

puts LTo je jiný člověk”

end


26. 7. 2009 | gisat_cz | 6

Ruby - podmíněný operátor if a else

Prozatím jsme se zabývali Jazykem Ruby jen povrchně. Nyní bychom se měli ponořit do větších hloubek. Abychom mohli psát své skripty, musí se náš skript umět rozhodnout mezi nějakými možnostmi. Podmíněné operátory tak zvyšují použitelnost programových skriptů.

Díky nim můžeme plnohodnotně programovat. Jazyk Ruby ostatně jako ostatní programovací jazyky obsahuje prvky pracující s určitou podmínkou. My si dnes povíme o jedné z nich. Jmenuje se if.

Konstrukce podmíněného operátoru if je mírně odlišná od jiných programovacích jazyků, například PHP nebo Java mají úplně jinou syntaxi.

Nejlépe bude, když si ukážeme úvodem nějaký příklad:

jmeno=”Jirka”

if(jmeno==”Jirka”)

puts “Jméno je: Jirka”

end

Jak vidíte celá syntaxe příkladu je tak trochu neobvyklá. Například když jsem se já učil příkazu if, bylo to pro mne tak trošku netradiční, byl jsem zvyklý z Javy, PHP a jiných jazyků na lepší srozumitelnější syntaxi.

Prostě celý příkaz začíná deklarací if, do závorek dáte Vaše podmínky, pak následuje to co se má vykonat na základě podmínek a celý příkaz je ukoncen výrazem end.

Do podmínek samozřejmě můžeme použít také operátory && a || což znamená a zároveň , nebo, opět si to ukážeme na příkladu:

cena=500

if(cena==500 && cena !=550)

puts “Správná cena”

end

Vysvětlení celého příkladu je prosté, jestlliže cena je rovna 500 a zároveň se cena nerovná 550 vypiš větu správná cena. Jak vidíte operátor if není nic složitého.

Pokud máte zkušenost z nějakého jiného programovacího jazyka, tak Vám tady něco chybí. Jakási klausule jinak, tedy else, i jazyk Ruby takovouto klauzulí disponuje. Ukažme si to tedy na příkladě:

cena=500

if(cena==500 && cena !=550)

puts “Správná cena”

else

puts “Špatná cena”

end

Jak vidíte klausule else se vkládá za vykonanou podmínku operátoru if, těsně před ukončení příkazu slůvkem end. Značí zhruba toto: jestliže cena se bude rovnat 500 a zárověň se nebude rovnat 550 vypiš větu Správná cena, jinak(v jiných případech, tedy že cena nebude 500 a bude se rovnat 550) napiš větu Špatná cena.

Mnohdy však příkaz else potřebujete více specifikovat. Například jestliže se cena bude rovnat 600, prostě pokud budete chtít vykonat reakci na nějakou událost, která není podchycena v podmínce if, podívejme se na příklad:

cena=500

if(cena==500 && cena !=550)

puts “Správná cena”

elsif(cena!=400)

puts “Krásná cena”

else

puts “Špatná cena”

end

Výklad celého příkladu je následující: pokud bude cena rovna 500 a zároveň se nebude rovnat 550 vypiš větu Správná cena, jestliže ale cena nebude rovna 400 vypiš větu Krásná cena a v ostatních případech vypiš větu Špatná cena

Prostě si zapamatujte následující:

po zadání podmíněného operátoru if a jeho vykonání můžete mezi jeho vykonání a ukkončovací znak end vložit klausuli else nebo elsif, pozor: tady se nepoužívá elseif nebo else if jako v ostatních jazycích!

V příštím povídání budeme pokračovat v dalších podmíněných operátorech jazyka Ruby.


23. 7. 2009 | gisat_cz | 0

Ruby - práce s asociacemi a rozsahy

ASOCIACE

Pole jsou velmi silnými  prvky, ale jedna vada na nich je ta, že nemůžete používat jiné indexy než v číselné podobě. Abychom mohli používat i indexy ve slovním tvaru je nutné použít asociace.

Ostatní programovací jazyky, například PHP mají podobné druhy proměnných, nesou tam  pojmenování asociovaná pole, v Ruby jim říkáme asociace ale můžeme použít i PHP slovní označení a možná i označení slovem heš.

Asociace vytváříme jiným způsobem než pole Ruby, vytváříme je pomocí složené závorky {} , podívejte se na příklad:

asociace={”prvni”=>”hodnota1″,”druhy”=>”hodnota2,”treti”=>hodnota3″}

Klíčem je v tomto případě slovo prvni, druhy a treti. Hodnotami je hodnota1 až hodnota3.

K jednotlivým částem asociací přístupujeme takto:

puts asociace["prvni"] vypíše se slovo hodnota1

Jako klíče můžeme používat klidně i čísla:

asociace2={1=>”ahoj”,2=>”jazyku”,3=>”Ruby”}

puts asociace2[1] výsledkem bude slovo ahoj

ROZSAHY

Při studiu Ruby byly rozsahy pro mě velmi prapodivnou součástí tohoto jazyka. S trochou nadsázky by se dalo říci že rozsahy jsou něco jako když napíšete pondělí až pátek, pokud to napíšete tak výsledkem je pondělí, úterý, středa, čtvrtek, pátek. je to takový rozsah, prakticky je to tak, že vy si zadáte odkud dokud se má něco dělat a ono se to provede, většinou vypíše.

Podívejte se na příklad:

rozsah_cisel=1..4

puts rozsah_cisel.to_a

výrazem to_a jsme rozsah převedli na pole a vytiskli, výsledek bude 1 2 3 4

To samé můžete provádět také s písmenky:

rozsah_pismen=”a”..”d”

puts rozsah_pismen.to_a výsledek bude a b c d

puts rozsah_pismen.max výsledek bude d

puts rozsah_pismen.min výsledek bude a


18. 7. 2009 | gisat_cz | 1

Ruby - práce s polem

Ruby také obsahuje ve svém jazyce proměnou typu pole. Pole si můžete představit jako takový zásobník proměnných. K jednotlivým proměným v poli můžete přistupovat pomocí indexu.

K vytvoření pole musíte použít hranaté závorky []:

pole=[6,7,9]

Vytvořili jsme pole, které má v sobě uložena čísla 6,7 a 9. K vypsání jednotlivých čísel musíme použít jejich indexy. Indexy začínají vždy nulou, takže vše by mohlo vypadat například takto:

puts pole[0] vytiskne číslo 6

puts pole[1] vytiskne číslo 7

puts pole[2] vytiskne číslo 9

Pomocí indexů můžete také přiřazovat hodnoty:

pole[0]=12

pole[1]=123

pole[2]=”retezec”

Pole v jazyku Ruby nejsou tak striktní. Můžete do nich ukládat jak čísla, tak i řetězce.

Takto můžeme zjistit délku pole: puts pole.length

Pole také můžeme vytvářet pomocí operátoru new:

pole2=Array.new

Nemusíme tak naplnovat pole rovnou, to v tomto případě můžeme udělat později, dokonce  další prvky můzeme do pole vkládat také postupně:

pole3=Array.new

pole3[9]=567

mimochodem se zamysleme také nad tím co mi vypíše pole3 pokud budu chtít vypsat prvek na pozici 1 když jsem žádný prvek 1 nedefinoval? Vypíše ji jako hodnotu nil, tedy, že se jedná o neexistující údaj.

Zkusme se také zamyslet nad tímto příkladem:

pole4=["auto","motorka",5,8,"x"]

puts pole4[-1]

Výsledek bude x,  Pokud v Ruby zadáte záporný index, tak například zde při vypisování  se začíná číst pole zprava, tedy od jeho konce. Číslování v rámci záporného indexu začíná od minus jedničky, pozor na to, tedy pokud bude index kladný tak začátek je od nuly ale pokud je záporný tak začíná od minus jedničky.

PRÁCE SE DVĚMA INDEXY POLE

Nenechte se mýlit. Pokud jste například programovali v jakémkoli jiném programovacím jazyce, tak dva indexy se používaly na dvourozměrná pole. V Ruby tomu tak není.

První index označuje počáteční umístění a druhý počet elementů, ke kterým chcete přistupovat . Podívejte se na příklad:

pole=[1, "letadlo","psik"]

puts pole[1,1] hodnota bude letadlo

puts pole[1,2] hodnota bude psik

puts pole[0,2] hodnota bude psik

Další příklad:

pole5=[1, "letadlo","psik"]
pole5[0,2]=”arktida”
puts pole5[0,2]

Výsledek bude anrktida, psik


18. 7. 2009 | gisat_cz | 0

Starší příspěvky »

Aktuální články a bleskovky

Lenovo uvádí nové ThinkPady s čipy Ivy Bridge
Lenovo uvádí nové ThinkPady s čipy Ivy Bridge
Brýle Google Glass jsou patentované
Brýle Google Glass jsou patentované
Ifttt.com: Propojte a automatizujte svůj internet
Ifttt.com: Propojte a automatizujte svůj internet
Nejlepší programy pro práci s Wi-Fi
Nejlepší programy pro práci s Wi-Fi



O programování a všem okolo využívá WordPress MU a běží na Blog.zive.cz. Vytvořte si svůj vlastní blog
Sledování přes RSS: články a komentáře


  • Archivy

    • Duben 2012
    • Květen 2011
    • Leden 2011
    • Prosinec 2010
    • Listopad 2010
    • Říjen 2010
    • Květen 2010
    • Březen 2010
    • Únor 2010
    • Leden 2010
    • Prosinec 2009
    • Září 2009
    • Srpen 2009
    • Červenec 2009
    • Srpen 2008
  • Rubriky

    • AJAX (7)
    • Awk a sed (2)
    • CSS, HTML (3)
    • Java (3)
    • Javascript (25)
    • Javascript frameworky (4)
    • Nezařazené (11)
    • Opensource (21)
    • Ostatní (10)
    • PHP (7)
    • PHP,MySQL a APACHE (1)
    • Ruby (16)
    • Sociální sítě (15)
    • UNIX (5)
    • XML (3)
    • Zprávy (61)
  • Spřátelené blogy

    lara.111: my clever blog
  • Twitter

    • Oh miluju krásné kytky, je normální když chlap má rád kytky? :-D~~~amp~~~lt;3 Jo já vím, jsem netradiční, to jsem prostě já... http://t.co/PoghKVpG
    • Haha :-)~~~amp~~~lt;3 http://t.co/R28S4u0Z
    • http://t.co/ZPcDPjdA
    • http://t.co/byQssIuP
    • Netřeba konspiračních teorií, pokud někdo krade, je zloděj. Pokud se někdo nechá uplácet, je to křivák. S... http://t.co/UeNF8J2Q
  • Administrace

    • Přihlásit se

1210_Computer.png

Časopis Computer

  • Nakupujte v zahraničí
  • Test 7 čteček elektronických knih
  • Technologie: nové standardy digitálního vysílání
  • Přehled cloudových uložišť
  • Poradíme s výběrem kamery na dovolenou

Partnerská sekce pro IT profesionály:
Microsoft TechNet/MSDN


Video Živě

Bluetooth stojánky pro Android: Philips AS111, AS141 a AS351
Ifttt.com -- založení úkolu
Zprávy Živě - 12. května 2012
iPad docky Logitech AV Stand a Logitech Speaker Stand

další videa »






Mladá Fronta a.s. Mladá Fronta a.s.
Tiráž | Autoři | Připomínky | Odběr novinek | RSS | Textová verze
Copyright 2000–2012 Mladá fronta a.s. | Inzerce: onlinesales@mf.cz | Kontakt na redakci | Návštěvnost měří NetMonitor