• Hakkımızda
  • Bize Katıl
  • Sizden Gelenler
  • İletişim
Yazılım Karavanı | Bilişim - Teknoloji - Blog
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar
No Result
View All Result
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar
No Result
View All Result
Yazılım Karavanı | Bilişim - Teknoloji - Blog
No Result
View All Result
Home Ruby

Ruby Diziler (Arrays) 2. Kısım

Emre İnaç by Emre İnaç
Nisan 14, 2018
in Ruby
4 min read
0
Ruby Veri Tipleri (Data Types)
WhatsApp'ta PaylaşTwitter'da PaylaşLinkedIn'de PaylaşTelegram'da Paylaş

Bu kısımda Ruby programlama dilinde dizilerde nasıl eleman seçebiliriz ,seçtiğimiz elemanlar üzerinde nasıl değişiklik yapabiliriz ve dizilerde yineleme işlemlerini nasıl kullanabiliriz konuları üzerinde inceleme yapacağız. Dizilerde seçim işlemi genellikle bir blok tanımlayarak yapılır.

DİZİLERDE ELEMAN SEÇME
Dizilerde eleman seçme işlemlerini 2 farklı yolla yapılır. Bu yollardan birinde orijinal dizimizi korurken, diğerinde dizinin üzerine yazma yolu ile değişiklikler yapacağız.

DEĞİŞİKLİK YAPILMADAN SEÇME
Bu yolla yapılan seçme işlemi sonunda yeni bir dizi oluşturmuş oluruz.Ancak orijinal dizi olduğu şekilde korunur.

dizi = [1, 2, 3, 4, 5, 6]

şeklinde bir dizi tanımlanmış olsun.

dizi.select { |a| a > 3 }
#=> [4, 5, 6]
dizi.reject { |a| a < 3 }
#=> [3, 4, 5, 6]
dizi.drop_while { |a| a < 4 }
#=> [4, 5, 6]
dizi
#=> [1, 2, 3, 4, 5, 6]

select, reject ve drop_while metodlarini dizimiz üzerinde uyguladık ve sonuçları yukarıda gördüğümüz şekilde olucaktır.Ancak son işlemde dizimizi tekrar çağırdık ve hiç bir değişikliğe uğramadığını gördük. Bu sebepten ötürü seçme işleminde kullandığımız bu metodlara yokedici olmayan(non-destructive) metotlar denilir.

DEĞİŞİKLİK YAPILARAK SEÇME
Bu durumda yapılan değişiklikler yeni bir dizi oluşturmaz ama mevcut olan orijinal dizinin üzerine yazılır ve ancak bu şekilde yeni bir dizi oluşturmuş oluruz.
Bir önceki durumumuzda kullandığımız select ve reject metotlarının bu duruma uyarlanmış halleri olan select! ve reject! kullanılan dizi üzerinde kalıcı değişikliğe sebep olur.Ayrıca delete_if ve keep_if gibi 2 farklı metottan da bu kısımda bahsedebiliriz.

dizi = [1, 2, 3, 4, 5, 6]

Yine yukarıdaki şekilde bir dizi tanımlayıp, metotlarımızı bu dizi üzerinde kullanalım.

dizi.delete_if { |a| a < 4 }
#=> [4, 5, 6]
dizi.keep_if { |a| a < 4 }
#=> [1, 2, 3] 

Çıktılarımızda görüldüğü üzere bu iki metot aynı select ve reject gibi birbirine zıt mantıkla çalışıyorlar ve geri değer döndürüyorlar.

DİZİLERDE YİNELEME(İTERASYON) İŞLEMLERİ
Dizilerde basitçe yineleme işlemleri için each ve each_with_index metotlarını kullanırız.

dizi = [2, 3, 5, 7, 9] 

Yukarıdaki dizi üzerinde each ve each_with_index metodları ile bir takım işlemler yaparak yineleme nasıl yapılıyor inceleyelim.

Dizinin elemanlarının ortalamasını bulma

toplam = 0
dizi.each do |e|
  toplam += e
end
ortalama = toplam / dizi.size.to_f

Yukarıda yaptığımız işlemde dizimizdeki her elemanı tek tek toplayıp sonra da toplamı dizinin eleman sayısına bölerek bir sonuç elde ettik. Bu ortalama bulma işlemi sonucunda aşağıdaki sonuca ulaşırız

toplam       #=> 26
ortalama     #=> 5.2

Each ile yaptığımız yineleme işlemini tek satırda da yapabilirdik.

 toplam = 0
 dizi.each { |e| toplam += e }
 ortalama = toplam / dizi.size.to_f

Kodumuzu çalıştırdığımızda sonucun aynı olduğunu göreceğiz.

Dizinin çift indisli elemanlarini bulup ekrana yazdırma

 dizi.each_with_index do | e, i |
   if i % 2 == 0
     print e
   end
 end

Yukarıdaki kodumuz da dizimizin indisleri ile birlikte bir yineleme işlemine sokulmasını sağlıyor.Yineleme bloğumuz içinde yapılan işlemde eğer elemanin indisi bir çift sayı ise onu ekrana yazdıran kodu görüyoruz. Tahmin edildiği üzere çıktımız:
#=> 259
şeklinde olacaktır.

MAP METODU KULLANIMI
map metodu, dizilerde elemanlar üzerinde değişiklik yapmak için kullanılır.İşlem sonrasında yeni bir dizi oluşturulur ancak orijinal dizi olduğu gibi kalır. Eleman seçerken kullandığımız, select ve reject de olduğu gibi map metodunun da yokedici şekli mevcuttur, aynı şekilde map! metodu da mevcut orijinal dizinin üzerine yazarak işlemi gerçekleştirir.

