Programlamanın Temelleri (1. Kısım) Değişik bir anlatım! :)

Cansiz

New member
(1. Kısım)
Programlamaya yeni başlayan arkadaşlara yol gösterme açısından bu makalemde programlamanın oturduğu iki temel ve bu iki temeli sağlamlaştıracak yardımcı yapılara değineceğim. Faydalı olması dileğiyle.


1. Karar Yapıları
2. Döngüler

İşte bu iki madde programlamanın olmazsa olmazlarından ilk ikisidir. Üçüncüsü ise Algoritmalar olup bu iki esas iyice kavrandıktan sonra Algoritmaya da temel teşkil edeceklerdir.

1. Karar Yapıları:

Şimdi kafanızda canlandırın. Tatil yapmak istiyorsunuz. Broşürlere baktınız. Elinizde 4 seçenek var. Bodrum, Fethiye, Ayvalık, Uludağ ve cebinizde 40 lira var. Fiyatlara baktınız Ayvalık ve Uludağ seçeneklerinin fiyatları 90 lira. Bodrum 30, Fethiye 35. Kafadan bi kere 90 lıkları elediniz. Eee bütün parayı oraya verirsek ne yicez ne içicez deyip acaba tüm masraflar dahilmi onada baktınız. Fethiyede herşey dahil. Güzel Bodruma göre 5 lira fazla olmasına rağmen daha kârlı. Evet Kararınızı verdiniz Fethiye ye gidiceksiniz.

İşte karar yapıları böyle kurulur. Tabi ki burada ki yapı çok kompleks bir yapıdır. Yüzeyseldir. Programlamada her türlü olasılık bu yapılar içinde belirtilmek zorundadır. Meselâ tatilden dönünce işe gidicek parayı nerden bulacağınız gibi. Burası çok önemli bir noktadır gerçek hayatta bu hayati bir mesele olmamasına rağmen programlamada bu yapı çöker.

Şimdi gelin birlikte karar yapısını kuralım.

Cümle cümle kuruyoruz:

1. Adım: Şimdi kafanızda canlandırın.
Cümleyi açalım;

Bir kere kafanızda canlandırabilmeniz için bir kafamızın ve de canlandırma kabiliyetimizin olması lazım. Bu durumda biz kafamız ve canlandırma kabiliyetimizi bilgisayara anlatabilmemiz lazım.

Anlatalım;

1. Kural : biz bilgisayara bişey anlatmak için Değişkenleri kullanıyoruz.

Soru : Değişken Nedir?

Değişken size ilk duyduğunuzda neyi ifade ediyorsa odur. Değişken, dönektir, bi bakarsın öyle bi bakarsın böyle. Yalnız öyle bir değişkendir ki sizin koyacağınız kurallar çerçevesinde değişir ve biz bilgisayara anlatmak istediğimiz şeyleri değişkenlerin içine koyarız.

2. Kural: biz anlatmak istediğimiz bilgiyi değişkenin içine koymadan önce bu değişkenin içine ne tür bir bilgi koyacağımızı da belirtmeliyiz.

Açıklayalım;

Siz 250 Gr. Peynir koymak için küçük bir kab, 2.5 litrelik kola koymak için biraz büyük poşet, çeşmeden su taşımak için sağlamcana bir sapı olan güğüm kullanırsınız. Yani tutupta bunların üçü içinde aynı kabı kullanmak ne kadar abesse kafayı ve canlandırma kabiliyetini aynı değişkene koymak o kadar abestir hatta ta kendisidir.

Sanırım bu meselede anlaşıldı.

O zaman artık kafayı k değişkenine koyup değişkene de sen bu kafayı kaldırabilecek kapasitede bir kapsın, canlandırmayı da c değişkenine koyup sen canlandırma olayını kaldırabilcek kapasitede bir kapsın diyebiliriz.

İyide bizim olayımız bukadar küçük bi olay değiki kafamızda canlandırıcaz ama neyi?
Nerde? Bu yapacağımız canlandırma eyleminin tamamını bir bütün arz edecek şekide yapmanız lazım çünkü biz canlandırma olayını bir kere yapmıcaz ki biz bu kararı belki bir günde milyon kere yapıyoruz o zaman. Biz bunu öyle bir tasarlamamız lazım ki tekrar tekrar kullanabilelim. Yoksa her yapacağımız canlandırma eylemi için benzer şeyleri tekrar yazmak zorunda kalırız ve öyle bir batağa saplanırız ki birdaha çıkamayız.

Şimdi biz bu olayı bir ana başlık altında toplayalım ve buna kafanda_Canlandır olayı diyelim. Böylece biz kafamızda bir şeyler canlandırmamız gerektiğinde kafanda_Canlandır deyip neyi canlardırması gerektiğini de parametre olarak bu olaya gönderip bu eylemi gerçekleştirebileceğiz.

