Kodlama Rehberi

Programlamaya Giriş Kitabı için tıklayın.

İçerik Listesi

Matematik Operasyonlari

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 puan isminde bir değişken oluşturur ve içerisinde 90 sayı değerini saklar. Bu kod çalıştıktan sonra, bilgisayarın belleğinde bu sayının tutulması için bir hücre oluşturulur ve bu değer biz değiştirene veya program bitene kadar bu hücrede saklanır.

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.

Matematik Operasyonlari

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:
Matematik Operasyonlari
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. a değişkeni 5 değeri ile başladı. Ardından b bunun 3 fazlası olan 8 değerini aldı. c ise bunların farkına sahip oldu.

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.

Metematik Operasyonlari

Ö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.

saatFiyati adlı değişken almak istediğimiz saatin dolar para birimi cinsinden tutarını, telefonFiyati değişkeni ise almak istediğimiz telefonun dolar para birimi cinsinden tutarını içerisinde tutmaktadır.

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ı toplamYol değişkende, bu yol katedildiğinde harcanan tutarı ise toplamTutar adlı değişkende saklamakta ve

toplamTutar / toplamYol
ile bölme işlemini yapıp fiyat değişkeninde saklamaktadır. Her zamanki gibi bunu da yaz komutu ile yazdırmaktayız.

İ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.

Kodlamada = sembolü çok farklı bir mana ifade ediyor. x leri bir tarafta bırakıp x 'in değerini bulmak gibi bir durum kodlamada söz konusu değil! Programlamaya yeni başlayanlar bu yanılgıya maalesef çok düşüyorlar.

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.
İlişkisel eşitlik ise programlamada farklı bir gösterimle yapılıyor. Tek eşitlik olan = sembölü değer ataması ya da değişken tanımlamasında kullanılırken ilişkisel eşitlik için çift eşittir sembolü kullanılıyor. Yani == olarak.

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.
Kodlamadaki bütün ilişkisel işleçler doğru ya da yanlış sonucunu verirler.
Özetleyecek olursak:
İş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 komutu aldığı değişken ismini konsol ekranına yansıtır. Aşağıdaki gibi bir söz dizimi vardır.

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 eğer ve değilse komutları bu noktada aradığımız komutlardır. eğer komutunun ardından gelen parantezlerin arasına doğruluğu kontrol edilecek olan ilişkisel komut yazılır. Doğruysa eğerin ardındaki kısım yanlışsa değilse kısmı çalışır. Zaten adı üzerinde gayet anlaşılır değil mi?

Şö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 num1 gibi bir isim verdik. Diğerleri de bunun ismiyle ilişkili olarak değer aldı. -Unutmayın iyi bir programcı değişken isimlerini anlamlı seçer- Sırasıyla değerlerini veriyoruz.

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 yinele. Bu komut; eğer komutunda olduğu gibi çalışma şartı komutun parantez içindeki ilişkisel komut kısmın doğru olması şartıdır. Burası belli bir zaman sonra yanlış olacak ve döngümüz sonlanacaktır.

Şö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 sayarakYinele aradığımız komuttur.

Şö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...