Nasıl Programlama Öğrenebilirim?, temel mantık ve algoritmaya giriş.

KaRa_HiL@L

Katılımcı Üye
19 Şub 2006
448
13
VaTaN BeKÇiSi
Programlama eğer belli bir seviyeyi aştıysanız sizin bilgisayarla olan bir numaralı bağınız olacaktır.Çünkü bilgisayarın temelidir programlama.Ama nedense herkes korkar nasıl bu programlamaya başlamalıyım diye.

Eğer programlamaya başlamak istiyorsanız ilk olarak bir programlama dili seçmelisiniz.Buda ne yapacağınızla alakalıdır.Mesela şuanda programlama dillerine sınıf koyabiliriz.Görsel olanlar ve olmayanlar olarak.C/Visual C,Basic/Visual Basic,Pascal/Delphi gibi.Burda önemli olan temeli kavramaktır.Bu yüzden önce yazı temelli programlama dillerini öğrenebiliriz.Bundan görsel olanlara geçmek çok daha kolay olacaktır.

Programlamaya temel bir giriş yapalım.Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisine Program denir.İşte bu programları oluşturmak veya istediğimiz gibi çalışmasını sağlamak için programlama dillerini kullanırız.Mesela aşağıda C diliyle basit bir program yazalım.

#include <stdio.h>

main()

{

int i ;

scanf("%d",&i);

i:=i*i;

printf("%d",i);

}

gibi birşey yazdık.Biraz alakalı olanlar ne işlev yaptığını bilir bunun dışında karakterlerin anlamsızca yanyana gelişi gibi gözükebilir.Aslında işin temelini bilmeyen ama tüm komutları ve etiketleri bilen biri için böyledir.Çünkü bir programlama dilinde neyin ne işe yaradığını yalayıp yutmuşsunuzdur ama program yazamıyorsunuzdur.Bunun nedeni algoritma bilmemenizdir.Peki nedir bu algoritmalar ve neden bu kadar önemlidir.

Algoritmalar
Belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.Bir program yazarken ne yaptığımızı bilmemiz gerekir.Bunun için ilk önce bir algoritma çıkarmalıyız bu sayede kusursuz bir programa ulaşabiliriz ki programlama da asıl amaç budur.

Mesela bankaya para yatıracağız bunun algoritmasını çıkaralım;
1. Evden çıktık
2. Bankaya doğru gittik
3. Bankaya gelip sıra için fiş aldık
4. Sıra bize geldi ve paramızı yatırmaya gittik
5. Banka Cüzdanını evde unuttumuşuz!
6. Eve dönüp cüzdanı aldık
7. Bankaya gelip sıra için fiş aldık
8. Sıra bize geldi ve paramızı yatırmaya gittik
9. Paramızı yatırdık!

Olayın temeli anlaşılmıştır sanırım şimdi gerçek bir program için algoritma yazalım;

1'den 100'e kadar olan sayıların toplamını veren algoritma.

1. Toplam T, sayılar da i diye çağırılsın.
2. Başlangıçta T'nin değeri 0 ve i'nin değeri 1 olsun.
3. i'nin değerini T'ye ekle.
4. i'nin değerini 1 arttır.
5. Eğer i'nin değeri 100'den büyük değil ise 3. adıma git.
6. T'nin değerini yaz.

Algoritmaların yazım dili değişik olabilir. Günlük konuşma diline yakın bir dil olabileceği gibi simgelere dayalı da olabilir. Akış şeması eskiden beri kullanıla gelen bir yapıdır. Algoritmayı yazarken farklı anlamlar taşıyan değişik şekildeki kutulardan yararlanılır. Yine aynı amaç için kullanılan programlama diline yakın bir (sözde kod = pseudo code) dil , bu kendimize özgü de olabilir, kullanılabilir.

Her algoritma aşağıdaki kriterleri sağlamalıdır.

1. Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli.
2. Çıktı: En azından bir değer üretilmeli.
3. Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli.
4. Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli.
5. Etkinlik: Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır.

Not: Bir program için 4. özellik geçerli değil. işletim sistemleri gibi program sonsuza dek çalışırlar .

Problem Çözme
Problem çözmede, soruna hemen girişmek yerine, dikkatli ve sistematik yaklaşım ilke olmalıdır. Problem iyice anlaşılmalı ve mümkün olduğu kadar küçük parçalara ayırılmaladır.

Descartes tarafından "Discourse on Method" isimli kitabında anlatılan problem çözme teknikleri;

1. Doğruluğu kesin olarak kanıtlanmadıkça, hiçbir şeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının.
2. Karşılaştığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün.
3. Düzenli bir biçimde düşünün; anlaşılması en kolay olan şeylerle başlayıp yavaş yavaş daha zor ve karmaşık olanlara doğru ilerleyiniz.
4. Olaya bakışınız çok genel, hazırladığınız ayrıntılı liste ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olsun.

Son olarak programlama ya başlamak istiyorsanız size o programlamanın temelini ve işleyişini anlatan bir kaynak bulun(kitap,internet vs.) daha sonra ise algoritmaları öğrenin böylece programcı olma yolunda küçük ama sağlam bir adım atmış olursunuz.
 
Ü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.