C#nedir?com
 
YAZAR HAKKINDA
emre TAŞ
emre TAŞ
www.emretas.net
İletişme geçmek için tıklayın.
7 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: alt yordam C eşleşim fonksiyon kopyalama parametreler seçici Sistem programlama soyutlama yer değiştirme C / Sys Prog. emre TAŞ
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : C / Sys Prog.
Yayınlanma Tarihi : 3.1.2014
Okunma Sayısı : 30234
Yorum Sayısı : 2     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
ChatBot UI Sample 11.12.2017
Turhal Temizer 'in Blogu
C# – IRR Function 11.12.2017
Burak Selim Şenyurt
JWT(JSON Web Token) Kullanımı 11.12.2017
Burak Selim Şenyurt
Apache Kafka ile Konuşmaya Çalışmak 11.12.2017
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Soyutlaştırma
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon

0.1 Soyutlaştırma

0.2 Nedir?

• Buzdağı: Detaylar altta, kullanılabilir kısım üstte. Üstünde yaşayan hayvanlar detayla ilgilenmiyor.
• Kullanıcı: “nasıl kullanırım ”, Geliştirici: “nasıl çalışır?”
• Kullanıcı: “ne yapar?”, Geliştirici: “nasıl yapar?”
• Soyutlaştırma: Geliştirilen programın/tasarımın detaylarını saklayarak bir mekanizma ile kolay kullanılır
ve tekrar tekrar kullanılır hale getirmek.
• Program parçalarının kullanımı ve uygulanmasının ayırılması.
• Büyük ölçekli programlamanın vazgeçilmez gereksinimi.
• Genel olarak tasarımın söz konusu olduğu birçok branşta geçerli.
• Örnek: radyolarda sadece belirlenen frekanstaki dalgaların geçişini sağlayan bir devre elemanı vardır
(tuner). Bu elemanın ayarını sağlayan potansiyometre radyonun dışında bir düğme olarak kontrol
edilir. Radyonun ayar düğmesi “tuner” ayarı üzerine bir soyutlaştırmadır.
• Programlama dilleri makina dili üzerine bir soyutlaştırmadır.
• Grafik arayüzlü programlar karmaşık program mantığının üzerine bir soyutlaştırmadır.


0.3 Amaç:

• Detaylar kafa karıştırıcı
• Detaylarda Hata yapması kolay
• Detayların tekrarlanması zor ve hata arttırıcı etmen
• Soyutlaştırma ile Bir kere tanımla, istediğin kadar kullan!
• Programın tekrar kullanılırlığı en önemli amaç
• Soyutlaştırmada parametre kullanarak etkinliği arttırmak mümkün



0.4 Fonksiyon ve altyordam soyutlaştırmaları


Fonksiyon ve altyordam soyutlaştırmaları

• Bir ifadenin hesaplanması detay (algoritma, değişken alanı kullanımı vs.)
• Fonksiyon çağrısı o detayı kullanma şekli.
• Fonksiyonlar ifadeler üzerinde bir soyutlaştırma
• void dönen fonksiyonlar ya da bazı dillerde procedure tanımları.
• Değerleri yok fakat bir grup komut detayından oluşur.
• Altyordamlar komutlar üzerinde bir soyutlaştırma


0.5 Seçici soyutlaştırması

• Başka soyutlaştırmalar mümkün mü?
• Dizilerde: int a[10][20]; a[i]=a[i]+1;
• [..]operatörü bir seçici. Dizinin elemanlarını seçiyor.
• Kullanıcı kendi veri yapısı üzerine seçici tanımlayabilir mi?
• Bağlı listelerde bir seçici (C++)


int & get (Liste *p,int el) {/* bagli liste */
int i ;
for ( i =1; i < el ; i ++) {
p = p-> next ; /* sonraki elemana git */
}
return p-> data ;
}
get ( bas , i ) = get ( bas,2) + 1;



• C++’ta nesne tanımları için [..] operatörünü kullanmak da mümkün.


0.6 Genel soyutlama


• Aynı tür tanımların farklı veri tiplerine uygulanması mümkün.
• Tanımlar üzerinde soyutlaştırma. Bir fonksiyon ya da nesne tanımı farklı tiplere parametre aracılığıyla
uyarlanabilir.

template <class T>
class Liste {
T icerik ;
Liste * sonraki ;
public :
Liste () { sonraki=NULL };
void ekle (T el ) { ... };
T al ( int n) { ...};
};
template <class U>
void swap(U &a , U &b) { U tmp; tmp=a; a=b; b=tmp; }
...
Liste <int> a; Liste <double> b; Liste <Kisi> c ;
int t ,x; double v ,y; Kisi z ,w;
swap( t ,x ); swap(v ,y ); swap(z ,w);

1. Soyutlaştırma prensibi

• Herhangi bir programlama dili varlığı hesaplama içeriyorsa bunun üzerine bir soyutlaştırma yapmak
mümkündür.

Varlık › Soyutlaştırma
İfade › Fonksiyon
Komut › Altyordam
Seçici › Seçici fonksiyon tanımı
Tanım › Genel soyutlaştırma


2. Parametreler


