Karar Mantık Yapısı

18.11.2020
Karar Mantık Yapısı

Karar yapıları, bilgisayara iki ya da daha fazla seçenek arasından seçim yapmak hakkı tanıyan önemli ve güçlü bir mantık yapısıdır. Eğer karar yapıları olmasaydı bilgisayarlar hızlı bir hesap makinesi olmanın ötesine gidemezdi.

Karar yapıları, insanın düşünme tarzına çok uygun olduğu için anlaşılması son derece kolaydır. Karmaşık durumlarda karar vermek zorlaştığı için programcının kararların arkasında yatan nedenleri çok iyi anlayarak tasarım yapması gerekir. Ayrıca bir karar durumunun çok farklı şekillerde ifade edilebilmesi de bu karmaşıklığa neden olabilmektedir.

Karar mantık yapısı, if-then-else (eğer-koşul sağlanırsa-x, değilse y) yönergesini kullanır. Bu durumda, eğer bir koşul doğru ise belli yönergeler; değilse farklı yönergeler çalıştırılabilir. “else” kısmı kullanılmak zorunda değildir; bazen bu durumlarda hiçbir yönerge olmayabilir. Aşağıdaki yapıyı ve satır başlarındaki boşlukları inceleyelim.

Koşul Yapısı

Koşul Yapısı

Bu kodlamada yer alan koşul;

  1. Mantıksal bir ifade (AND (VE), OR (YA DA) veya NOT (DEĞİL))
  2. İlişkisel operatörleri kullanan bir ifade (<, >, <=, >=, =),
  3. Sonucu doğru ya da yanlış çıkan mantıksal bir değişken,
  4. Bu üç seçeneğin birleşiminden oluşan bir ifade olabilir.

Koşullara ilişkin açıklamalar aşağıdaki gibi olabilir:

  1. A < B (A ve B sayısal, karakter ya da dizi gibi aynı veri türündedir.)
  2. X + 5 > = Z ( X ve Z sayısal veridir.)
  3. E < 5 OR F > 12 ( E ve F sayısal veridir.)
  4. (A < B) AND (X = 10 OR Y >15) (A ve B sayısal, karakter ya da dizi gibi aynı veri türündedir ve X ve Y sayısal veridir.)

Mantıksal operatörler bir ya da daha fazla durumu bağlamak için kullanılır. Örneğin sürücü belgesi alabilmek için 18 yaşını doldurmuş ve bir sürücü kursunu başarı ile tamamlamış olma şartı vardır. Bu örnekteki kontrol, bu iki durumu AND operatörü ile bağlayarak kontrol etmeyi gerektirir.

Tek Koşullu Yapılar

Tek bir koşulun sorgulandığı döngü yapısı için akış şeması aşağıdaki gibidir:

Tek koşullu yapılar

Tek koşullu yapılar

Koşulun sağlanıp sağlanmaması durumuna göre programın akışı değişir ve program, karara uygun yönergelerle çalışmaya devam eder. Hiçbir zaman üçüncü bir seçenek olamaz çünkü karar sembolünden yalnızca iki olasılık çıkabilir. Diğer bir ifade ile belirtilen durum ya doğrudur ya da yanlıştır. Örneğin bir öğrencinin puan ortalamasına bakarak Geçme/Kalma durumunu belirleyen bir program yazalım.

Bu programın algoritması aşağıdaki gibi olacaktır:

Tek koşullu yapı

Tek koşullu yapı

Bu programa ait akış şeması ise şu şekildedir:

Tek koşullu akış şeması

Tek koşullu akış şeması

Birden fazla koşulun olduğu durumlar biraz daha karmaşıktır. Bu tür kararlarda durumları birleştirmek için mantık operatörlerinden yararlanılır. Durumlar arttıkça karar yapısı da karmaşık hâle gelir ve “Doğru” ya da “Yanlış” için atılacak adım sayısı da artar.

Çok Koşullu Karar Yapıları

Birden fazla karar içeren algoritmaları yazmak için kullanılacak üç tür karar yapısı vardır: Düz mantık, Pozitif Mantık ve Negatif Mantık. Düz mantık bütün koşulların doğrusal olarak işlenmesi anlamına gelir. Bu durumda else ile ifade edilen diğer seçeneği bulunmaz. Koşul yanlış olduğunda program doğrudan bir sonraki koşula geçer, koşul doğru ise gerekli işlemler yapıldıktan sonra bir sonraki koşula geçilir. Program akışında bütün koşullar sıra ile gözden geçirilir. Diğer yandan, pozitif mantık ile bütün yönergeler işlenmez. Eğer koşul doğru ise bu kararların yönergeleri yerine program akışı modül içinde devam eder. Koşul doğru olduğu sürece akış bu şekildedir ancak koşulun yanlış olma durumunda diğer koşula geçilir ve doğru olana kadar devam edilir. Negatif mantık da pozitif mantığa benzemekle beraber burada program akışı karar yanlış olduğu sürece devam eder. Bazı karar durumları bu türlerin bir ya da birkaçını kullanmayı gerektirebilir.

İç İçe Karar Yapıları

Çoklu karar yapıları içeren algoritmalarda eğer koşullarını iç içe yazmamız gerekebilir. Bu durumda pozitif ve negatif mantık yapıları kullanılabilir; düz mantık yapısı kullanılmaz. Aşağıdaki algoritma, öğrencinin puan ortalamasına göre Geçme/Kalma durumunu kontrol ettikten sonra, geçiyorsa öğrencinin belge alma durumunu belirlemektedir. Bu durumda bu örneğin algoritmasını aşağıdaki biçimde düzenleyebiliriz.

İç İçe Karar Yapısı

İç İçe Karar Yapısı

Akış şeması ise şu şekilde olacaktır:

İç İçe Karar Akış Şeması

İç İçe Karar Akış Şeması

YORUMLAR

Henüz yorum yapılmamış. İlk yorumu yukarıdaki form aracılığıyla siz yapabilirsiniz.