C ++ Ders 6: UML Diyagramı ve Parametreli Fonksiyonlar

ratio

Kıdemli Üye
6 Tem 2013
2,456
6
Turk
Birleştirilmiş Modelleme Dili Sınıf Diyagramı (UML Class Diagram)

Birleştirilmiş Modelleme Dili, yazılım geliştiricileri tarafından nesne yönelimli sistemlerini temsil etmek için kullanılan standartlaştırılmış bir grafik dilidir. Birleştirilmiş Modelleme Dili’nde her sınıf üç bölmeli bir dikdörtgen olarak modellenir. Sınıfın adı en üste kalın ve ortalanmış şekilde yazılır. Orta kısımda veri üyelerine karşılık gelen özellikleri yazılır. (Class attributes) Alt kısımda ise sınıfa ait fonksiyonlar fonksiyon ismi ve sonuna parantez getirilerek yazılır. (Memberfunctions) Fonksiyonun başına artı (+) işareti koyulması fonksiyonun genel (public) bir fonksiyon olduğunu gösterir.

Geçen ders son yaptığımız örneğe göre bir UML örneği ekleyecek olursak;

Burada sınıfımızın adı “NotDefteri”ydi. Sınıfımıza ait özellik yoktu ve sınıfımızın mesajiGoster isimli public bir fonksiyonu vardı.








Not: Ek bilgi eklenmesi gerektiğinde fonksiyonun parantezlerinin arasına eklenebilir. Örn; fonksiyonun parametreleri gibi.



Fonksiyonları Parametre ile Tanımlama

Bir banka hesabına para yatırmak için bir fonksiyonumuz olsun. Burada fonksiyona dışarıdan bir veri, değer girmemiz gerekir ki fonksiyonun içinde bu veriyi kullanıp sonuç elde edelim. Bunu sağlamak için parametreleri kullanıyoruz. Bir fonksiyon bir veya birden fazla parametre içerebilir. Basitçe, fonksiyonun görevini yerine getirebilmesi için dışarıdan ihtiyaç duyduğu verilerdir. Örneğin hesabınıza paraYatır fonksiyonu ile 20tl yatıracaksınız. Ancak, paraYatır fonksiyonu ne kadar yatıracağınızı bilmiyor. Burada veriye ihtiyaç duyuyor ve biz 20 değerini parametre olarak belirlenmiş yere yazacağız. Örn; paraYatır(20)…

Daha iyi anlamak için geçen dersteki notDefteri örneğimize devam edelim. Ancak, bu sefer giriş mesajında kullanıcıdan veri alsın ve daha sonra girilen veriyi parametre olarak kullanarak yazdırsın.


Kod:
[SIZE=3]// Bir parametre alan bir üye işlevi olan sınıf NotDefterini tanımlayın; [/SIZE]

[SIZE=3]// Bir NotDefteri nesnesi oluşturun ve mesajiGoster işlevini çağırın. [/SIZE]

[SIZE=3]#include <iostream>[/SIZE]

[SIZE=3]#include <string> // program C++'ın standart string sınıfını kullanıyor. [/SIZE]
[SIZE=3]using namespace std; [/SIZE]

[SIZE=3]// NotDefteri sınıfının tanımlanması [/SIZE]
       
[SIZE=3]class NotDefteri [/SIZE]

[SIZE=3]{ [/SIZE]

[SIZE=3]public: [/SIZE]

[SIZE=3]    // Kullanıcıya mesajı gösterecek olan fonksiyon [/SIZE]

[SIZE=3]    **** mesajiGoster( string hazirlayan ) [/SIZE]

[SIZE=3]    { [/SIZE]

[SIZE=3]        cout << "Hoşgeldiniz, bu NotDefteri " << hazirlayan << " tarafından hazırlanmıştır!" << endl; [/SIZE]

[SIZE=3]    } // mesajiGoster fonksiyonunun sonu [/SIZE]

[SIZE=3]}; // NotDefteri sınıfının sonu [/SIZE]

[SIZE=3]// Main fonksiyonun başlangıcı [/SIZE]

[SIZE=3]int main() [/SIZE]

[SIZE=3]{ [/SIZE]

[SIZE=3]    string hazirlayan; // hazirlayanin adını saklayacak olan string veri tipi [/SIZE]

[SIZE=3]    NotDefteri benimNotDefterim; // benimNotDefterim isimli bir NotDefteri oluşturulması [/SIZE]


 [SIZE=3]    // Hazırlayanın adının girilmesi için komut istemi ve veri girişi [/SIZE]

[SIZE=3]    cout << "Lütfen hazırlayanın adını giriniz." << endl; [/SIZE]

[SIZE=3]    getline( cin, hazirlayan); // hazirlayanın adının okunması [/SIZE]

[SIZE=3]    cout << endl; // boş bir satır çıktısı[/SIZE]


[SIZE=3]    // benimNotDefterimin mesajiGoster fonksiyonunun çağırılması [/SIZE]

[SIZE=3]    // ve hazırlayanın parametre olarak girilmesi [/SIZE]

[SIZE=3]    benimNotDefterim.mesajiGoster( hazirlayan); [/SIZE]

[SIZE=3]} // Main fonksiyonun sonu[/SIZE]





Burada string sınıfına ait getline fonksiyonu input( veri girişi) almamızı sağlar. Enter’a basana kadar ki yazdığımız kısmı alır ve hazirlayan parametresine atar. Aslında bakarsanız burada da getline fonksiyonun da iki adet parametre kullanılmış. Birinci parametre cin yani veri almak için kullandığımız komut, ikincisi ise hazirlayan yani girdiğimiz string değerinin adı.



Burada bilmemiz gerekenler, parametreli bir fonksiyon tanımlarken parametrenin veri tipini ve değişkenin adını girmemiz gerekiyor. Örneğin, string hazirlayan; eğer birden fazla parametremiz var ise aralarına virgül koyarak devam edebiliriz. Örneğin, string hazirlayan, string isim, string soyisim vb.

Parametreli bir fonksiyonu kullanırken, gireceğimiz veriler tanımladığımız sırada girilmeli ve parantez içine yazılmalı. Bir parametre için örnek; mesajiGoster( ratio); birden fazla parametre için örnek; mesajiGoster( ratio, TurkHackTeam, THT)…



Not: Fonksiyonun sonuna noktalı virgül koyulması syntax hatasına yol açar.

Not: Fonksiyonun içinde parametreyi tekrar tanımlamaya çalışmak derleme hatasına yol açar.

Not: Fonksiyonun içinde veya parametrede aynı isimde değişkenler kullanamazsınız.

Not: Parametre ve değişkenlerin isimlerinin anlamlı olması kodunuzun okunabilirliğini arttırır.


NotDefteri Sınıfı için güncellenmiş UML Diyagramı

Nc6O3A.png
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.