• Bir defa tanımla çok defa kullan prensibinin uygulanabilmesi için soyutlamanın her kullanımda farklı
amaç ve davranışa izin vermesi gerekir.
• Tanım kısmı: soyutlaştırma ismi(Tp1, Tp2, ..., Tpn) Kullanım kısmı: soylaştırma ismi(Ap1,
Ap2, ..., Apn)
• Tanım parametreleri: belirteç ya da belirteç içeren yapılar (fonksiyonel dillerde)
• Asıl parametreler: soyutlama ve parametrenin türüne göre ifade ya da belirteç
• Soru: Asıl parametreler ve tanım parametreleri nasıl iletişim kurar?
• Programlama dili tasarımının yanıtlaması gerekir.
• Parametre iletme mekanizmaları

3. Parametre iletme mekanizmaları


    Programlama dili bir ya da birden fazla mekanizma destekliyebilir. 3 temel yöntem kullanılabilir

1. Kopyalama ile iletme (değişken değer atama temelli)
2. Eşleşim ile iletme (eşleşim temelli)
3. İsim olarak iletme (yerine koyma temelli)

3.1 Kopyalama ile iletme


• Fonksiyon ve altyordam soyutlaştırmalarında asıl parametre ve tanım parametresi arasında atama
(assignment) işlemi. 3 çeşit yapılabilir:
• İçeri kopyalama: Fonksiyon çalıştığında: Tpi ‹ Api
• Dışarı kopyalama: Fonksiyon çıkarken: Api ‹ Tpi
• İçeri-dışarı kopyalama: Fonksiyon çalıştığında: Tpi ‹ Api, ve Fonksiyon çıkarken: Api ‹ Tpi
• C dili Içeri kopyalama mekanizması kullanır. Bu mekanizma aynı zamanda Değer ile iletme (pass by
value) olarak da adlandırılır.


int x =1, y =2;
void f ( int a , int b) {
x += a+b;
a ++;
b=a /2;
}
int main () {
f (x ,y );
p r i n t f ("x:%d , y:%d\n",x ,y );
return 0;

}


3.2 Eşleşim ile iletme


• Tanım parametresindeki değişkenin/belirtecin asıl parametredeki değer, değişken ya da belirteçle eşleşmesi.
• Tek bir değer ya da değişken var. Farklı isimlerle anılıyor.
• Sabit eşleşimi: Tanım parametresi fonksiyon içinde sabit. Değeri asıl parametrenin değeri ile eşleşir.
Fonksiyonel diller ve Haskell bu mekanizmayı kullanır.
• Değişken eşleşimi: Fonksiyon çalıştığı sürece tanım değişkeni asıl değişkenin adresiyle eşleşir. Aynı
bellek alanı tanım parametresi ismiyle anılır. Atıf ile iletim (pass by reference) olarak da anılır.
• Soyutlaştırmaya göre tip vb diğer varlıklar da benzeri şekilde eşleşim ile iletilir.


int x =1, y =2;
void f ( int a , int b) {
x += a+b;
a ++;
b=a /2;
}
int main () {
f (x ,y );
p r i n t f ("x:%d , y:%d\n",x ,y );
return 0;

}


6.3.3 Yer değiştirme ile iletme

• Tanım parametresinin bütün göründüğü yerlere asıl parametre deyimi konur ve fonksiyon/altyordam
bu hal ile çalıştırılır.

• C makroları bu mekanizma ile çalışır (ön-derleyici tarafından)

• Programlama dillerinin kuramsal analizi için kullanılır. Normal değerlendirme sırası olarak da adlandırılır.

• örnek (Haskell benzeri)
f x y = if (x <12) then x*x+y*y+x
else x+x*x
Değerlendirme: f (3*12+7) (24+16*3) 7› if ((3*12+7)<12) then (3*12+7)*(3*12+7)+(24+16*3)*(24+16*3)+(3*12+7) else (3*12+7)+(3*12+7)*( 7› if (43<12) then ... 7› if (false) then ... 7› (3*12+7)+(3*12+7)*(3*12+7) 7› (3*12+7)+43*(3*12+7) 7› ... 7› 1892

• Haskell Tembel değerlendirme sırası uygular. Diğer hemen hemen bütün diller Hırslı değerlendirme
sırası (önce asıl parametreler değerlendirilir sonra iletilir) uygular.

• Değerlendirme (Hırslı sıra): f (3*12+7) (24+16*3) 7› f (36+7) (24+16*3) 7› f 43 72 7› if (43<12) then 43*43+72*72+43 else 43+43*43 7› if (false) then ... 7› 43+43*43 7› 1892

• Hırslı sıra çok daha hızlı olduğu için diller hırslı değerlendirme sırası ve uygun bir parametre iletme
mekanizması uygular.

• Tembel değerlendirme hırslı sırayla aynı hızda ama normal değerlendirme sırasına benzer nitelikte
değerlendirme sağlar. (farkı görmek için f 15 (2/0) ifadesini Haskell ve dilediğiniz dilde deneyin)

Makale:
Soyutlaştırma C ve Sistem Programlama emre TAŞ
  • Yazılan Yorumlar
  • Yorum Yaz
MAY
13
2014
kullanıcı şifreyi 123 olarak girene kadar tahmin sayısını gösteren form olusturma c# ödevimde yardımcı olurmusunuz ?
MAY
13
2014
kullanıcı şifreyi 123 olarak girene kadar tahmin sayısını gösteren form olusturma c# ödevimde yardımcı olurmusunuz ?
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor