Ruby Programlama Temelleri #1

ѕeleɴια

Kıdemli Üye
18 May 2018
2,620
904
ZYZZ
Merhaba değerli okurlar. Bu konuda ruby diline başlıyoruz. Temellerini atacağız ruby nin. Başlayalım.





Öncelikle ruby i sitesinden indireceksiniz. Ben linux kullandığım için


Kod:
 sudo apt-get install ruby-full



Bu komut ile kurdum ruby i Daha sonra


Kod:
cd Desktop

Kod:
gedit ruby.rb



Diye bir ruby dosyası oluşturdum. Ruby tıpkı python gibidir. Geleceğin dillerinden olarak söylenir. Belgemizi oluşturduğumuza göre bakalım.

Kod:
[/COLOR][/SIZE][CENTER][SIZE=4][COLOR=White][B][FONT=Courier New]print "merhaba tht"
print "merhaba siber"[/FONT][/B][/COLOR][/SIZE][/CENTER]
[SIZE=4][COLOR=White]
Böyle bir kod kullandık. Print kodu herhangi bir şeyi ekrana yazdırmakta kullanılır. Programlamaya bir kez olsun izlemiş insanlar zaten bilir. Bazı dillere hakim olanlar bu dilde de çok rahat edebilir.


Terminalden yine Desktop a geçip


Kod:
ruby.rb
İle dosyayı çalıştırabiliriz. Ekranda merhabathtmerhabasiber yazdı terminalin solunda. Yan yana oldu hoş olmadı. Düzeltmek için



Kod:
[B][FONT=Courier New]
[/FONT][/B] [B][FONT=Courier New]
print "merhaba tht\n"
print "merhaba siber "
[/FONT][/B]


Bu sefer bir alt satıra inecektir. \n komutu bir alt satıra inmek için kullanılır. Ama \n kullanmak yerine şöyle bir şeyde var.


Kod:
[B][FONT=Courier New]puts Nbr[/FONT][/B]
[B][FONT=Courier New]puts İyi[/FONT][/B]


Böyle yaptığınız da da alt alta yazacaktır. Puts daha kullanışlıdır. Ama bazı durumlarda hatalar meydana getirebilir.


String Değerlere Baklım


Önce bir değişken yapalım.


Kod:
[B][FONT=Courier New]x = "Arda"[/FONT][/B]
[B][FONT=Courier New]y = 5
[/FONT][/B]
[B][FONT=Courier New]c = 3.9[/FONT][/B]


Bu şekilde değerler oluşturulabiliyor. Fark ederseniz ; yok.


Kod:
[B][FONT=Courier New]x = nil 
[/FONT][/B]


Yaparsanız bu ise nil yani bu değişkenin x değişkeninin bir değere sahip olmadığını gösteriyor ruby de.


Küçük bir Program Yapalım Hesaplama İşlemleri Klasik
Kod:
[B][FONT=Courier New]
[/FONT][/B]
[B][FONT=Courier New]print "Birinci Sayı: "[/FONT][/B]


Şimdi kod tabiki bundan ibaret değil. Burda bir durdum. Sayı: sonra boşluk bastım ki daha güzel görünsün. Ruby de boşluklar sayılıyor yani. Bazen python da bu durum yüzünden çok hata yaşayanlar olmuştur.



Kod:
[/COLOR][B][FONT=Courier New][COLOR=White]print "Birinci Sayı: "[/COLOR][/FONT][/B]
[B][FONT=Courier New][COLOR=White]sayi = gets.to_i[/COLOR][/FONT][/B]
[/SIZE][B][FONT=Courier New][SIZE=4][COLOR=White]
[/COLOR][/SIZE][/FONT][/B]
[SIZE=4][COLOR=white][B][FONT=Courier New]print "İkinci Sayı: "[/FONT][/B]
[B][FONT=Courier New]sayi2 = gets.to_i[/FONT][/B]
[B][FONT=Courier New]
[/FONT][/B]
[B][FONT=Courier New]puts sayi + sayi2
[/FONT][/B]


Şimdi burada ne yaptık. Önce kişiden bir sayı istedik aslında bunu sadece yazı olarak belirttik. Kişinin bu sayıyı girmesi yani input gibi aslında. Kişinin değişkene bir sayı ataması için veya bir değer. gets komutu kullanılır. Ama gets string yani yazı değerler içindir. Bu yüzden gets.to_i yapılır yani integar değere yani sayı değere çeviriyoruz bu şekilde. Eğer float yani kesirli sayı isteseydin gets.to_f yaparak bunu yapabilirdik. Daha sonra ikinci sayı istedik ve puts ile bunları topladık.


NOT: =begin
....

=end


Begin ve end yorum satırı gibi düşünebilirsiniz. Yani begin ile end arasındaki kodları sistem görmez.


NOT:


=begin
blabla

=end


Yaparsanız hata verir.

=begin

blabla


=end

Yaparsanız hata verneyecektir. Orta da yazmayın dediğim gibi bazen boşluklar bu tarz hatalara neden olabiliyor.


Daha sonra bu yaptığımız programı çalıştırdığımızda terminalde. Bizden sayı isteyecek 5 girelim sonra ikinciye de 6 girelim. 11 sonucunu bize verecektir.


Kod:
print "Birinci Sayı: "
sayi = gets.to_i

    print "İkinci Sayı: "
sayi2 = gets.to_i

    puts sayi.to_s + " + " + sayi2.to_s + " = " + (sayi + sayi2).to_s


