top of page

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

ÜNİTE:


1.2. PROBLEM ÇÖZME VE ALGORİTMALAR


KAZANIMLAR:


1.2.7.1. Döngü mantık yapısı içerisinde biriktirme algoritması tasarlar.


1.2.7.2. Döngü mantık yapısı içerisindeki koşulları açıklar.


1.2.7.3. Problem çözme süreçlerinde döngü yapılarını kullanarak algoritma tasarlar.


 1.2.7.4. Problem çözme süreçlerinde döngü yapılarını kullanarak akış şeması


 oluşturur.


 1.2.7.5. Problem çözümünde döngü yapısını kullanır.


1.2.8.1. Belirli bir problem için sıralama algoritması tasarlar.


 1.2.8.2. Belirli bir problem için arama algoritması tasarlar.





8.4. While/While End Döngüsü


Ele alacağımız ilk yapı, While/While End döngü yapısıdır. Bu döngü yapısı bilgisayara, koşul doğru olduğu sürece işlemleri tekrarlanmasını belirtir. Algoritma yapısı şu şekildedir:










While/While End döngü yapısı tasarladığınız zaman, algoritmayı daha anlaşılır kılmak için girinti ve köşeli ayraçlardan yaralanabilirsiniz. Bu yapıya ilişkin akış şeması ise şöyledir:



Döngünün başlangıcında, döngü içerisinde yer alan yönergelerin işlenip işlenmeyeceğine ilişkin karar vermek için koşul kontrol edilir. Eğer koşul yanlış olursa döngü içerisindeki hiçbir yönerge işleme alınmaz. Eğer koşul doğru ise döngü içerisindeki tüm yönergeler çalıştırılır ve tekrar döngünün başına dönülür. Döngü, koşul durumu yanlış olana kadar devam eder.


Aşağıda aynı döngünün If/Then/Else karar yapısına eş değer algoritması ve akış şeması görülmektedir.





Yönergelerin kaç kez tekrarlanacağının belli olmadığı zaman ya da döngüdeki yönergelerin işleme alınmayacağı durumlar olduğunda, While/WhileEnd döngü yapısı kullanılır. Bu durumlarda döngüye girerken kontrol edilen durum yanlıştır.


Örneğin bir sınıftaki öğrencilerin yaş ortalamasını hesaplayan algoritma ve akış şeması nasıl olmalıdır?






8.5. Repeat/Until Döngüsü


Bir diğer döngü türü Repeat/Until yapısıdır. Bu yapı bilgisayara, yönergeleri Repeat ve Until komutları arasında bir koşul doğru olana kadar yapmasını iletir. Bu yapı ile While yapısı arasında iki temel fark vardır:


(1) While döngü yapısında döngü koşul doğru olduğu sürece çalışır, oysa Repeat yapısında döngü koşul doğru olduğunda durur,


(2) While döngüsünde koşul sürecin başında; Repeat yapısında ise döngünün sonunda kontrol edilir.



Böylece döngü içerisindeki yönergeleri, koşul kontrol edilmeden önce en az bir kere çalıştırmış olur. Bu yüzden koşulu kontrol etmeksizin en az bir kez yapılması gereken işlemler varsa Repat/Until döngü yapısının tercih edilmesi gerekir. Repeat/Until yapısının algoritması ve akış şeması şu şekildedir:





Şimdi, bu yapıya eş değer If/Then/Else yapısını inceleyelim.










8.6. Otomatik Sayaç Döngüsü


Döngü yapısının üçüncü türü otomatik sayaç döngüsüdür. Bu yapıda döngünün her tekrarında bir değişkenin değeri arttırılır ya da azaltılır. Arttırma değeri yönerge tarafından belirtilir. Bu döngüyü tasarlayan programcı, döngü tekrar sayısını kontrol etmek için değişken olarak tanımlanan bir sayaç tutar. Döngü, bu sayaç bitirme sayısından büyük olana kadar tekrar eder. Başlama ve bitiş değerleri ile arttırma değeri sabit; değişken ya da hesaplamalı olarak değişen bir değer olabilir. Döngü tamamlandıktan sonra tamamen değişebilir. Döngüye ilişkin koşul, döngünün başlangıcında ya da bitişinde olabilir.


Otomatik sayaç döngüsüne ilişkin algoritma ve akış şeması şu şekildedir:


Koşulun, döngünün başında ya da sonunda kontrol edilmesine göre akış şeması da değişir.


Sınıfın yaş ortalamasını bulmak için bu otomatik sayaç döngü yapısına ait algoritma ve akış şemasını inceleyelim.







8.7. İç İçe Döngüler


