Ruby Programlama
Giriş
Ruby, nesneye yönelik, dinamik, reflektif bir programlama dilidir. Ruby dili, Yukihiro Matsumoto tarafından Japonya'da tasarlanmaya ve geliştirilmeye başlanmıştır.
Özellikler
· 4 farklı tipte değişken tanımlanabilir: Global, class, instance ve local
· Her şey bir ifade ve aynı zamanda obje
· Hata ve istisna yönetimi
· Garbage collection (tr. Çöp toplama)
· Yüksek taşınabilirlik
· Rasyonel sayılar, çok büyük sayılar ile çalışabilme
Sözdizimi ve yapısı
Ruby söz dizimi yapısı çok basittir diğer programlama dillerine nazaran.Sanki bir insanla konuşuyormuşcasına esnek bir yapıya sahiptir.Diğer programlama dillerindeki gibi bazı katı diye Hitap ettiğimiz kuralları pek yoktur.Buda haliyle esnek olmasını sağlamaktadır.Ayrıca Ruby yorumlayıcısı birçok işletim sistemi için yazılmıştır. Hemen hemen tüm işletim sistemlerinde çalışabilir.
Kurulum
Windows kurulum için :
1 . https://www.ruby-lang.org/tr/downloads/ buradaki linkten son sürümü veya kurmak istediğiniz sürümü indirin.
3 . Yukarıdaki tüm bileşenleri seçiyoruz.Sonra kurulumun tamamlanmasını bekliyoruz.
Burada ise Ruby başarılı bir şekilde yüklenmişmi yüklenmemiş mi onu görüyoruz.
Kurulum işlemi bu kadar.
Not : Bu işlemler konsoldan çalışacak arkadaşlar içindi.Kodunuzu yazıp ‘.rb’ uzantılı olacak şekilde kaydettikten sonra komut satırından bulunduğu dizine ulaşıp ruby ornek.rb demeniz yeterli çıktı alabilmeniz için.
Artık Programlama kısmına girebiliriz.
Değişken tanımlamada tür belirtmenize gerek yok ancak sadece birbiri türünden çevirmelerde belirli kodları yazmanız gerekiyor.
Sayi= 5 dersek eğer tam sayı türünde sayi değişkeni tanımlamış 5 değerini buna atamış oluruz.Kendi otomatik algılıyor yani.
Örnek :
s1 =5
s2 = 12
puts s1 + s2
s2 = 12
puts s1 + s2
Çıktı olarak : 17 sonucunu görürüz.
Yorum satırları :
# =begin =end yorum satiri başlangıc ve bitişini verir bize.
Örnek :
=begin
s1 =5
s2 = 12
puts s1 + s2
s2 = 12
puts s1 + s2
=end
Bu aradaki işlemleri yorum satırı olarak görür ve program buraları okumadan atlar.
Tür öğrenme :
Eğer tanımaladığınız değişkenin hangi türde olduğunu bulmak istiyorsanız şayet
Değişken.class demeniz yeterli
Örnek :
puts "ebubekir".class
puts 1.234.class
String ,Float sonucu döner.
Kontrol Yapıları
if(yas >=4 ) && (yas <=6)
puts "You are in kindergarten"
elsif
puts "You're in Middle School"
put "Yeah"
else "Stay Home"
end
if yapısına bir örnektir buda şart sağlanırsa ilk blok şart sağlanmazsa elsif bloğu oda sağlanmazsa en son blok çalışır ve çıkar.
Başka bir kullanım
Note :
a<=> b
if a < b then return -1
if a = b then return 0
if a > b then return 1
if a and b are not comparable then return nil
Diğer bir kullanıma örnek :
x =12
puts (x <= 50 ? "Yasli" : "Genc")
Daha niceleri....
Mantıksal Operatörler
puts "true && false = " + (true && false).to_s
puts "true || false = " + (true || false).to_s
puts "!false = " + (!false).to_s
Örneğin burada .to_s çevirimi yapmamız gerekti yoksa çalışmazdı kodumuz.
Diğer kullanım yöntemi biraz farklı olsada mantık aynıdır.
print("1.sayiyi giriniz :")
s1= gets.to_i
print("2.sayiyi giriniz :")
s2= gets.to_i
begin
cevap = s1/s2
rescue
puts "0'a bölme hatasi"
exit
end
puts "#{s1} / #{s2} = #{cevap}"
rescue ingilizcedeki anlamında(kurtarma) olduğu gibi bizi programı sıkıntıya sokacak bir durumda yapmasını istediklerimizi bu bloğa yazarız.
Kullanıcıdan değer alma
print "Selam Yazısı giriniz"
selam = gets.chomp
case selam
when "Fransizca" ,"fransizca"
puts "Bonjour"
when "Ispanyolca" ,"ispanyolca"
puts "Hola"
exit
else
put "Hello"
end
Bu örneğimizde ise kullanıcıdan aldığımız hangi dilde selam yazısını istiyorsa basit bir mantıkla , aldığımız selam değişkenizdeki değeri hangi dili girdiyse kullanıcı onun karşılığını bizim tanımladığımız çerçevedeki dillerdeki karşılıklarını yazdırıyoruz.
Döngüler
1 ) Loop Do
x=1
loop do
x +=1
next unless (x%2) ==0
puts x
break if x >=10
end
loop do döngüsü ile 2 – 4 - 6 -8 -10 sayılarını yani mod olarak 2 ‘ye bölümünden kalanı sıfır olan sayıları alır.
While
while şart [do]
kodend
Örnek :
x=0
while x<5 do
x=x+1
puts "#{x}"
end
Çıktı :
1
2
3
4
5
Şeklinde çıktı verir
Diğer kullanımı
begin
kodend while şart
begin
x=x+1
puts "#{x}"
end while x<5
Çıktı :
1
2
3
4
5
Şeklinde çıktısını verir.Yukarıdaki ile aynı işi yapar.
Until
until şart [do]
kodend
Örnek
x =0
until 5 < x do
puts("#{x}" )
x +=1;
end
Çıktı :
1
2
3
4
5
For Döngüsü
for değişken in ifade[ do]
kodend
Örnek :
for i in 0..5
puts "Değer = #{i}"
end
Burada puts’un içine sayı i değişkeninin yazılmasını istiyorsak eğer #{değişken} şeklinde tanımlarız.
Başka bir kullanımı ise
(0..5).each do |i|
puts "Değer = #{i}"
end
Buda aynı sonucu verir.
Break ifadesi :
for i in 0..10
if i > 2 then
break
end
puts "Değerler #{i}"
end
Buradaki işlem ise 0’dan 10 a kadar dönecek olan bir döngü tanımladık ancak bu döngümüz i değeri 2 den küçük olduğu sürece dönecektir.Yani şu durumda 0,1,2 olur.
Next ifadesi :
for i in 0..10
if i < 2 then
next
end
puts "Değerler #{i}"
end
Buradada 2 den büyük olduğun sürece işlemleri yürüt.2den küçük değerler için çalışma demiş olduk bir neticede.
Diziler
Dizi oluşturmanın diğer dillerde olduğu gibi Ruby’dede birden fazla yolu var.
1. Dizi = Array.new(20) <- 20 boyutlu dizi oluşturur.
2. Sayilar = Array[1,2,3,4,5]
3. Rakamlar = Array(0..9)
Örnek :
sayilar = [1,2,3,4,5]
toplam = 0
sayilar.each {|a| toplam+=a }
Örnek :
meyveler = ["elma","armut","şeftali"]
puts meyveler
Çıktı :
elma
armut
şeftali
Fonksiyonlar
Programlama parçacıklarının ve ifadelerin bir araya toplandığı şeydir method.Yani sadece bir sonuc dönderen ve aldığı parametreler üzerinde işlem yaparak , kullanıcının bunu ileride defalarca kullanabilmesini sağlayarak kod kalabalıklığını ve programın okunurluğunu artıran yapılardır düz mantık olarak fonksiyonlar.Örnek vermek gerekirse ;
Herhangi bir çalışan günde binlerce imza atması gerekiyor diyelim kağıda devlet idaresinde , bu kullanıcı ne yapıyor her seferinde uzun uzun kalemle kağıda imza atmaktansa ne yapıyor gidip kaşe alıyor imzasının aynısını oraya yaptırıyor ,bu sayede de uzun uzun imza atmaktan kurtuluyor.Tek dokunuş ile o kişiyi o imza atma zahmetinden kurtarıyor işte buda tam olarak bu işi yapıyor.
def sayi_ekle(s1,s2)
s1+s2
end
puts sayi_ekle(3,4)


Yorumlar
Yorum Gönder