Ko Pvp Serverlar & PvP - Man

Sitemizden yararlanmak ve bu ailenin bir parçası olabilmek için lütfen üye olunuz!
Ruby Dersleri Uyeols10



Join the forum, it's quick and easy

Ko Pvp Serverlar & PvP - Man

Sitemizden yararlanmak ve bu ailenin bir parçası olabilmek için lütfen üye olunuz!
Ruby Dersleri Uyeols10

Ko Pvp Serverlar & PvP - Man

Would you like to react to this message? Create an account in a few clicks or log in to continue.
Ko Pvp Serverlar & PvP - Man

1299 1351 Pvp Serverlar & MT2



Misafir Üyelerimiz Konu Açmak veya Cevap Göndermek İster Misiniz?
İstek ve Şikayetleriniz & Tanışma & Misafir "Server Tanıtımı"

• Öğrenci • & • Asker • sistemimiz aktifdir.. Odalar için [TIKLA]

"kopvpserverlar.tk" hizmetinizdedir...

Giriş yap

Şifremi unuttum

En son konular

» 3 İdiot 2009Türkçe Altyazı [HD] Mutlaka İzleyin ...
Ruby Dersleri Icon_minitime1Ptsi Ağus. 12, 2013 9:17 pm tarafından Celik

» "Çözüldü"İkonu ve Sonuçlandırılmış Sistemi
Ruby Dersleri Icon_minitime1Salı Ağus. 06, 2013 2:57 pm tarafından Celik

» "Çözüldü"İkonu ve Sonuçlandırılmış Sistemi
Ruby Dersleri Icon_minitime1Salı Ağus. 06, 2013 2:57 pm tarafından Celik

» "Çözüldü"İkonu ve Sonuçlandırılmış Sistemi
Ruby Dersleri Icon_minitime1Salı Ağus. 06, 2013 2:57 pm tarafından Celik

» "Çözüldü"İkonu ve Sonuçlandırılmış Sistemi
Ruby Dersleri Icon_minitime1Salı Ağus. 06, 2013 2:56 pm tarafından Celik

» "Çözüldü"İkonu ve Sonuçlandırılmış Sistemi
Ruby Dersleri Icon_minitime1Salı Ağus. 06, 2013 2:15 pm tarafından Celik

» "Çözüldü"İkonu ve Sonuçlandırılmış Sistemi
Ruby Dersleri Icon_minitime1Salı Ağus. 06, 2013 2:15 pm tarafından Celik