Karar yapılarında olduğu gibi döngüler de iç içe kullanılabilir. İç içe döngüler, tekrarlayan bir dizi işlem yine tekrar edilmek istendiğinde kullanılır. İçteki döngülerin dıştaki döngülerle aynı döngü yapısında olması gerekmez. Dıştaki döngü Repeat/Until (For) yapısında iken içteki döngü While/WhileEnd yapısında ya da tam tersi biçimde olabilir. Ancak içteki ve dıştaki döngüyü kontrol eden değişkenin farklı olması gerekir.


Örneğin aşağıda görülen 4 farklı yapı da aynı çıktıyı üretmektedir. Görüldüğü gibi dışta ve içte yer alan döngüler için farklı yapılar kullanılmıştır.







8.8. Göstergeler


Göstergeler, programcının bir akışı durdurmak ya da döngüyü sonlandırmak için kontrol amaçlı kullandığı değişkenlerdir. Göstergeler mantıksal bir veri ya da değer olabilir ve indikatör olarak da ifade edilir. Bu değerler, akışı kontrol etmek ve akışa müdahale etmek için kullanılır. Kullanıcılar bu değiş- kenler hakkında bilgi sahibi değildirler. Hata göstergesi, girdi ya da çıktı da bir hata oluştuğunu belirtir. Veri sonu göstergesi, girilecek başka veri olmadığı anlamına gelir.


Bu algoritmada döngü, gösterge olarak kullanılan “i” ifadesinin değerine göre sonlandırılmaktadır.


1. Başla.


2. i = 0,


3. Yaşı Oku; (yaş)


4. Eğer yaş<19; “Merhaba Genç” yaz;


değilse “Yaşınız 18’den büyük.” yaz;


5. i = i+1;


6. Eğer i=25; 7. adıma git;


değilse 3. adıma git


7. Bitir. 




8.9. Öz Yineleme


Öz yineleme, farklı bir döngü yapısıdır. Bu durum, bir fonksiyon ya da modül kendi kendini çağırdığında oluşur. Bu durum için aşağıda verilen faktör hesaplama örneği incelenebilir.


1. Başla


2. Sayı Gir; n


3. Faktoriyel (n);


Eğer n>1 ise


Faktoriyel=n*Faktoriyel(n-1);


değilse Faktoriyel=1;


4. Bitir. 







Düşünelim/Deneyelim


1. Bir sınıfta 20 öğrenci vardır. Bu öğrencilerin sınavdan aldıkları notu okuyup sınıf ortalamasını hesaplayan programın algoritmasını yazınız.


2. Kullanıcının girdiği 10 adet sayı için;


a. 2 ile bölünebilen sayıların adedi ve toplamını,

b. 3 ile bölünebilen sayıların adedi ve toplamını,

c. 5 ile bölünebilen sayıların adedi ve toplamını bulan programın algoritmasını yazınız



3. Ekrandan girilen bir şifre için;


a. En az 8 karakter olup olmadığını,

b. En az bir simge (*,+,&) içerip içermediğini,

c. En az bir sayı içerip içermediğini bulan ve tüm sonuçlara ilişkin mesaj veren programın algoritmasını yazınız.

ç. Yukarıdaki kriterlerden üçünü de içeren şifreler içi “Güçlü Şifre”, ikisini içerenler için “Kabul Edilebilir”, birini içeren içinse “Zayıf” ve hiç birini içermiyorsa “Asla Kullanı- lamaz” mesajı yazan progframın algoritmasını oluşturunuz.


4. Girilen bir cümle içinde belirli bir kelimenin geçip geçmediğini arayan programı yazınız. Örnek “Bu gün hava çok güzel!” cümlesindeki “hava” kelimesini bulmak gibi…


5. Öğretmen, tiyatro oyunu için sınıftan bir kişi seçecektir. Sınıfta 10 öğrenci vardır. Öğ- retmen seçimi yaparken farklı bir yol izlemek istemektedir. Buna göre; öğrenciler rastgele sıraya dizilecek ve baştan saymak şartıyla her üçüncü öğrenci elenecektir. Bu durumda en sona hangi öğrenci kalır? A B C Ç D E F G H I


6. Sabit maaşla çalışan öğretmenlere performanslarına ve öğrenci sayısına göre ek maaş verilecektir. Buna göre;


a. Sınıf mevcudu 20 ile 25 arasındaysa %5 artış,

b. 25 ile 30 arasındaysa %10 artış,

c. 30’dan fazlaysa %15 artış.


Haftalık ders saati;


a. 15 ile 20 arasındaysa %5 artış,

b. 20 ile 25 arasındaysa %10 artış,

c. 25’ten fazlaysa %15 artış.


Bu durumda girilen ders saati ve öğrenci sayısına göre hak edilen maaşı hesaplayan algoritmayı yazınız.







Comentarios


bottom of page