Soru : Parametre Nedir?

kafanda_Canlandır tarzında bir olaya sen kafanda neyi canladıracaksın? Diye sorulduğu zaman bilmem, neyi? Dememesi için gönderilmesi gereken değişkenler topluluğudur.

Peki bu kafanda_Canlandır olayının programlamadaki karşılığı nedir?

Kulanılacağı yere göre Main (Ana Yordam), Sub (Alt Yordam) veya Function (Fonksiyon) dur. Bu üç meselenin bir birinden farkları ileriki konularda detaylı bir şekilde anlatılacaktır.

Evet, Parametrelerimizi tespit edelim artık.

2.Adım : Tatil yapmak istiyorsunuz.

Cümle zaten kedini açıklıyor veeeee 1. Parametre dadadam ne yapmak istiyorsunuz?

Yani bir değişen tanımlıcaz evet değişken adı=ne_Yapmak, türü=yapılacak işi tutabilecek kapasitede bir kap, değeri = Tatil oleeeey.

3.Adım: Broşürlere baktınız. Elinizde 4 seçenek var. Bodrum, Fethiye, Ayvalık, Uludağ

Yaniiiiii ikinci parametre geliyor=Secenek, türü=kısmını artık yazmıyorum biliyorsunuz, değerleri={Bodrum,Fethiye,Ayvalık,Uludağ} hımmmm bu biraz değişik bir değişken. İçinde bir değer yok ki 4 tane değer aldı bu değişken haydaaaa nerden çıktı bu şimdi.

Yani aynı sepete armut,elma,karpuz,kestane koyabiliriz pekala niye aynı değişkene bi kaç değer birden koyamayalım. Koyabiliyoruz bu değişkenin değişik bir cinsi öyle bir kabiliyeti var. Bunlara dizi değişkenleri deniyor. Bunlarda farklı olarak bu dizinin alabileceği maksimum eleman sayısını da belirtiyorsunuz.

Sonuç olarak ;

Secenek[3]={Bodrum,Fethiye,Ayvalık,Uludağ} dersek eğer 4 dü birden aynı sepete girer.

Soru : Neden 3 yazdık,4 değişkenimiz var baskı hatası falan mı?

Matbaada mı basıyoruz baskı hatası olsun diyorum kendi kendime, sorduğum sorunun bir kısmına cevap olarak. [] içine yazdığımız rakama index diyoruz. Birkaç programlama dilinin dışında %95 bu değer 0 dan başlar. 0,1,2,3 adresleri toplam 4 değer tutabilir böylece. Yani 4 değer yazacaksak oraya bu yüzden 3 yazıyoruz.

4.Adım: ve cebinizde 40 lira var

Tanıştırayım buda üçüncü parametremiz cepteki_Para

Değişken adı=cepteki_Para, türü=para, değeri=40


Dostlar saat epey geç oldu ayrıca buradan itibaren programlamanın ikinci büyük temelini (yani DÖNGÜLER) atıcaz örnek bunu gerektiriyor. Dolayısıyla bunu bu makalemin ikinci yarısına bırakıyorum.

Alıntıdır!
 

Cansiz

New member
Programlamanın Temelleri (2. Kısım)

5. Adım: Fiyatlara baktınız Ayvalık ve Uludağ seçeneklerinin fiyatları 90 lira. Bodrum 30, Fethiye 35.

siz fiyatlara baktınız ama nerden? nerde bu fiyatlar tabiki borşürde, broşür nerde? yok. hemen yapalım bitane. dostum öyle yok deyip bırakmak yok. burası sihirli bir dünya. yoksa yapacaksın.

işte tam bu noktada ikinci temel atılyor.

2. Döngüler:

ona seçeneklerimizin fiyatlarını söyleyelim.

birde 1. Kısımda tanımladığımız Secenek dizi değişkenimizi içine fiyatları ve herşey dahil/hariç bilgisinide koyabileceğimiz şekilde düzeltelim

bu aşamada dizi değişkeninin farklı bir kullanımını da görmüş olucaz. bu kulanım şekliyle dizi değişkenimiz çok boyutlu diziler sınıfına girmiş oluyor.


direkt söylüyorum

oldumu sence. biraz anlayacağı şekilde yazmaya nedersin.

Secenek[0,0]=90
Secenek[0,1]=false
Secenek[1,0]=90
Secenek[1,1]=false
Secenek[2,0]=30
Secenek[2,1]=false
Secenek[3,0]=35
Secenek[3,1]=true

şimdi burda 4 tane seçenek var tek tek anlattık oldumu? oldu.

peki 35000 tane seçenek olsaydı ne yapacaktık. :) oturup