dizi = [1,3,5,7,9]
dizi.map { |a| a ** 2 }          #=> [1,9,25,49,81]
dizi   #=> [1,3,5,7,9]
dizi.map! { |a| 2*a }           #=> [2,6,10,14,18]
dizi   #=> [2,6,10,14,18]

map metodu kullanımı yukarıdaki şekilde olacaktır ve bahsettiğimiz gibi map da orijinal dizi korunup yeni bir dizi oluşturulurken, map! da dizi üzerinde yapılan değişiklikler kalıcı olur.

NOT: Ruby programlama dilinde, diziler ile kullanılan daha bir çok method vardır. Size verebileceğim tavsiye bu metodları ezberlemeye kalkışmamanız.Onun yerine aşağıda vereceğim bağlantı adresinden Ruby’nin kütüphanesine girip diziler ile ilgili tüm metodlara gerektiğinde ordan ulaşmanız ve ya internet bağlantısı olmaması durumunda bir kereliğe mahsus girip bir metin dosyasına kopyala – yapıştır yaparak ihtiyaç anında ordan erişmenizdir.
Bağlantı adresi : https://docs.ruby-lang.org/en/2.5.0/Array.html

emreinac

Tags: ArraysEmre İNAÇRuby
SendTweet2ShareShare
Önceki Gönderi

Ruby Diziler (Arrays) 1. Kısım

Sonraki Gönderi

Ruby İkili Arama Ağacı (BST)

İlgili Yazılar

Ruby Programlama Dili Hakkında

Ruby İkili Arama Ağacı (BST)

by Ali Murat Çevik
Nisan 22, 2018
0

class BosDugum def to_a [] end def include?(*) false end def ekle(*) false end alias_method :&lt;&lt;, :ekle def incele end...

Ruby Veri Tipleri (Data Types)

Ruby Diziler (Arrays) 1. Kısım

by Emre İnaç
Nisan 14, 2018
0

Ruby de diziler; herhangi bir nesnenin, tamsayı indisli koleksiyonlarıdır.  Dizilerde indisler, C ve JAVA dillerinde olduğu gibi 0 ‘dan başlar....

Ruby Veri Tipleri (Data Types)

Ruby Döngüler (Loops)

by Emre İnaç
Mart 22, 2018
0

Duruma göre bazen bir metni 10 kez yazdırmak isteyebilirsiniz. Bunu "print" komutu ile yapabilirsiniz ancak döngü kurarak yapmak daha basit...

Ruby Veri Tipleri (Data Types)

Ruby Kontrol Yapıları

by Emre İnaç
Mart 20, 2018
0

Ruby diğer modern yazılım dillerine göre çok daha basit bir kontrol yapısına sahiptir. Açıklanan tüm ifadeler geriye bir değer döndürür....

Ruby Veri Tipleri (Data Types)

Ruby Değişkenler ve Sabitler (Variables & Constants)

by Emre İnaç
Mart 17, 2018
0

Ruby'de bir değişken, adının başındaki karakterler ile ayırt edilebilir. Değişken adı belirlerken karakter sınırlaması yoktur. 4 adet değişken türü mevcuttur....

Next Post
Ruby Programlama Dili Hakkında

Ruby İkili Arama Ağacı (BST)

Samsun Bilgi Güvenliği Zirvesi

Samsun Bilgi Güvenliği Zirvesi

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

  • Popüler
  • Yorumlar
  • En Yeniler
Sıfırdan Yolo v4 Tiny Özelleşmiş Nesne Tespiti (Custom Object Detection)

Sıfırdan Yolo v4 Tiny Özelleşmiş Nesne Tespiti (Custom Object Detection)

Temmuz 26, 2021
B Ağaçları (B Trees)

B Ağaçları (B Trees)

Ağustos 24, 2020
Splash Screen Yapımı #Flutter

Splash Screen Yapımı #Flutter

Mayıs 25, 2020
Gini Index Kullanılarak Karar Ağacının (Decision Tree)  Oluşturulması

Gini Index Kullanılarak Karar Ağacının (Decision Tree) Oluşturulması

Ağustos 20, 2020
2020 ‘nin En Güncel ve Tehlikeli Zararlı Yazılımları

2020 ‘nin En Güncel ve Tehlikeli Zararlı Yazılımları

6
Magento 2 Detaylı Kurulum & Hatalar

Magento 2 Detaylı Kurulum & Hatalar

5
Flutter’da TFLite Kullanımı

Flutter’da TFLite Kullanımı

4
Bubble Sort (Kabarcık Sıralama) Algoritması

Bubble Sort (Kabarcık Sıralama) Algoritması

2
VGG-19 Transfer Learning ile Görüntü Sınıflandırma

VGG-19 Transfer Learning ile Görüntü Sınıflandırma

Eylül 12, 2022
SOC Sistemler Üzerine Faydalı Notlar

SOC Sistemler Üzerine Faydalı Notlar

Eylül 2, 2022
Python NLTK Kütüphanesi İle Basit Bir Chatbot Yapımı

Python NLTK Kütüphanesi İle Basit Bir Chatbot Yapımı

Ağustos 23, 2022
Makine Öğrenimi Nedir?

Makine Öğrenimi Nedir?

Ağustos 4, 2022

Reklam

Yazılım Karavanı | Bilişim – Teknoloji – Blog

Bilgi Teknolojileri alanına meraklı herkesin buluşma noktası!

No Result
View All Result
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar

© 2020 Yazılım Karavanı Kaynak gösterilmesini rica ederiz.