top of page

BİLGİSAYAR BİLİMİ KUR 1 - 1. DÖNEM 17. HAFTA

ÜNİTE:


1.2. PROBLEM ÇÖZME VE ALGORİTMALAR


KAZANIMLAR:


1.2.6.5. Karar tabloları oluşturur.


1.2.6.6. Problem çözme süreçlerinde karar yapılarını kullanarak akış şeması oluşturur.




8. DÖNGÜ YAPISI İLE PROBLEM ÇÖZME


Bu bölümde;

  •  Bir probleme çözüm üretebilmek için döngü yapısını kullanabilecek,


  •  Döngü yapısını karar yapıları ve doğrusal mantık ile birleştirebilecek,


  •  Problem çözme araçlarını kullanarak çözüm üretebilecek,


  •  Sayaç ve birikeçleri problem çözümünde kullanabilecek,


  •  Problemin çözümü için iç içe döngüler oluşturabilecek,


  •  Döngü için kullanılabilecek 3 farklı türü ayırt edebilecek,


  •  Öz yinelemeyi kullanabileceksiniz. 



8.1. Döngü Mantık Yapısı


Problem çözüm sürecinde kullanılacak üçüncü bir karar yapısı, döngü yapısıdır. Bu yapı, tekrarlayan bir yapıdır. Çoğu problem, aynı işlemi farklı verileri kullanarak tekrar etmeyi gerektirir. Bu yüzden bu yapı son derece önemlidir. Bu yapı kullanılarak isim listesinin alfabetik sıraya dizilmesi ya da ödeme kayıtlarının araştırılması gibi tekrarlayan işlemler yapılabilir. Bu yapı, karar yapısından daha zor anlaşılan bir yapıdır ama bu yapının kullanımı daha kolaydır. Bu yapıdaki zorluk, hangi yönergelerin tekrarladı- ğını belirleme sürecidir.


Tekrarlayan işlemleri yürütmenin yanı sıra döngü yapısı işlemi, çözüm basamakları içerisinde önceki basamaklara yönlendirmek amacıyla da kullanılır. Bu durumda GoTo (Git) komutu kullanılabilir. Bu komut numarası verilen satıra yönlendirme işlemi yapar. GoTo komutu yerine döngü kullanmak, programın okunabilirliğini de artırmaktadır. Her biri If/Then/Else ya da GoTo komutlarını kullanan farklı yönerge setleri ile oluşturabilen 3 farklı döngü yapısı vardır. Ancak If/Then/Else karar mantık yapısıdır ve bir döngüyü yönetmek amacıyla kullanılmamalıdır.


Döngü türlerinden biri, bir koşul doğru olduğu sürece işlemleri tekrarlayan While/WhileEnd döngü yapısıdır. Bu yapı, koşul yanlış olduğunda döngü işlemleri tekrarlamayı durdurur. Bir diğeri bir koşul yanlış olduğu sürece ya da doğru olana kadar işlemleri tekrarlayan Repeat/Until döngü yapısıdır. Üçüncü bir tür ise otomatik sayaç döngüsüdür. Bu yapıda bir değişkene ilk değer atanır, belirlenen sabit bir biçimde sürekli arttırılarak hedef sayıdan büyük ya da eşit olana kadar işlemlerin tekrarlanması sağlanır. Problemin çözüm sürecine göre bu 3 türden herhangi biri tercih edilebilir. Her üç tür için oluşturulacak algoritma ve akış şeması birbirinden farklıdır. Programın okunabilirliğini arttırmak için girinti kullanmak son derece önemlidir.


Döngü yapısı kapsamında birkaç standart işlem türü vardır. Bunlardan ikisi; sayaç kullanarak arttırma ya da azaltma yapmak, diğeri ise birikeç kullanarak toplam ya da işlem sonucunu hesaplamaktır. Her iki durumda değişkene atanan değer değişir ve yine aynı değişkende tutulur. Sayaç ve birikeç arasındaki temel fark, eklenen ya da çıkarılan değerdir. Sayarken değer sabittir ancak biriktirirken değişebilir. Her iki durumda da işlemlere başlamadan önce değişkene 0 (sıfır) değeri atanır ki bu işleme “ilk değer atama” denir.



8.2. Arttırma


Sayma ya da artırma işlemi bir değişkene sürekli sabit bir değer ekleyerek gerçekleştirilir. Bu işlemi gerçekleştirmek için bir atama satırı gerekir.


Örneğin


sayaç = sayaç + 1 ya da s = s + 1


değişkeni her işlem adımında değişken değerine bir ekleyerek değeri artırır. Atama işlemi “= (eşit)” işaretinin sağ tarafındaki işlem sonucunun sol taraftaki değişkene yüklenmesini sağlar. Artırma işlemi bir atama yönergesidir. Bu yönerge programa, maddelerin ve insanların derece ve benzeri bir dizi olgu sayısını problemin çözümünün bir parçası olarak hesaba katmasını sağlar. Arttırma işlemi yapılırken kullanılan atama yönergesini inceleyelim. Kullandığımız değişken, atama ifadesinin her iki tarafında da yer almaktadır. Değişken + işaretinden sonra gelen değer kadar arttırılır. Bu yönerge, sayacın değerini alır ve bir ekleyerek değiştirir. Böylece değişkenin yeni bir değeri olur. Arttırmak için kullanılan değer 1, 2, 3 gibi pozitif sayılar arasından seçilen farklı bir değer olabilir hatta arttırmak yerine azaltmak istenirse negatif değerler de kullanılabilir. Bu örnekte sayaç değişkenine, döngüye girmeden önce “0” değeri verilerek ilk değer ataması yapılmıştır.




8.3. Biriktirme


Programın diğer bir görevi ise bir grup sayıyı toplayıp biriktirerek toplamı ya da sonucu bulmaktır. Biriktirme işlemi arttırma işlemi ile çok benzerdir ancak her seferinde toplama ya da sonuca eklenen değer sabit olmayabilir. Biriktirme işlemi için kullanılan yönerge şu şekildedir:


toplam = toplam + değişken ya da t = t + d


Örneğin toplam satışı bulmak için kullanılacak yönerge şöyledir:


toplam satış = toplam satış + satış


Arttırma örneğinde olduğu gibi kullanılan değişken atama yönergesinde her iki tarafta da yer alır ancak eklenen değer (bu örnekte satış değişkeni) her defasında değişebilir. Diğer bir ifade ile, birikeç ile toplam ya da sonuç değeri içeren bir değişkene yeni bir değer eklenmektedir.


Bu örneklerde döngüye girmeden önce toplam satış ya da toplam değerine ilk değer olarak “0” atanmalıdır. Bir dizi sayının çarpımını hesaplamak, iki durum hariç, bu sayıların toplamını bulmaya benzemektedir: (1) “+” sembolü yerine “*” kullanılır, (2) sonuç değişkenine atanan ilk değer “0” değil “1” olmalıdır.


sonuç = 1


sonuç = sonuç * sayı


Bir değişken tekrarlı yapı içerisinde yeniden kullanılabilir.




























Comments


bottom of page