Secenek[0,0]=90
Secenek[0,1]=false
Secenek[1,0]=90
Secenek[1,1]=false
Secenek[2,0]=30
Secenek[2,1]=false
Secenek[3,0]=35
Secenek[3,1]=true
.
.
.
.
Secenek[35000,0]=23
Secenek[35000,1]=false

diye yazacakmıydık?


onun yerine şöyle yapıyoruz.



0 dan 35000 e kadar say diyoruz bilgisayara.

peki nasıl say diyoruz 1 er 1 er.

biz bu sayma eyleminide bilgisayara anlatmak için yine bir değişken kullanmamız lazım ki elle tutulur, göreceli olarak başvurabileceğimiz bir muhattabımız olsun. değişken adı=Sayac, türü=sayı tutabilen bir kap, değeri=0 (şimdilik)


toparlayalım.

Say 0 dan başlayarak Secenek sayısı kadar

sayarkende benden Secenek[Sayac,0]=? değerini fiyat için iste,
Secenek[Sayac,1]=? değerinide herşey dahil/hariç için iste.


Not: burada broşürün fiyat, dahil/hariç vs. kriterleri daha fazla olsaydı burdaki değerleri de tek tek yazmamak için iç içe döngü kullanacaktık. İç içe döngü konusunu Algoritma konusunda iç içe karar yapılarıyla birlikte detaylı bir şekilde inceliyeceğiz.

dedik veeeee baktığımız broşüre bilgisayarıda baktırmış olduk böylece. artık değerleri oda biliyor. ayrıca 35000 kere de olsa 1000000000 kere de olsa biz olayımızı 3 satırda bitirdik. nasıl yaptık. çünkü artık ikinci temeli(DÖNGÜLER) de sapasağlam attık.

Soru : peki hocam biz kafamızda sadece tatili mi canladırabiliyoruz? yooo nerden bu kanıya vardın? biz boşuna mı ne_Yapmak parametresini istedik senden. biz bu döngüyü ve bundan sonraki işlemlerimizi ne_Yapmak değişkeninin değeri Tatilse çalıştırıcaz aksi durumdalarda örn: ne_Yapmak parametresiyle ProgramYaz değerini gönderseydik kafanda_Canlandır olayımız ProgramYaz koşulu doğrultusunda bir eylem gerçekleştirecekti Tatil koşulunun olasılıklarını anlattıktan sonra bir de ProgramYaz koşulunun olasılıklarını yazsaydık eğer.
böylece; kafanda_Canlandır olayına ProgramYaz kabiliyetini de kazandırmış olacaktık.


yukarıdaki döngüyü Tatil koşulu gerçekleşmesi durumunda çalıştırabilmek için Tatil koşuluna bağlı olarak yazalım o zaman,


eğer ne_Yapmak=Tatil ise

{


(Say 0 dan başlayarak Secenek sayısı kadar)

{
sayarkende benden Secenek[Sayac,0]=? değerini fiyat için iste,
Secenek[Sayac,1]=? değerinide herşey dahil/hariç için iste.
}


}



eğer ne_Yapmak=ProgramYaz ise

{

;

}


gibi.

yukarıya koyduğum parantezleri falan kafana takma (şimdilik)


6. Adım: Kafadan bi kere 90 lıkları elediniz. Eee bütün parayı oraya verirsek ne yicez ne içicez deyip acaba tüm masraflar dahilmi onada baktınız. Fethiyede herşey dahil. Güzel Bodruma göre 5 lira fazla olmasına rağmen daha kârlı. Evet Kararınızı verdiniz Fethiye ye gidiceksiniz.


geldik karar verme aşamasına.



bir döngü daha kuralım ki tek tek yazmayalım yine dimi


Hatırlatma: Kullanılmış değişkenleri çöpe atmıyoruz hemen. Tekrar kullanıla biliyor. ikinciye aynı değişkeni kullanacaksak boşaltmadan kullanmayalım ortalık karışmasın.



(Say 0 dan başlayarak Secenek sayısı kadar)

{

eğer Secenek[Sayac,0] küçük tür cepteki_Para'dan ve Secenek[Sayac,1]=true ise Secenek[Sayac,0] -= Secenek[Sayac,0] in %40'ı (karlılık payı olarak)

Not: Tam burda sıralama algoritması gerektiğinden bu noktanın Algoritma konusunda detaylandırılması daha uygun olur. Sıralama meselesi ise detaylı bir konudur.dolayısıyla burada bir sıralama (en iyi metod seçilerek) yapılacak va Fethiye sonucu elde edilecektir.

}


Böylece döngüleride iyice anladığmıza göre Algoritma konusuna bir sonraki makalede geçmek için hiç bir engel kalmadı.

bidakkaaaa. cebinizde işe gidecek para kaldı mı............ :)

alıntıdır!
 

HTML

Üst