Reklam Widget


    Ruby Dersleri

    PvP-Man
    PvP-Man
    PvP - Oyuncu
    PvP - Oyuncu


    PvP - Man

    Mesaj Sayısı Mesaj Sayısı : 201

    Leader Point Leader Point : 8764
    Nation Point Nation Point : 30045

    Yaş Yaş : 34
    Kayıt tarihi Kayıt tarihi : 12/08/09
    Nerden Nerden : Kayseri

    Ruby Dersleri Empty Ruby Dersleri

    Mesaj tarafından PvP-Man Salı Ağus. 06, 2013 12:50 pm

    Burada, Ruby programlama dilini anlatmaya çalışacağım ve eğer soru soran olursa cevap vermeye çalışacağım

    şimdi, hafiften klişe bir şekilde başlayalım

    Ruby nedir?
    Ruby, 1990'ların ortalarında Japonya'da ortaya çıkmış, nesne yönelimli bir programlama dilidir.C++, Java gibi diğer birçok dilin aksine herşey, ama herşey birer nesnedir(int, float da dahil).Herşeyin nesne olması gibi birçok özelliğini ilk dinamik nesne yönelimli programlama dili olan Smalltalk'tan almıştır(dinamiklik konusuna umarım daha sonra gelicez) ve perl'le de syntax açısından çeşitli benzerlikleri bulunmaktadır.Derlenen değil de, yorumlanan bir dil olduğu için hız konusunda bi miktar yavaş kalır ama 1.9 sürümünden itibaren gelen bytecode compiler ile bir miktar hızlanmıştır.Ayrıca [Linkleri görebilmek için üye olun veya giriş yapın.] adresinde de birçok kütüphane bulunabilir

    Merhaba Dünya!
    **Bunu yazmadan geçmek mümkün değil**
    Perl'ün "Bir işi yapmanın birden fazla yolu var" anlayışına (bir yere kadar) sahip olan ruby'de tabi ki ekrana "Merhaba Dünya!" yazdırmanın birçok yolu var.
    Kod:
    print "Merhaba Dunya!"
    Kod:
    puts "Merhaba Dunya!"
    Kod:
    p "Merhaba Dunya!"
    Kod:
    $stdout << "Merhaba Dunya!"
    Bu kadar yolun farkı ne diyorsanız, print ve $stdout << yazdırılan şeyin sonuna yeni satır karakteri eklemezken, puts ekliyor. p ise raw bir şekilde ekrana yazdırdığından dolayı bu örnekte başına ve sonuna tırnak işareti koyuyor.

    Nesneler ve Mesajlar
    Daha önce de bahsettiğim gibi ruby'de herşey bir nesnedir ve bunlara çeşitli mesajlar gönderilebilir ("mesaj gönderme", diğer birçok dilde metod çağırma olarak geçer").Örneğin;
    Kod:
    -3.abs
    satırında Fixnum sınıfına ait bir nesneye "abs" mesajını gönderiyoruz, bu Fixnum sınıfının abs fonksiyonunu ve bu sayının mutlak değeri olan 3 ü elde ediyoruz.Ruby'de bir fonksiyon çağırırken eğer argument yollamıyorsak paranteze ihtiyaç yoktur, dolayısıyla sanki bir değişkene erişiyormuş gibi fonksiyon çağırabiliriz.

    Kod:
    3 + 5
    => 8
    bu satırda da aslında 3 nesnesine "+" mesajını 5 argümanıyla yolluyoruz ve 8 sonucunu alıyoruz.Yani operatörler de aslında mesaj gönderiyor

    Bir başka örnek;
    Kod:
    a = [1,3,true,["asd",3.5]].size
    => 4 # Bu "#" işareti ruby'de yorum karakteridir ve o satırın sonuna kadar geçerlidir.
    #Ayrıca => işareti ile belirttiğim şey yukarıdaki işlemin sonucudur.
    Ruby'de dynamic typing sayesinde değişken tanımlamaya gerek yoktur.Direkt olarak bir değişkene atama yaparsanız o değişken tanımlanmış olur.Ayrıca yine bu nedenle listelerde veya fonksiyon argümanlarında sınıf kısıtlaması yoktur.

    Bir örnek daha;
    Kod:
    3.times { puts "asd" }
    Bu kod, ekrana 3 kez "asd" yazdırır.Burada 3'e times mesajını bir blokla yolluyoruz.Bir blok, bir ruby kodu parçasıdır ve küme parantezleri yada do...end anahtar sözcükleriyle sınırlandırılır.Bloklar, güvenin bana, gerçekten çok yararlıdırlar.

    Kontrol Yapıları
    ruby'de de if ler diğer bir çok dildeki gibidir
    örneğin;
    Kod:
    if 3 + 5 == 8
    puts "heyoo!!"
    end
    ekrana tahmin edebileceğiniz gibi "heyoo!!'" yazdırır.C syntaxlı dillerden farklı olarak if teki ifadenin etrafına parantez koymak gereksizdir(ki döngü vs. lerde de gerek yoktur).Diğer bir çok kod bloğu gibi if ler de "end" ile bitirilir.
    ayrıca, "unless" keywordü de "if not" anlamına gelir ve eğer verilen ifade yanlışsa o bloktaki kodu çalıştırır

    if vs. için bir diğer kullanım şekli de;
    "ifade if koşul" biçimindedir.Örneğin;
    Kod:
    puts "heyoo!! if 3 + 5 == 8
    bir üstteki if ile aynı sonucu verecektir.Bu yöntem unless, while gibi şeyler için de kullanılabilir

    Döngüler
    Ruby'de de while döngüsü bulunur ve diğer dillerdeki while lara benzer.Sadece bir örnekle geçiştireceğim bunu;
    Kod:
    a = 1
    b = 5
    c = 3
    while a < b
    c += 1
    a += 1
    end
    c
    => 7
    burada pek görülecek birşey yok

    ruby'de for döngüsü de bulunur ancak aslında bu döngüye hiç ihtiyaç yoktur.Çünkü for döngüsünün 2 temel kullanım amacını karşılayan farklı yöntemler vardır.bir şeyi belli bir kez yapmak için int'lerin "times" metodu kullanılır ki yukarıda bahsedip örnek göstermiştim.Ama hadi yeni bir özellik göstererek bir örnek daha veriyorum;
    Kod:
    sonuc = 0
    5.times do |i|
    sonuc += i
    end
    sonuc
    => 10
    burada, bu blokta "|" karakterleri arasında verdiğimiz i, bu bloğun argümanıdır ve "times" metodu her dönüşünde 0'dan başlayarak bir sayı döndürür bu argümana ancak bu argümanın oraya konulması zorunlu değildir.

    for döngüsünün 2. kullanım amacı olan array'lerin her elemanıyla birşeyler yapma ise, Array vb. sınıflarda bulunan "each" metoduyla halledilir.Örneğin;
    Kod:
    arr = [ 1,2,3,4,5,6,7 ]
    arr.each do |a|
    p a**2
    end
    bu kod, arr arrayinin tüm elemanlarının karesini ekrana yazdırır(** operatörü kuvvet alma işlemi için kullanılır). each metodu bir blok alır ve argüman olarak o arrayin o sıradaki elemanını verir.

    Bu seferlik bu kadar yeter.Umarım yararlı olmuşumdur

    kestane kebap, acele cevap [Resimleri görebilmek için üye olun veya giriş yapın.]
    PvP-Man
    PvP-Man
    PvP - Oyuncu
    PvP - Oyuncu


    PvP - Man

    Mesaj Sayısı Mesaj Sayısı : 201

    Leader Point Leader Point : 8764
    Nation Point Nation Point : 30045

    Yaş Yaş : 34
    Kayıt tarihi Kayıt tarihi : 12/08/09
    Nerden Nerden : Kayseri

    Ruby Dersleri Empty Geri: Ruby Dersleri

    Mesaj tarafından PvP-Man Salı Ağus. 06, 2013 12:50 pm

    Biraz daha yazdım, bidahaki sefere sınıflara geçeriz artık

    Değişmezler
    Değişmezler(sabitler) bir tür değişken gibidir ama çalışma esnasında değiştirilemez, sabit bir değeri tutarlar.Ruby'de çok basittirler.Eğer bir değişkenin ismi büyük harfle başlıyorsa o değişken sabittir.
    Kod:
    Sabit = 42
    puts Sabit**2
    Sabit += 2
    "Sabit += 2" satırında sabit bir terimi değiştirmeye çalıştığımızdan hata verir.

    Hash ler
    "Hash" sınıfı, map, hashtable, dictionary gibi isimlerle de bilinen, anahtar-değer çiftlerinden oluşan bir veri yapısıdır.Bir nevi Array lere benzerler ama index olarak istediğimiz her sınıftan şey kullanabiliriz(yeterki bu nesne "hash" mesajına cevap versin -ki muhtemelen stringden başka kullanmanıza pek gerek olmayacak). Hashler, bloklar gibi küme parantezi arasında belirtilir ve virgülle ayrılan anahtar-değer çiftleri anahtar => değer şeklinde gösterilir.Ayrıca, hash lerin each metodu da anahtar, değer şeklinde 2 değer döndürür her dönüşte

    Örneklerle;
    Kod:
    h = { "isim" => "kuzux, "yer" => nil, "hede" => "hodo" }
    Eleman erişimi
    Kod:
    h[:isim]
    => "kuzux"

    h["asd"] = "dsa"
    Yukarıdaki kod parçasında, yeni, ufak bir kavram görüyoruz Semboller. iki nokta işaretiyle başlayan Semboller, bir çeşit stringdirler ama daha az metod içerirler ve hafızada saklanmaları farklıdır.Her bir String nesnesi, aynı değerde başka bir string olmasına bakılmadan hafızada yeni bir yerde saklanırken, semboller eğer aynı değerde hafızada başka bir sembol varsa ona referans eder.Tamam karışık görünüyor ama çok da önemli değil zaten semboller "to_s" metoduyla stringe, stringler de "to_sym" metoduyla sembole çevrilebilir

    Her çift üzerinden döngü
    Kod:
    h.each do |anahtar, deger|
    puts "#{anahtar}: #{deger}
    end
    Yukarıdaki kod, daha önceki 2 örnekten sonra çalıştırılırsa,
    isim: kuzux
    yer: nil
    hede: hodo
    asd: dsa
    çıktısını üretecektir ancak sıralama böyle olmayabilir çünkü hash ler verileri sıralı bir şekilde tutmazlar.
    Ayrıca, yukarıda stringin içine değişken yerleştirilmesini görüyorsunuz.string içinde #{} arasına istediğiniz bir değişkeni veya ruby kodunu koyup çalıştırabilirsiniz.Ancak, bu sadece çift tırnak arasına yazılmış stringlerde olur, tek tırnakta olmaz.

    Fonksiyonlar
    yaklaşık her dilde olduğu gibi ruby'de de fonksiyonlar vardır.olmasa cidden şaşılması gerekti zaten.Java, c# gibi dillerin aksine, ruby'de her fonksiyonun bir sınıf içine yazılması gerekmez.bir sınıf içine yazılmayan her fonksiyon, aslında bir sınıfa aittir ama bu otomatik olarak halledilir. Fonksiyonlar "def" keyword ü ile belirtilir.
    Kod:
    def merhaba(isim)
    puts "Merhaba, #{isim}"
    end
    bu fonksiyon, görülebileceği şekilde bir argüman alıyor ve ona merhaba diyor

    Fonksiyonlardan deger dondurme, diger bircok dildeki gibi "return" komutuyla yapılır.örneğin,
    Kod:
    def kare(sayi)
    return sayi ** 2 # ** operatörü kuvvet alma anlamına gelir
    end
    ancak, ruby'nin bir güzelliği daha, fonksiyonlardan değer döndürmek için asalında return komutuna gerek yoktur.Fonksiyonda son yapılan işlemin sonucu fonksiyonun değeri olarak döndürülür.Böylece, yukarıdaki fonksiyonu şöyle de yazabiliriz;
    Kod:
    def kare(sayi)
    sayi ** 2
    end
    fonksiyon aynı sonucu verecektir

    Bir fonksiyonun argümanlarına varsayılan değerler verebiliriz.Mesela;
    Kod:
    def merhaba(isim="kuzux")
    puts "Merhaba, #{isim}"
    end
    fonksiyonunu argümansız olarak çağırdığımızda, ekrana "Merhaba, kuzux" yazacaktır

    Ayrıca, bir fonksiyonun son argümanının başında * varsa, o argüman sayısı belli olmayan argümandır.
    Kod:
    def merhaba(*isimler)
    isimler.each do |isim|
    puts "Merhaba, #{isim}"
    end
    end
    şeklinde bir fonksiyon yazdığımızda ve merhaba("ahmet","mehmet","asd") dediğimizde ekrana
    Merhaba, ahmet
    Merhaba, mehmet
    Merhaba, asd
    yazdıracaktır(iyice çocuk programına döndü bu da [Resimleri görebilmek için üye olun veya giriş yapın.])

    Bu tür fonksiyonlarda değişken sayıda argüman alan kısım, eğer hiç argüman verilmemişse boş bir Array olur.
    Kod:
    def merhaba(*isimler)
    if isimler.empty?
    isimler << "kuzux"
    end
    isimler.each do |isim|
    puts "Merhaba, #{isim}"
    end
    end
    Burada gördüğümüz 2 yeni şey var.Array(ve hash vs.) lerin "empty?" metodu, o array in boş olup olmadaığını gösterir(ve evet, fonksiyon isimlerinde "?" ve "'!" bulunabilir.Ve de array'lerin "<<" operatörü, o arrayin sonuna bir eleman ekler.Yukarıdaki örnekteki fonksiyonu artık argümansız çağırırsak, ekrana "Merhaba, kuzux" yazdıracaktır.

    Ayrıca, daha önce de gördüğümüz gibi, bir fonksiyonun son argümanı bir blok olabilir.Bunun için, son argümanın başına bir "&" koymamız yeterli(aslında koymadan da olur ama koyarsak blok gelmek zorunda, başka bir tür değişken olmaz)
    Kod:
    def ifcan(kosul,&blok)
    if kosul
    blok.call
    end
    end
    bu fonksiyon da eğer verilen koşul doğruysa, verilen bloğu çağırıyor.
    Kod:
    ifcan(3<5) { puts "heyoo!" }
    ekrana gayet "heyoo!" yazdırır.

    kestane kebap, acele cevap [Resimleri görebilmek için üye olun veya giriş yapın.]

      Forum Saati Paz Nis. 28, 2024 3:13 am