Kodlama Rehberi
Programlamaya Giriş Kitabı için tıklayın.İçerik Listesi
Programlamaya Giriş
Bu sayfayı ziyaret ettiğinize göre programlama işine meraklısınız demektir. Bu platform, diğerlerinden farklı olarak programlamanın mantığını Türk'lerin ana dili olan Türkçe anlatmayı amaçlamaktadır.
Öncelikle bir bilgisayar programını çalıştırmak için programı bir yazı editöründe yazmış olmamız gerekmektedir (burada editör web sayfasıdır). Sonrasında ise, program derleyiciler ya da yorumlayıcılar ile çalıştırılabilir hale dönüşür. Bu site çalıştırılabilir dosya üretmekten daha çok programın çalışma mantığını görselleştirerek anlatmaya yönelik olarak hazırlanmıştır.
Aşağıdaki bir dizi konuyu okuyup uygulayarak ilk programlarınızı geliştirebilirsiniz. Bu arada burada yer alan tüm programlar Kodlama Sayfası kısmında çalışmaktadır. Kopyala-Yapıştır yapabilir nasıl çalıştığını gözlemleyebilirsiniz.
1. Değişkenler
Programlama yaparken değişken isimli yapılar bizim değerlerimizi sakladığımız ve program ilerlerken farklı değerleri de saklaması mümkün olabilen temel nesnelerdir. Program boyunca farklı tipteki veriler bellekte tutulmalıdır.
İşte, verilerin bellekteki yerlerine ulaşmak değişken denilen bu isimleri kullanmakla mümkündür. Değişkenlere bu ismin verilmesinin nedeni bellekte saklanılan değerlerin programın çalışması esnasında değiştirilebilmesinden kaynaklanır.
Değişken İşlemleri
Şeklinde bir kod ile program
Değişkenlerin nasıl kullanıldığını bir kaç örnek kod inceledikten sonra anlıyor olacaksınız.
Varsalım ki dolabımız açtık, birtakım meyveler var. Bunların kaç tane olduğunu programımız ile bulalım. Haydi, sahip olduğumuz toplam meyvelerin sayısını bulan programı yazalım beraber.
Gördüğünüz gibi elimizde 3 çeşit meyve var. 1-3 satırlarında kodlar ile her bir meyvenin miktarını "=" işareti kullanarak meyve isminde saklıyoruz. 4. satırda ise toplam meyve sayımızı bulabilmek için bunları toplayıp "yaz" isimli komutu kullanarak ekrana yazırıyoruz.
Tebrikler! İlk programınızı yazmış oldunuz.
Atama Komutları
Bir önceki programımızda da aslında farkettiğiniz üzere, 3 farklı meyve isminde değişkenler oluşturduk. Bunlar sırasıyla her bir meyveden kaç adet olduğunu içlerinde sakladılar. Değişkenler tanımlandığı anda değerler verdik ve toplama işlemine alındıklarında bu değerler ile işlem gördüler.
Atama işleminin belli bir kuralı vardır ve buna programlama dilinde söz dizimi (syntax) adını veririz. Atama işlemi söz dizimi şu şekildedir:değişken değişken = değer
Bu ifade tarzı biraz kafa karıştırabilir. Matematiksel eşitlik (=) anlamına gelen atama işlemi programlamada sağdaki al, bunu solda gördüğün ifadenin (değişkenin) içine koy demektir.
Gelin işleri biraz daha karmaşık hale getirelim. Örneklerle devam ediyoruz.
Burada ne yaptık? Yine 3 farklı değişken oluşturduk, ama bu sefer değişkenler sabit değerlerle başlamadılar, aksine bir önce tanımlanan değişkenin değerine bağlı bir değerle başladılar.
Temel İşleçler (Operatörler)
Matematik İşleçleri (+, -, *, /)
Aritmetik işleçler matematiksel işlemleri yapmamıza yarayan temel işleçlerdir. Yukarıdaki programlarda gördüğünüz üzere toplama (+) ve çıkarma (-) işlemlerini zaten kullanmıştık. Matematiksel işleçlerin nasıl çalıştığını örneklemek üzere gelin farklı bir program yazalım.
Aritmetik işleçler matematiksel işlemleri yapmamıza yarayan temel işleçlerdir. Yukarıdaki programlarda gördüğünüz üzere toplama (+) ve çıkarma (-) işlemlerini zaten kullanmıştık. Matematiksel işleçlerin nasıl çalıştığını örneklemek üzere gelin farklı bir program yazalım.
Örnek1: Yurtdışından dolar para birimi üzerinden satılan bir kaç ürün almak isteyelim. Bunların TL karşılığında neye tekabül ettiğini bulalım. Tabiki doların TL karşılığını değişken değeri olarak vereceğiz. Almak istediğimiz ürünlerin de dolar cinsinden tutarına sahibiz.
Programımız yurtdışından almak istediğimiz bu iki ürün için o günkü dolar kuru olan 3.45 TL karşılığı ile alışveriş sonrasında toplam harcamamız gereken toplam tutarı hesapladı.
Örnek2: Kendi arabamız ya da aile arabamızın ne kadar yaktığını hesaplayalım. Varsayalım ki babanız sizden böyle bir program yazmanızı istedi. Genel yaklaşım -ya da algoritma diyelim- şu şekilde olabilir: Bir miktar yol katederiz, bunun bir şekilde kaydını tutarız, o sırada ne kadar tutarda yakıt harcadığımızı tespit ederiz. Örneğin, 236 km yol aldık ve 75 TL yakıt harcadık. Hadi 1 km yolu ne kadarlık yakıtla katettiğimizi bulalım.
Kodumuz katettiğimiz toplam yolu adlı
toplamTutar / toplamYol
ile
bölme işlemini yapıp İlişkisel İşleçler (eşit, küçük, büyük)
Aslında ortaokuldan beri aşina olduğumuz bir konudur ilişkisel işleçler. Öncelikle, 6. sınıftan itibaren denklem çözmeyi öğrenmeye başlarız. Denklem çözerken denklemin 2 tarafın (eşitlik = ifadesininin sağı ve solu) birbirine eşit olduğunu kabul ederiz, denklemimizin bilinmeyenlerini bulmaya çalışırız. Sonrasında 7. ve 8. sınıfta da eşitsizlikler konusunu öğreniriz. < , >, >= sembollerle de eşitsizlik denklemlerini çözmeye çalışırız. Denklemlerin çözüm yolları benzerlik gösterse de, denklemler ve eşitsizlikler farklı yorumlanır. Ortaokul yıllarına kısa bir gezinti yaptıktan sonra bu ifadelerin kodlama açısından neler ifade ettiğine bakalım.
Eşit "=="
İlişkisel eşitlik sembolü, sağındaki ve solundaki ifadelerin eşitliğini kontrol eder. Eğer eşitlik varsa doğru döndürür.
Şimdi bununla alakalı olarak bir kodlama denemesi yapalım.
Bir yaşstrong> değişkeni oluşturalım ve şu komutu deneyelim. Çalıştırdığımızda değişken değeri kısmında _doğru_ veya _yanlış_ şeklinde ibareler göreceğiz. Eğer yaş değeri 18'e eşit ise doğru diğer durumda ise yanlış yazdığını göreceğiz. Farklı değerlerle deneyelim ve bu işlecin nasıl çalıştığını anlayalım.Eşit değil "!="
Bazende iki ifadenin birbirine eşit olmadığını sorgulamak isteyebiliriz. Bu durumda eşittir sembolünün sol tarafında bir "!" işareti koyarız.
Sırada ilişkisel küçük var. Burada da bir karşılaştırma söz konusu.
Küçük " < "
Soldaki ifadenin sağdakinden küçük olup olmadığını kontrol eder. Doğru ya da yanlış değerini döndürür.
Büyük " > "
Soldaki ifadenin sağdakinden büyük olup olmadığını kontrol eder. Doğru ya da yanlış değerini döndürür.
İlişkisel Büyük Eşit " >= " ve Küçük Eşit "<="
Bazı durumlarda hem büyüklük hem de eşitlik önemli olabilir. Örneğin bir kişinin yaşının 18'den büyük ya da eşit olduğunu kontrol etmek istersek bunu önce küçük sonra eşittir işareti ile yapabiliriz. Şöyle:
İlişkisel ifadelerin Seçme Komutları'nda kullanımı
İlişkisel komutlar tek başına doğru ya da yanlış değerini döndürür. Bu bilgi seçme ya da döngü komutlarında daha işe yarar hale bürünür. Nasıl mı? O zaman aşağıdaki örnek koda bakalım. Bu nasıl çalıştığı hakkında az bir bilgi verecektir. Bununla alakalı detaylı bilgiyi [5. Seçme Komutları](secme-komutlari.md) 'nda görüyor olacağız.İşleç | Anlamı |
---|---|
< | küçük |
> | büyük |
== | eşit |
>= | büyük eşit |
>= | küçük eşit |
!= | eşit değil |
Mantıksal İşleçler (ve, veya, değil)
İlişkisel ifadeleri mantık işleçleri ile birbirine bağlayabiliriz. İsterseniz öncelikle basit mantık kurallarını bir hatırlayalım:
İşleç | Sembolü | Anlamı |
---|---|---|
ve | Her iki ifade birlikte doğru olunca doğru olur | |
veya | İki ifadeden birisinin doğru olması yeterli | |
değil | Doğruysa yanlış, yanlışsa doğruya dönüşür |
Bir de kod örnekleri ve bunların anlamına bakalım:
İşleç | Örnek kullanımı | Anlamı |
---|---|---|
ve | yaş >= 18 ve para >= 2000 | Yaş en az 18 ve en az 2000 TL para |
veya | yaş >= 18 veya öğrenim_türü >= 3 | Yaş en az 18 veya en az lise mezunu |
değil | !(yaş >= 18) | Yaş 18'den küçük |
Kodlarımızı TPD editörü üzerinde aşağıdaki kod bölütünü kopyala yapıştır yaparak deneyebiliriz:
Editörün son satırdaki ifade için doğru ya da yanlış değerleri ürettiğine dikkat edelim. Yaş ya da para değerleri üzerinde değişiklik yapabilir, sonuçları gözlemleyebiliriz.
Diğer bir örnek: Kişinin yaşının 20 ile 30 arasında olup olmadığını anlayan programı geliştirelim:
Burada 2. satırda ve mantıksal işlecini kullanarak bunu başarabiliriz. Bu işleç sağdaki ve soldaki iki ifadenin de birden doğru olması durumunda doğru sonucunu üretecektir. Aksi durumda, yani en az birisinin hatalı olması (yaşın 10, ya da 40 olması gibi) durumunda yanlış sonucunu alıyor olacağız.
2. Girdi ve Çıktı Komutları
Elbette programlar çalışırken etraflarındaki insanlar ile iletişim halinde yer alırlar. Bazen onlardan veri alırlar. Bazen de değişik iletişim araçları ile kullanıcıya veri çıktı ederler. Örneğin klavye, fare gibi çevre birim araçları ile bilgisayarlar bizden veri alırken; ekran, hoparlör ya da titreşim kaynağı gibi çevre birimleri ile de bize veri aktarırlar.
Girdi Komutları
Bu kısım geliştirme aşamasındadır.
Çıktı Komutları
Çıktı komutu olan
yaz değişken
Hali hazırdaki program çalışma düzeninde bir değişkene değer atandığında sağ taraftaki çıktılar bölmesinde zaten değeri görüntülenmekte, ama bazı değişkenlerin konsol kısmında görüntülenmesi daha uygun olabileceğinden yaz komutu geliştirilmiştir.
3. Seçme Komutları
Programımızın bazen olası kodlar arasında seçim yapmasını isteyebiliriz. Yani yukarıdan aşağı doğru bütün kodların çalışması, istediğimiz bir program çalışma düzeni olmayabilir. Dolayısıyla
Şöyle bir söz dizimi kuralını verelim:
eğer(ilişkisel komut)
doğruysa çalışacak komut
değilse
yanlışsa çalışacak komut
Yine örnekler üzerinden gidelim. Hatırlatmak gerekirse; bu kodları kodlama sayfasına kopyala yapıştır yapıp nasıl çalıştığını gözlemleyebiliriz.
Örnek1: Öğretmeniz bize bir sınav yapsın. Sınavdan önce şöyle bir şey desin: "80 den fazla not alanları ödüllendireceğim ve 10 puan ekstra vereceğim, altında alan her kişiden ise ceza amaçlı 5 puan kıracağım." Kişinin son puan durumunu hesaplayan kodu yazalım.
Örnek2: Ehliyet kursu yönetiyoruz. Öğrenciler bize ehliyet alabilmek için başvuruyor. Kodumuz ehliyet başvuru sisteminde çalışıyor varsayalım. Kişinin yaş bilgisine göre, "ehliyet alabilirsiniz" ya da "yaşınız ehliyet almaya yeterli değildir" gibi durum mesajlarını yazdırmak istiyoruz.
Örnek3: 3 sayıdan en büyüğünü bulan programı yazalım. İş biraz da karmaşıklaşıyor...
Bu 3 sayıyı 3 değişken ile başlatıyoruz. İsimleri hatırlaması ve kullanması kolay olsun diye
Bu kodu kodlama sayfasındaki yere kopyalarak programın nasıl çalıştığına bakalım. Değişkenlerin ilk değerini farklılaştırarak kodun nasıl çalıştığına bakalım. Alternatif çözümler elbette var. Bunlar üzerine düşünelim.
4. Döngü Komutları
yinele Komutu
Bu komut kodlarımzı yineleyerek, diğer bir ifadeyle tekrarlayarak çalışmasını sağlar. Bu yüzden adı da
Şöyle bir söz dizimi kuralını verelim:
yinele(ilişkisel komut)
doğru olduğu sürece çalışacak komut
Uyarı: Unutmayalım ki; döngümüz mutlaka sonlanmalıdır. Sonlanmayan döngü istenmeyen bir durumdur.
Bu kodları Kodlama Sayfasına yapıştırıp deneyebiliriz. Kod görselleştirici kodları görsel hale getirip çalışma mantığının daha iyi anlaşılmasını sağlayacaktır.
sayarakYinele Komutu
Eğer geçici bir değişkenle sayarak bir döngü kurmak istersek
Şöyle bir söz dizimi kuralını verelim:
sayarakYinele(komut1, ilişkisel komut, komut2)
doğru olduğu sürece çalışacak komut
komut1 geçici değişken oluşturma komutudur. Bir sayı değeri ile ilklendirme yaparız. komut2 ise her döngü sonunda çalıştırılan komuttur. Aşağıdaki kodları görsel olarak görmek için denemeyi unutmayın.
Örnek kodumuz da şu şekilde:
Burada süslü parantez var bunlar ne diye soracak olabilirsiniz. Bunları bir sonraki konumuzda işleyeceğiz. Ama mantığını siz yakaladınız sanırım...