Skip to content

Commit d3c9460

Browse files
committed
First Commit
0 parents  commit d3c9460

27 files changed

+840
-0
lines changed

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# RUBY KİTABI
2+
([rubykitabi.com](http://www.rubykitabi.com))
3+
4+
5+
Bu github deposunda kitapta yer alan, bazı uygulamalar, sıra sizde ve kod düellolarına ait kaynak kodlar bulunmaktadır. (Kitabın içeriğindeki tüm örnek ve uygulamalara yer verilmemiştir.)
6+
7+
8+
**Yasal Uyarı:** Burada yer alan tüm kodların bütün yayın hakları DikeyEksen Yayın Dağıtım, Yazılım ve Eğitim Hizmetleri San. ve Tic. Ltd. Şti.'ne aittir. Yayınevinin yazılı izni olmaksızın kısmen veya tamamen alıntı yapılamaz, kopya çekilemez ve yayınlanamaz.

bolum11/uygulama1-tumunu-bul.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#encoding: utf-8
2+
class Array
3+
def tumunu_bul
4+
dizi = []
5+
each { |i| dizi.push(i) if yield(i) }
6+
dizi
7+
end
8+
end
9+
10+
sayilar = [3, 5, 8, 10, 15, 25]
11+
12+
p sayilar.tumunu_bul { |i| i > 5 } #=> [8, 10, 15, 25]
13+
p sayilar.tumunu_bul { |i| i <10 } #=> [3, 5, 8]

bolum11/uygulama2-araba.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# encoding: utf-8
2+
3+
class Araba
4+
attr_accessor :marka, :model, :motor
5+
def initialize(*parametreler)
6+
if block_given?
7+
yield(self)
8+
else
9+
@marka = parametreler[0]
10+
@model = parametreler[1]
11+
@motor = parametreler[2]
12+
end
13+
end
14+
end
15+
16+
a1 = Araba.new('BMW', 'X500', 2.4)
17+
a2 = Araba.new do |araba|
18+
araba.marka = 'Opel'
19+
araba.model = 'Corsa'
20+
araba.motor = 1.4
21+
end
22+
23+
puts "#{a1.marka} #{a1.model} - Motor gücü: #{a1.motor}"
24+
puts "#{a2.marka} #{a2.model} - Motor gücü: #{a2.motor}"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#encoding: utf-8
2+
class Cd < Urun
3+
4+
def initialize(ad, parametreler={})
5+
@sanatci = parametreler[:sanatci]
6+
super(ad, parametreler[:stok])
7+
end
8+
9+
def stok_ogren
10+
super('CD')
11+
end
12+
13+
def dinle
14+
"#{@sanatci || 'Bilinmeyen sanatçı'}'dan, #{@ad} cd'si çalınıyor: tiri lay lay..."
15+
end
16+
end
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#encoding: utf-8
2+
class Kitap < Urun
3+
def initialize(ad, parametreler={})
4+
@yazar = parametreler[:yazar]
5+
super(ad, parametreler[:stok])
6+
end
7+
8+
def stok_ogren
9+
super('kitap')
10+
end
11+
12+
def oku
13+
"#{@yazar || 'Bilinmeyen yazar'}ın, #{@ad} kitabı okunuyor: hımm..."
14+
end
15+
end
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#encoding: utf-8
2+
require_relative 'urun'
3+
require_relative 'kitap'
4+
require_relative 'cd'
5+
6+
kitap = Kitap.new('Denemeler',
7+
yazar: 'Montaigne',
8+
stok: 100)
9+
10+
kitap.al(10)
11+
kitap.sat(20)
12+
kitap.sat(40)
13+
puts kitap.stok_ogren
14+
puts kitap.oku
15+
16+
cd = Cd.new('Vaveyla',
17+
sanatci: 'Sıla',
18+
stok: 20)
19+
20+
cd.al(30)
21+
cd.sat(55)
22+
cd.sat(25)
23+
puts cd.stok_ogren
24+
puts cd.dinle
25+
26+
kitap2 = Kitap.new('Ruby')
27+
kitap2.al(100)
28+
kitap2.sat(80)
29+
puts kitap2.stok_ogren
30+
puts kitap2.oku
31+
32+
cd2 = Cd.new('Unutulmayanlar')
33+
cd2.al(30)
34+
cd2.sat(15)
35+
puts cd2.stok_ogren
36+
puts cd2.dinle
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# encoding: utf-8
2+
class Urun
3+
def initialize(ad, stok=0)
4+
@ad = ad
5+
@stok = stok || 0
6+
end
7+
8+
def al(miktar)
9+
@stok += miktar
10+
end
11+
12+
def sat(miktar)
13+
if miktar <= @stok
14+
@stok -= miktar
15+
else
16+
puts "!!! Bu üründen stokta bulunandan daha fazla miktarda satamazsınız.\nİşlem başarısız oldu!"
17+
end
18+
end
19+
20+
def stok_ogren(urun_adi='ürün')
21+
"#{@ad} isimli #{urun_adi}'den stoklarda #{@stok} adet bulunmaktadır."
22+
end
23+
end

bolum12/uygulama-kisi-sinifi.rb

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#encoding: utf-8
2+
class Kisi
3+
def initialize(parametre)
4+
@ad = parametre[:ad]
5+
@soyad = parametre[:soyad]
6+
@cinsiyet = parametre[:cinsiyet]
7+
end
8+
9+
def tanis
10+
"Merhaba, ben #{@ad.capitalize} #{@soyad.upcase}."
11+
end
12+
13+
def calis
14+
"Çalışmayı çok isterdim, ama yapacak bir işim yok!"
15+
end
16+
end
17+
18+
class Doktor < Kisi
19+
def initialize(parametre)
20+
super(parametre)
21+
@dal = parametre[:dal]
22+
end
23+
24+
def tanis
25+
mesaj = super
26+
mesaj += " #{@dal.capitalize} dalında uzman bir hekimim."
27+
end
28+
29+
def calis
30+
"By-pass ameliyatı yapıyorum."
31+
end
32+
end
33+
34+
class Avukat < Kisi
35+
def initialize(parametre)
36+
super(parametre)
37+
@uzmanlik = parametre[:uzmanlik]
38+
end
39+
40+
def tanis
41+
mesaj = super
42+
mesaj += " #{@uzmanlik.capitalize} alanında uzman bir avukatım."
43+
end
44+
45+
def calis
46+
"Duruşmada, müvekkilimin haklarını savunuyorum."
47+
end
48+
end
49+
50+
kisi = Kisi.new( ad: 'Eren',
51+
soyad: 'Bagdat',
52+
cinsiyet: 'erkek')
53+
54+
doktor = Doktor.new( ad: 'Mehmet',
55+
soyad: 'Öz',
56+
cinsiyet: 'erkek',
57+
dal: 'kardiyoloji')
58+
59+
avukat = Avukat.new( ad: 'Ayten',
60+
soyad: 'Kara',
61+
cinsiyet: 'kadın',
62+
uzmanlik: 'icra hukuku')
63+
64+
puts kisi.tanis
65+
puts kisi.calis
66+
67+
puts doktor.tanis
68+
puts doktor.calis
69+
70+
puts avukat.tanis
71+
puts avukat.calis

bolum3/sira_sizde_1-faktoriyel.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# encoding:utf-8
2+
3+
def faktoriyel(n)
4+
sonuc = 1
5+
6+
while n > 1
7+
sonuc = sonuc * n
8+
n = n - 1
9+
end
10+
11+
puts "İşlemin sonucu: #{sonuc}"
12+
end
13+
14+
faktoriyel(5)
15+
faktoriyel(10)
16+
faktoriyel(15)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# encoding:utf-8
2+
diller = ["HTML", "CSS", "JavaScript", "Ruby", "Ruby on Rails", "Sinatra"]
3+
toplam_yeterlilik = 0
4+
sayi = 0
5+
6+
while sayi < diller.length
7+
8+
print "#{diller[sayi]} dilini kullanabiliyor musunuz?(E/H): "
9+
if gets.chomp.upcase == 'E'
10+
toplam_yeterlilik = toplam_yeterlilik + 1
11+
end
12+
13+
sayi = sayi + 1
14+
end
15+
16+
if toplam_yeterlilik >3
17+
puts "Tebrikler! Mülakata katılmaya hak kazandınız."
18+
else
19+
puts "Biz, sizi ararız(emin olun)!"
20+
end

0 commit comments

Comments
 (0)