Ruby. Prof.Dr.Timur Karaçay Başkent Üniversitesi

Benzer belgeler
232 DIZIN. attr, 65 attributes, 65

Mantıksal İşlemler. 7.1 true, false, nil

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

Döngüler. Tablo 15.1: Ruby de Başlıca Döngü Yapıları

Operatörler. 6.1 Operatör Nedir?

1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

Nesne Yönelimli Programlama

I Java Veri Yapıları 1

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır.

çindekiler 3 Python Programlarn Yürütme Kaynak Program... 24

Ruby Nedir? 1.1 Amaçlar. 1.2 Ruby nin Yapısal Sıradüzeni

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

(Sözlük, dictionary, birleşik array, map)

Module ve Mixin Module nedir? 17.2 Neden Module?

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Java da Program Denetimi ve Operatörler

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

OPERATÖRLER Alıştırmalar

AOSB 2017 EĞİTİM PROGRAMI

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

1 JAVASCRIPT NEDİR? 1

Nesne Tabanlı Programlama

İfadeler bir programlama dilinde hesaplamaları belirtmede temel araçtır. İfadelerin değerlendirmesini anlamak için,

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

Chapter 8. Komut düzeyi kontrol yapıları ISBN

Ruby Sınıfları. 3.1 Ruby Yorumlayıcı Bir Dildir

1 PROGRAMLAMAYA GİRİŞ

10 LU SAYISAL SİSTEMİ İLE 2 Lİ SAYISAL SİSTEMİ ARASINDA ÇEVİRİM UYGULAMASI

Üst Düzey Programlama

Bölüm 7. İfadeler ve atamalar ISBN

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

İçindekiler. Glossary

İnternet Programcılığı Dersi 2.Dönem Ders Notu

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

Ajanda. Ruby Betik Dili ve Ruby on Rails. Dr. Erek Göktürk. IdentraYazılım ve Donanım Çözümleri. identra.com.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

1. LabVIEW ile Programlama

PASCAL PROGRAMLAMA DİLİ YAPISI

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Aritmetik Operatörleri Hemen her programlama dilinde olduğu gibi java dilinde de aritmetik işlemler yaparken aşağıdaki operatörleri kullanırız:

1 NEDEN PROGRAMLAMA ÖĞRENMELIYIZ?

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?

Denetim Yapıları Program Akışının Yönlendirilmesi. Şekil 11.1: Akışı Koşullu Yönlendirme

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

İçindekiler. KISIM 1 Temel Programlama 1. Bölüm 1: Programlama ve Python 3. Bölüm 2: Değişkenler, İfadeler ve Deyimler 13. Giriş 4

PROGRAMLAMAYA GİRİŞ DERS 2

Operatörler. İnternet Programcılığı 2. Operatörler

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

BİLG Dr. Mustafa T. Babagil 1

BÖLÜM 3 OPERAT A ÖRLER

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

Mantıksal Kontrol ve Döngü Komutları

5. Atlama, Karar ve Çevrim Kontrol Deyimleri

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

BLM 111 Algoritma ve Programlama I Güz 2018

Python ile Programlamaya Giris

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

HSancak Nesne Tabanlı Programlama I Ders Notları

Bölüm 4 C de Program Kontrolü

Standart Veri Tipleri

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

BİL-142 Bilgisayar Programlama II

ALGORİTMA VE PROGRAMLAMA I

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI


if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

Bölüm 8. İfade Seviyesindeki Kontrol Yapıları ISBN

C Programlama Dilininin Basit Yapıları

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Veri Yapıları ve Algoritmalar

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

Bölüm 7. Deyimler ve Atama ifadeleri ISBN

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

ALGORİTMA VE PROGRAMLAMA I

Karşılaştırma İşlemleri ve Koşullu İfadeler

Transkript:

Ruby Prof.Dr.Timur Karaçay Başkent Üniversitesi Eylül 2014

2

Aren e ve Altan a

ii Önsöz Ruby dilinin yaratıcısı Yukihiro Matsumoto, onu kısaca Matz diye çağırırlar, yarattığı dili şöyle anlatıyor: Ruby yi yaratmadan önce bir çok dili biyordum, ama hiçbirisi benim için tatmin edici değildi. O diller benim beklentilerime göre çirkin, ağır, ya çok karmaşık ya da çok basit idiler. Bir programcı olarak beni tatmin edecek kendi dilimi yaratmaya karar verdim. Bir dilin hitap edeceği kimseleri biliyorum; onlara ben de dahilim. Dünyada pek çok programcının benim gibi düşündüğünü hayretle gördüm. Şimdi, onlar, Ruby yi keşfettikleri ve onunla program yazdıkları için mutlu görünüyorlar. Ruby dilini yaratırken, bütün enerjimi, onun programlamayı kolaylaştıran ve hızlandıran bir dil olmasına harcadım. Nesne tabanlı olma özelikleri dahil, bütün nitelikleri benim gibi sıradan programcıların beklentilerini karşılayacak biçimde tasarlanmıştır. Programcıların çoğu onun zarif ve kolay kullanılan bir dil olduğunda hemfikirdir. O nedenle, Ruby ile program yazmaktan zevk almaktadırlar.