Böyle bir kod yazarisek. Daha güzel görünecektir. Yani örneğin çalıştırdık 5 dedik 6 dedik 5 + 6 = 11 olarak bulacaktır. Kodları inceleyebilirsiniz. Kodlarda bazi şeyleri dikkat ederseniz string e çevirdik.



NOT: Boşluklar önemli gördüğünüz gibi " = " yaptığımızda = i bir boşluk ile koydu. "=" yapsaydık koymazdı.


Şimdi bunu yorum satırına alın. Devam edelim.


Tıpkı diğer dillerde python da da olduğu gibi sayılı işlemlerde + topla - çıkar * çarp / böl anlamına geliyor. Tabi bir değişkeni yanına atamak için yapılan + lar farklı. % ise kalan. ** ise üssü anlamına geliyor. yani 2**2 dersek bu matematik deki 2 üssü 2 şeklinde. Sonucu da 4 verir.


Kod:
[B][FONT=Courier New]puts 5 + 5[/FONT][/B]
[B][FONT=Courier New]puts 5 - 5[/FONT][/B]
[B][FONT=Courier New]puts 5 / 5[/FONT][/B]
[B][FONT=Courier New]puts 5 % 5[/FONT][/B]
[B][FONT=Courier New]puts 5 ** 5[/FONT][/B]


Yapıp çalıştırır isek bize sonuçları verecektir.


String Değerlere Bakalım


Kod:
[B][FONT=Courier New]a= " rubyci "[/FONT][/B]
[B][FONT=Courier New]
[/FONT][/B]
[B][FONT=Courier New]puts a.length()[/FONT][/B]


Bu kod aslında x e atadığımız string değerin ka. harf olduğunu bize sonucunu veriyor. Bunlara string indexleri deniliyor.


NOT: FARK ETTİNİZ DEĞİL Mİ :) BOŞLUKLARDA KARAKTER OLARAK SAYILIYOR. RUBYCİ 6 KARAKTER AMA BİZE 8 VERDİ. ÇÜNKÜ BOŞLUKLAR VAR.


length buna yarıyor dostlar.
Eğer boşlukları silerseniz 6 olararak verecektir karakteri dostlar.





Kod:
puts a.index("Y")


Altına bunu da koysaydık.
Burada bize Y nin hangi index olduğunu söylüyor sıfır olarak altda görünecektir.


Kod:
puts a.index("Z")


Yaptığımızda Z nin ikinci index olduğunu görüyoruz.


Kod:
[B][FONT=Courier New]
[/FONT][/B]
[B][FONT=Courier New]a = "rubyci"
    
    puts a[0,3][/FONT][/B]


Böyle yaptığımızda bizim için rubyci kelimesini 0 dan 3 e kadar yazacak. Çalıştırırsak rub sonucunu verir 3 ü silip 4 yaparsak ruby olur mesela.


Kod:
langs = ["ruby","php","java",3.14,5,true]
    
    puts langs[0]
    puts langs[1]


Böyle bir kod yazarsak dostlar. Langs şuna yarıyor şimdi langs değişkeninin içine bazı değerler atadık string float integar gibi. Bunları sıraladık. Programlama dilleri hep 0 dan başlar. Daha sonra alta puts ile langs koyup 0 belirttik bir de 1 yaptık. Bunu çalıştırınca ekrana alt alta ruby php yazacaktır dostlar. Eğerki gidip oraya [-1] koysaydık mesela. Sondan başlayacaktı yani true ya -1 olarak algılayacaktı 5 i -2 3.14 ü -3 olarak. Bu şekilde tepkileri yanıtları vardır.


Kod:
puts langs[-1]


Yaparsak sonucu bize true olarak çıkaracktır. True dediğim yani atadığım değer yanlış anlamayın sona ne yazdıysanız onu gösterecek ekranda bize.






Bu konu bu kadardı diğer bir konuda görüşmek üzere.


 
Son düzenleme:
19 Eki 2020
149
1
böyle bir konu neden açıldı bilmiyorum fakat yararsız olacağı kesindir. konuya girerken, zannımca programlamaya yeni başlayanlar için bu konu açıldı diye düşündüm lakin konu ruby'nin python'a benzemesini ve tekrarlarımızı gösteriyordu. bunun gösterilmesi yerine aşağıda belirtilen cheatsheet'in okunması daha iyi olur:

https://github.com/ThibaultJanBeyer/cheatsheets/blob/master/Ruby-Cheatsheet.md

böylece laf kalabalıklarına gerek kalmaz.

konu için teşekkür ediyorum.
 

ѕeleɴια

Kıdemli Üye
18 May 2018
2,620
904
ZYZZ
böyle bir konu neden açıldı bilmiyorum fakat yararsız olacağı kesindir. konuya girerken, zannımca programlamaya yeni başlayanlar için bu konu açıldı diye düşündüm lakin konu ruby'nin python'a benzemesini ve tekrarlarımızı gösteriyordu. bunun gösterilmesi yerine aşağıda belirtilen cheatsheet'in okunması daha iyi olur:

https://github.com/ThibaultJanBeyer/cheatsheets/blob/master/Ruby-Cheatsheet.md

böylece laf kalabalıklarına gerek kalmaz.

konu için teşekkür ediyorum.
Verdiğiniz link çok karışık yeni bir kişi hiç bir şey anlamaz. Teşekkürler
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.