Forumlar > Atölye > Yazılım Geliştirme (Kompozisyon Nedir?)
Beceriksiz_Penguen kullanıcısının resmi

Beceriksiz_Penguen

Kayıt: 25/12/2009
WWW

Kompozisyon Nedir?

Arkadaşlar bu adreste Kompozisyon konusu iki örnekle anlatılmış. Ancak ikinci örnek kafamı karıştırdı. Bu konuyu birkaç örnekle açıklamanız mümkün mü! acaba?

http://yzgrafik.ege.edu.tr/~tekrei/dersler/bbgd_p/ch03.xhtml#auto3

 
Top
Melen kullanıcısının resmi

Melen

Kayıt: 18/11/2006
WWW

Re: Kompozisyon Nedir?

Tam anlamadım ama birinde fonksiyon argümanı olarak direk fonksiyonu yazmış, diğerinde ise değişkene tanımlayıp yazmış. İkisi arasında pek bi fark yok. Yanlış değişkene tanımladığımızda aynı şeyi tekrar yazmaktansa değişkeni gireriz...

Top
istihza kullanıcısının resmi

istihza

Kayıt: 26/12/2006
WWW

Re: Kompozisyon Nedir?

Diyelim ki şöyle bir fonksiyon tanımladık:

def cift_bas(mesaj):
    print mesaj, mesaj

Bu fonksiyon çalıştırıldığında "mesaj" parametresi ekrana iki kez yazılacaktır. Mesela:

cift_bas("istihza")

Bu kodun çıktısı şöyle olur:

istihza istihza

Gördüğünüz gibi, "cift_bas()" fonksiyonuna verdiğimiz "istihza" parametresi ekrana iki kez yazdırılıyor...

Yukarıdaki kullanım, tanımladığımız fonksiyonun en basit kullanımıdır. Biz burada fonksiyonumuzu bir karakter dizisi ile birlikte kullandık ("istihza"). Ama eğer istersek fonksiyonumuza parametre olarak karakter dizisi yerine başka bir fonksiyon da verebiliriz. Mesela:

toplanacak = [2, 4, 6, 8]

cift_bas(sum(toplanacak)) 

Bu kodlar şöyle bir çıktı verir:

20 20

Burada öncelikle cift_bas() fonksiyonu içindeki sum(toplanacak) fonksiyonu işleniyor. sum(toplanacak) fonksiyonu "20" sonucu verir, çünkü "toplanacak" adlı listedeki sayıların toplamı 20'dir... cift_bas() fonksiyonu ise bu "20" sonucunu alıp ekrana çift basar...

Şimdi bağlantısını verdiğiniz sayfadaki o ikinci örneğe bakalım:

iki_kere_yaz(max(3, 1, abs(-11), 7))

Bu kodu kendi fonksiyonumuza uyarlarsak şöyle olur:

cift_bas(max(3, 1, abs(-11), 7))

Burada iç içe üç adet fonksiyon kullanılmış. Önce en içteki "abs(-11)" fonksiyonu işletiliyor. Bu işlemin sonucu "11" olacaktır. Çünkü "abs()" fonksiyonunun görevi bir sayının mutlak değerini vermektir. "-11" sayısının mutlak değeri "11" olduğu için fonksiyonumuz bize "11" sonucunu veriyor... Dolayısıyla fonksiyonumuz şu biçime geliyor:

cift_bas(max(3, 1, 11, 7))

Daha sonra "max()" fonksiyonu devreye giriyor. Bildiğiniz gibi, "max()" fonksiyonunun görevi bir sayı dizisi içindeki en büyük sayıyı bulmaktır. "3, 1, 11, 7" sayıları içindeki en büyük sayı "11" olduğu için "max()" fonksiyonu bize "11" sayısını verecektir. Dolayısıyla fonksiyonumuz şöyle bir görünüm kazanır:

cift_bas(11)

Son olarak "cift_bas()" fonksiyonu devreye girer. Hatırlarsanız, cift_bas() fonksiyonunun görevi, kendisine verilen parametreyi iki kez ekrana basmaktı. Burada da bu işlevi yerine getirerek bize şu sonucu verir:

11 11

Son olarak o sayfadaki şu örneğe bakalım:

>>> michael = 'Erik, yarım arı.'
>>> print_twice(michael)
Erik, yarım arı. Erik, yarım arı.

Bunu da kendi fonksiyonumuza uyarlarsak şöyle olur:

>>> michael = 'Erik, yarım arı.'
>>> cift_bas(michael)
Erik, yarım arı. Erik, yarım arı.

Burada önce "michael" diye bir değişken tanımladık. Daha sonra da bu değişkeni "cift_bas()" fonksiyonuna parametre olarak verdik. Fonksiyonumuz da bu değişkenin değerini iki kez ekrana bastı...

Sanırım o sayfadaki "kompozisyon" başlığı kafanızı karıştırıyor.... Çünkü "kompozisyon" kelimesinin, konuda anlatılan şeyle alakası yok... O başlık biraz yanıltıcı olmuş... Kitabın İngilizcesinde "composition" kelimesi geçiyor. Ama bu kelimenin Türkçesi "kompozisyon" değil. Belki burada "Fonksiyonların Bileşkesi" demek daha uygun olur... Kastedilen şey, bir fonksiyonun sonucunun başka bir fonksiyon içinde kullanılabilmesi, yani fonksiyonların birleştirilebilmesi... Ben matematikten anlamam, ama sanırım matematikte de bu kavram kullanılıyor. Matematikçiler daha iyi bilecektir.

Top
Beceriksiz_Penguen kullanıcısının resmi

Beceriksiz_Penguen

Kayıt: 25/12/2009
WWW

Re: Kompozisyon Nedir?

Melen Teşekkürler. Basitmiş. Jeton yeni düştü Laughing out loud

Evet istihza. Hem kompozisyon ismi, hemde kabuk örneklerini veriş şekli kafamı karıştırmıştı. Herşey yerli yerine oturdu şimdi Laughing out loud Teşekkürler. Wink

Top