İçindekiler Glossary 1 1 Ruby Nedir? 1 1.1 Amaçlar..................................... 1 1.2 Ruby nin Yapısal Sıradüzeni.......................... 1 1.3 Ruby Nedir?.................................. 2 1.4 Ruby nin Nitelikleri?.............................. 3 1.5 Ruby Gerçek Nesne Tabanlı Dildir...................... 5 1.6 Ruby un Uygulama Alanları.......................... 5 1.7 irb........................................ 6 1.8 Ruby Programları............................... 6 2 Temel Bilgiler 7 2.1 Nesne Tabanlı Programlama.......................... 7 2.2 Sınıf ve Nesne.................................. 8 2.3 Ata ve Oğul................................... 8 2.4 Veri ve Veri Yapıları.............................. 10 2.5 Algoritma ve Fonksiyon............................ 11 2.6 Veri Yapıları Üzerinde İşlemler........................ 11 2.7 Veri Yapısı Oluşturma............................. 12 2.8 Derlenen ve Yorumlanan Diller........................ 13 2.9 Hatalar..................................... 14

iv 3 Ruby Sınıfları 15 3.1 Ruby Yorumlayıcı Bir Dildir.......................... 15 3.2 Ruby Kabuğu.................................. 16 3.3 Gömülü Metotlar................................ 16 3.4 Kaynak Program................................ 17 3.5 Ruby Kaynak Programlarını Koşturma.................... 18 3.6 Metotlar..................................... 20 3.6.1 Metot Parametreleri ve Yerel Değişkenler.............. 21 3.6.2 Metot Çağırma............................. 22 3.7 Sınıf Bildirimi.................................. 22 3.8 Ruby de Sınıflar ve Nesneler.......................... 23 3.9 Sınıftan Nesne Yaratma............................ 24 3.10 Singleton.................................... 29 3.11 Sınıfların Sıradüzeni.............................. 30 3.12 Altsınıf Bildirimi................................ 31 3.13 Baskılama (overriding)............................. 36 3.14 Uygulamalar.................................. 37 3.14.1 initialize................................. 37 3.14.2 Baskılama (overriding)......................... 39 3.15 Üst Sınıftaki Metodu Çağırma........................ 40 3.16 Operatörler................................... 41 3.17 Yerleştirme................................... 42 4 Metotlar 43 4.1 Metot Sözdizimleri............................... 44 4.1.1 Parametresiz Metot Bildirimi..................... 44 4.1.2 Parametreli Fonksiyon Bildirimi................... 44 4.1.3 Parametrelere Öntanımlı Değer Atama................ 45 4.1.4 Return Değeri............................. 46 4.1.5 Değişken Sayıda Parametre...................... 47 4.1.6 Çoklu Çıktıyı Array Olarak Elde Etme................ 48 4.2 Sınıf Metotları................................. 48 4.3 Anlık Metotlar................................. 50 5 Değişkenler 51 5.1 Atama...................................... 51 5.1.1 Metot Çağırma............................. 53 5.2 Ruby de Değişken Türleri........................... 54

v 5.3 Global Değişkenler............................... 54 5.4 Sınıf Değişkenleri................................ 56 5.5 Anlık Değişkenler................................ 57 5.5.1 Verici (setter) Metotlar........................ 60 5.5.2 Alıcı (getter) Metotlar......................... 61 5.5.3 initialize metodu............................ 62 5.5.4 Kapsülleme............................... 63 5.5.5 Nitelem (attribute) Metotları..................... 65 5.6 Yerel değişkenler................................ 68 5.7 Değişkenimsiler (Pseudo variables)...................... 70 5.7.1 Geçerlik Bölgesini Belirleme...................... 72 6 Operatörler 73 6.1 Operatör Nedir?................................ 73 6.2 Aritmetik Operatörleri............................. 74 6.2.1 Birli Operatörler............................ 74 6.2.2 İkili Operatörler............................ 74 6.2.3 Ruby da Bölme İşlemi......................... 74 6.2.4 Üst Alma (kuvvet)........................... 77 6.3 Atama Operatörleri.............................. 77 6.3.1 Artım ve eksim Operatörleri...................... 78 6.4 Karşılaştırma Operatörleri........................... 79 6.5 Paralel Atamalar................................ 80 6.5.1 Dönüştürücüler............................. 80 6.5.2 Mantıksal Operatörler......................... 82 6.6 Tip Dönüştürücüler............................... 82 6.6.1 Integer den String e Dönüşüm..................... 82 6.6.2 String den Intege e Dönüşüm..................... 83 6.6.3 Bitsel Operatörler........................... 83 6.6.4 Basamak Kayması (shift)....................... 84 6.7 Koşullu Operatör................................ 86 6.8 Operatörin Öncelik Sıraları.......................... 86 7 Mantıksal İşlemler 87 7.1 true, false, nil................................. 87 7.1.1 Mantıksal İşlemler (boolean operations)............... 90 7.2 Karşılaştırma Operatörleri........................... 92 7.3 Alıştırmalar................................... 93

