=begin Így fogok kommentezni ruby-ban mindig egy "=begin"-el kezdõdik és "=end"-el végzõdik. Közel se lesz teljes ez az ismétlés vagy mi, és nem biztos hogy hibátlan, ha bármi hibát találnátok benne írjatok vissza a listára, nehogy valaki rosszat tanuljon meg. Kezdjük a legelejénél (ezt sztem nyugodtan át lehet ugrani, csak a legalapabb dolgok). =end puts("-= Az elso pelda =-") x = 8 puts(6 * x) =begin Az x-nek értéket adunk (8) és kiírjuk a 6-szorosát, a puts függvény kiír dolgokat és utánuk sortörést is ír (tehát itt nem kell \n-eket írni a végére). És az is látszik hogy itt nem kell mindent ;-al lezárni =end puts("-= A masodik pelda =-") puts 6*x puts 6* \ x =begin Ezek is ugyanazt eredményezik, van amikor elhagyhatunk zárójeleket, a \ jellel pedig összekapcsolhatjuk a sort a következõvel. =end =begin Az operátorok megegyeznek a C-beliekkel: +, -, *, /, % (modulus), <=. >=, <, >, ==, != =end puts("-= A harmadik pelda =-") a = 5 b = 2 if b > 0 a = 5.0 end puts(a/2) a = 5 b = -2 if b > 0 a = 5.0 end puts(a/2) =begin Itt látjátok hogy az if-et while-t end-el kell lezárni ({} helyett), és ha valamit csak simán 5-nek definiálunk az egy egész szám lesz és ha elosztjuk 2-vel az eredmény szintén egész lesz, viszont ha 5.0-nak (lebegõpontosnak) definiáljuk akkor lebegõpontosan ki tudja írni. Megjegyzésként még, ha egy if-nek else ciklust is adunk azt a következõ módon kell bezárni: if feltétel utasítás else utasitás end Valamint létezik még elsif is ez úgy mûködik mint maple-ben az elif. =end =begin Ruby-ban nincs ++ se --, viszont van +=, -=. *=. /=, %=, azaz a+=4 ekvivalens az a=a+4-el =end puts("-= A negyedik pelda =-") a_lista = [0, 1, 2, 3] b_lista = a_lista puts a_lista[0] b_lista[0] = -1 puts a_lista[0] =begin Ezen a példán látszik hogy ha egy tömböt egyenlõvé teszünk egy másikkal, akkor valójában nem készül egy új tömb, csak ugyanarra a tömbre fog mutatni az a változó (itt a b_lista ugyanarra mutat, mint a_lista). Abból látszik, hogy mikor a b tömb elemét változtatjuk meg az "a" tömb eleme is megváltozik. =end puts("-= Az otodik pelda =-") a = 7 b = a b = 2 puts a =begin Viszont ugyanez nem igaz sima számokra, látszik az 5. példából. =end =begin Többféleképpen irhatunk ki dolgokat, 3 függvényünk van rá: p -> a dolgok típusa szerint írja ki azaz pl az a_lista-t így írná ki: [-1, 1, 2, 3] print -> nem ír ki újsort puts -> ír újsort =end puts("-= A hatodik pelda =-") x = [1, 2, 2, 4, 7] puts x.size() =begin A size függvény megadja egy tömb méretét (itt pl 5-öt ad vissza), a () a size végén nem kötelezõ, de van amikor hibához vezethet a hiánya. =end puts("-= A hetedik pelda =-") y = "hello" puts y[0] p y =begin Egy szót betûnként számként tárol egy tömbben. =end puts("-= A nyolcadik pelda =-") p 14.to_s() =begin A to_s függvény string-é alakít dolgokat, szerintem nem túl hasznos cucc. =end puts("-= A kilencedik pelda =-") x = [1, 2, 2, 4, 7] p x x.push(4) p x =begin A push függvény egy már meglevõ tömb végére illeszt egy új értéket (ezzel eggyel megnövelve a méretét) =end puts("-= A tizedik pelda =-") def f (a, b) c = a + b c * 2 end p f(2,4) =begin A def-el kell definiálnunk függvényeket, és ebbõl a példából az is látszik hogy az utolsó kiszámolt eredmény egy függvényben (c * 2 itt) automatikusan a visszatérési értéke a függvénynek (ami C-ben a return-el volt) =end puts("-= A tizenegyedik pelda =-") z = [4, 8, 2, 9] z.each() {|x| puts x * 2 } =begin Az each függvény egy adott tömb minden elemére elvégez valamit (itt a puts x * 2-t) az x változót amit az elején |-ok közé rakunk, csak ideiglenesen definiáljuk, és ezzel csak az elemeket jelöljük. =end puts("-= A tizenkettedik pelda =-") s = 0 (0..100).each {|x| s += x} p s =begin Itt látjuk a (0..100) hívást, ez egy 101 elemû tömböt képez 0, 1, 2 ... 98, 99, 100, ennek van egy másik változata is ami 3 ponttal mûködik (1...100) ez a változat a 100-at már nem írja bele azaz 0, 1, 2 ... 98, 99. A mostani példánk összeadta az elsõ 101 számot (a 0-t is beleszámítottuk). Az s-et mindig megnövelte az aktuális elemmel (ami a 0-tól 100-ig számok). =end puts("-= A tizenharmadik pelda =-") p 5.class p 5.0.class p "abc".class p [5, 6].class =begin A class függvény megmondja milyen tipusú az adott változó, ez fõképp hibakeresésnél hasznos. Van egy inspect függvény is...amit õszintén nemtudom mire jó, de biztos jó valamire...szerintem nem fog kelleni. =end puts("-= A tizennegyedik pelda =-") d = [4, 6, 2, 1, 8, 5, 4, 3, 9, 12, -1] e = ["b", "h", "a", "y", "e", "p"] p d.sort p e.sort =begin A sort függvény sorbaállítja egy lista elemeit, akár betûket, akár számokat, lehet mást is. =end puts("-= A tizenotodik pelda =-") p 3**5 =begin A **-al tudunk hatványozni. =end puts("-= A tizenhatodik pelda =-") a = "12" p a a = Integer(a) p a =begin Az Integer függvénnyel tudunk egy string-et egésszé alakítani, ugyanígy van Float függvény is. =end puts("-= A tizenhetedik pelda =-") a = "A kiskutya elment a vasarba" p a b = a.split p b =begin A split függvény szavakra bont egy string-et a szóközök mentén, ez táblázatok beolvasásakor hasznos (nefelejtsétek a gets() függvény olvas be egy sort a bemenetrõl) =end puts("-= A tizennyolcadik pelda =-") s = [4, 2, 1] p s.pop p s =begin A pop függvény visszaadja a tömb utolsó elemét, és kitörli azt. Ez nemvalószinû hogy lesz a ZH-ban de azért leírtam. =end puts("-= A tizenkilencedik pelda =-") a = "abc" p (a[1] == ?\ ) =begin Itt egyszerüen megkérdezzük hogy az a tömb második eleme szóköz-e (ott a ?\ után egy szóköz áll). =end puts("-= A huszadik pelda =-") a = {} a["janos"] = 0 a["geza"] = 2 a["endre"] = 0 p a =begin Ezt hívjuk hash-nek, táblázatoknál, adatbázisoknál meg ilyesmi varázslatoknál lehet hasznos, vszinüleg csak minimálisan vagy egyáltalán nem lesz érintve a ZH-ban. De azért minimálisan elmesélem mirõl van szó. =end puts("-= A huszonegyedik pelda =-") p a.key?("endre") p a.key?("andras") p a["andras"] a.delete("endre") a.each_key {|x| p x } puts("- Masfelekeppen a kiiras -") a.each_key {|x| print x, " ", a[x], "\n" } =begin Na ebben látszik hogyan kell leellenõrizni hogy egy elem megjelenik-e a hash-ben, és hogy hogyan kapjuk a visszatérési értéket ezekre (.key? a függvény), azt hogy "p a["andras"]" csak azért írtam bele hogy lássátok mit kaptok ha egy olyan elemre hivatkoztok benne ami nincs is benne (ilyenkor amint látjátok nil-t kaptok vissza). A delete függvénnyel kitörölhettek egy elemet a hash-bõl, az each_key pedig az ekvivalense az each-nek a sima tömböknél. =end puts("-= A huszonkettedik pelda =-") a = [0, 0] b = a a[0] = 1 p b a = [8, 8] p a p b =begin Ez csak egy kis emlékeztetõ volt arra hogy milyen hülyén mûködnek a tömbök ruby-ban, mert szerintem nagy eséllyel lesz a ZH-ban valami ilyesmi beugratós feladat. (Látjátok hogy amikor "a"-ra új tömböt definiáltunk, nemcsak egy elemét változttuk meg akkor "b" változatlan maradt, mert "a" már egy új tömb.) =end =begin Ha valamit kifelejtettem volna vagy rosszul írtam meg akkor írjtok a levlistára, sok szerencsét a tanuláshoz. Ha kérdésetek van azt a bartam82@gmail.com e-mail-re írjátok (ezt nézem meg naponta többször) =end