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
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

Melen
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...
istihza
Re: Kompozisyon Nedir?
Diyelim ki şöyle bir fonksiyon tanımladık:
def cift_bas(mesaj): print mesaj, mesajBu fonksiyon çalıştırıldığında "mesaj" parametresi ekrana iki kez yazılacaktır. Mesela:
cift_bas("istihza")Bu kodun çıktısı şöyle olur:
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:
Bu kodlar şöyle bir çıktı verir:
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 11Son olarak o sayfadaki şu örneğe bakalım:
Bunu da kendi fonksiyonumuza uyarlarsak şöyle olur:
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.
Beceriksiz_Penguen
Re: Kompozisyon Nedir?
Melen Teşekkürler. Basitmiş. Jeton yeni düştü
Evet istihza. Hem kompozisyon ismi, hemde kabuk örneklerini veriş şekli kafamı karıştırmıştı. Herşey yerli yerine oturdu şimdi
Teşekkürler. 