vi 8 Sayılar 97 8.1 Ruby de Sayısal Tipler............................. 97 8.2 Numeric Sınıfı................................. 98 8.2.1 Numeric Sınıfının Başlıca Metotları.................. 98 9 Integer Sınıfı 103 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar................. 103 9.2 Integer <==> Float Dönüşümleri...................... 107 9.3 Sayıların Farklı Tabanlara Göre Yazılması.................. 108 9.3.1 hexadecimal: 16 tabanlı........................ 109 9.3.2 min, max bulma............................ 110 9.3.3 Bignum................................. 110 10 Karmaşık Sayılar 111 10.1 Karmaşık Sayı Yaratma............................ 111 10.2 Alıştırmalar................................... 115 11 Denetim Yapıları 117 11.1 Program Akışının Yönlendirilmesi....................... 117 11.1.1 if... Yönlendiricisi........................... 118 11.1.2 Ard arda if............................... 121 11.2 if... then... denetimi............................. 121 11.2.1 if... else... Yapısı........................... 123 11.2.2 İçiçe elsif................................ 127 11.2.3 if değiştiricileri............................. 129 11.2.4?: operatörü............................... 130 11.3 Alıştırmalar................................... 131 11.4 case yönlendirmesi............................... 136 12 Array 137 12.1 Array Yaratma................................. 137 12.1.1 Array Kurucuları............................ 138 12.1.2 Array.new() Kurucusu........................ 139 12.1.3 String den Array Yaratma....................... 140 12.1.4 Farklı veri Tiplerinden Oluşan Array................. 141 12.2 Erişim...................................... 141 12.2.1 Array Öğelerine İndisle Erişim.................... 141 12.3 Altarray..................................... 142

vii 12.3.1 Array Hakkında Bilgi (meta Bilgiler)................. 143 12.4 Array Değiştirme................................ 144 12.4.1 Arraye Bileşen Ekleme......................... 145 12.4.2 «Operatörü.............................. 145 12.4.3 Bileşen Yoketme............................ 146 12.5 Array Üzerinde Gezinme............................ 149 12.5.1 Öğe seçme................................ 150 12.6 Array Sınıfının Başka Metotları........................ 150 13 String 155 13.1 String İşlemleri................................. 155 13.2 Ruby de String................................. 157 13.3 Ruby de Karekterler.............................. 157 13.4 Ruby de String Yaratma............................ 157 13.5 Stringleri Birleştirme.............................. 161 13.6 Altstring..................................... 161 13.6.1 Ruby de Altstring İşlemleri...................... 161 13.7 Stringlerin Sınırları............................... 165 13.7.1 Değişebilir String............................ 167 13.8 Program içinde Açıklamalar.......................... 168 13.9 Integer <==> String Dönüşümleri...................... 170 14 hash 173 14.1 Hash Sınıfı.................................... 173 14.2 Sözlük Yapısı Üzerinde İşlemler........................ 175 14.3 Sözlük Yaratma................................. 175 14.3.1 Array ile Hash Yapılarının Karşılaştırılması.............. 176 14.4 Hash Ambarına Öğe Koyma.......................... 176 14.5 Sözlük Yapısının Metotları........................... 177 14.5.1 Anahtarlara Erişim........................... 178 14.5.2 Değerlere Erişim............................ 178 14.5.3 Kümesel İşlemler............................ 178 15 Döngüler 183 15.1 while döngüsü.................................. 184 15.1.1 Sonsuz Döngü.............................. 187 15.2 until....................................... 188 15.2.1 until Döngüsünün Değişik Biçemi................... 191

viii 15.2.2 unless döngüsü............................. 192 15.2.3 do-while Döngüsü........................... 192 15.3 for Döngüsü.................................. 195 15.3.1 Aralık (range) İçinde For Döngüsü.................. 195 15.3.2 Array üzerinde for döngüsü...................... 198 15.4 Enumerators.................................. 199 15.5 each index................................... 200 15.6 Sıralama..................................... 200 16 Iterator 201 16.0.1 clone döngüleri............................. 204 16.0.2 Başka Kullanışlı Gezginler....................... 206 16.1 Alıştırmalar................................... 209 16.2 Alıştırmalar................................... 212 17 Module ve Mixin 215 17.1 Module nedir?.................................. 215 17.2 Neden Module?................................. 215 17.3 Module..................................... 216 17.3.1 Module Tanımı............................. 217 17.4 mixin...................................... 220 17.5 Aduzayları.................................... 220 17.6 index....................................... 220 17.7 include...................................... 222 17.7.1 Modül den Nesne Üretilemez..................... 222 17.8 Sınıf ile Modül Karşılaştırması........................ 222 17.9 Çağrı Yöntemleri................................ 222 17.10load....................................... 222 17.11require...................................... 222 17.12include...................................... 222 17.13extend...................................... 222 17.14Uygulamalar.................................. 224