Merhaba herkese. Bu yazımda öncelikle geçen yazımda verdiğim soruların cevapları ile başlayıp daha sonra ilişkisel notasyonlardan bahsedeceğim.

Geçen dersteki soruların çözümleri:

  1. Klavyeden girilecek bir yılın kaç gün sürdüğünüekrana yazan programın algoritmasını yazınız.
  1. Başla
  2. Oku x
  3. Toplam=x*365
  4. Yaz Toplam
  5. Bitir
  6.  Kullanıcının girdiği iki sayının karelerinin toplamını görüntüleyen algoritmayı yazınız.
  1. Oku x,y
  2. Toplam=0
  3. Toplam=(x*x)+(y*y)
  4. Yaz Toplam
  5. Bitir
  6.  İki tamsayının çarpma işlemini sadece toplama işlemi kullanarak sonucu bulduran algoritmayı yazınız.
  1. Oku a,b
  2. c=0
  3. b>0 olduğu sürece tekrarla.
  4. C=c+a
  5. b=b-1
  6. Yaz c
  7. Dur

Aslında son sorumuzla beraber algoritmada döngülere ve karşılaştırma ifadelerine girmiş olduk. Geçen dersimizde aritmetiksel notasyonlardan bahsetmiştik. Bu dersimizdede ilk olarak ilişkisel ve mantıksal notasyonlardan bahsedelim.

İLİŞKİSEL NOTASYONLAR

İlişkisel notasyonlar, algoritma yazarken daha çok karşılaştırma yaparken karşımıza çıkacak.

Bunlar neler;

> Büyük

>= Büyük eşit

<  Küçük

<= Küçük eşit

<> Farklı

== Eşit

Soru içinde kullanımlarıyla beraber daha iyi anlaşılacaktır.

MANTIKSAL NOTASYONLAR

Mantısal notasyonlarımızda

VE (AND)

VEYA (OR)

DEĞİL (NOT)

Olmak üzere 3 tanedir.

KARŞILAŞTIRMA ÖRNEKLERİ

  1. Klavyeden girilen bir sayının pozitif, negatif, veya sıfıra eşit olma durumunu hesaplayıp yazdıran programın algoritmasını yazınız.
  1. Başla
  2. Oku x
  3. Eğer (x>0) ise yaz “pozitif”
  4. Eğer (x<0) ise yaz “negatif”
  5. Eğer (x==0) ise yaz “sıfır”
  6. Bitir

SORU AÇIKLAMA

Şimdi gelin algoritmaya birde yakından bakalım ve Eğer ifadesinin çalışma mantığını görelim.

Program ilk olarak kullanıcıdan bir sayı girmesini istedi. Daha sonra program girilen bu sayının pozitif mi negatif mi yoksa sıfır mı olduğunu kontrol etmek için eğer ifadesini kullanmaya başladı. C# programlamada ve pek çok programlama dilinde if ifadesinin kullanımından bahsediyoruz.

Algoritmalar ve yazılan programlar yukarıdan aşağıya tüm adımları tek tek yaparlar.

Ama eğer ifadesinde şöyle bir şey vardır. Program eğer ifadesine geldiğinde o ifadedeki şarta bakar eğer şart doğruysa Eğer e bağlı ifadeyi gerçekler ve daha sonra diğer adımları atlar ve programı bitirir. Eğerli ifadenin şartı yanlışsa bir alttaki adıma geçer ve o şartı kontrol eder ve doğruysa buna bağlı ifadeyi gerçekler. Daha sonra diğer adımaları atlar ve  programı bitirir.

Eğer ifadesinin çalışma mantığı bu şekildedir.

  1. Klavyeden girilecek iki sayıdan büyük olanını bulup ekranda yazdıracak olan programın algoritmasını yazınız.
  1. Başla
  2. Oku x ve y
  3. Eğer (x>y) ise Yaz “büyük” x
  4. Değilse Yaz “büyük” y
  5. Bitir

Eğer ifadesine farklı bir soru tipiyle bakacak olursak.

Örnek: dışarıdan bir x sayısının girildiğini düşünelim.

               Eğer (x<30) ise

                  Eğer ( x<20)

                      Eğer ( x>15) YAZ  “A”

                     Değilse YAZ  “B”

                 Değilse YAZ  “C”

             Değilse YAZ  “D”

SORU AÇIKLAMA

Öncelikle hangi değilse hangi eğere ait bunu kavramaya çalışalım. Basitçe söyleyecek olursak en dıştaki değilse en baştaki Eğer’e aittir. 2. değilse 2. Eğer ifadesine en içteki değilsede 3. Eğer ifadesine aittir.

Şöyle x e bir değer vererek sonucun ne çıktığını hep beraber görelim. Mesela x 16 değerini alırsa sonuç ne olur.

İlk eğer ifadesi şarta bakar 16<30 mu evet bu ifade doğrudur. Algoritma buna bağlı olarak bir alt satıra geçer.16<20 mi evet bu ifadede doğrudur algoritma yine bir alt satıra geçer. Peki 16>15 mi evet bu ifadede doğrudur ve program buna bağlı olan yaz “A” ifadesini gerçekleyecektir.

X e birde 40 değerine verelim.

Program 40<30 mu diye sorduğunda bu ifadenin yanlış olduğunu görecek ve ilk Eğer e bağlı değilse nin ifadesini gerçekleyecektir. Yani yaz “D” ifadesi sonuç olarak çıkacaktır.

Sizlerde x=13 değeri için sonucun ne çıkacağına bakabilirsiniz.

Bir sonraki yazımda görüşmek üzere.


Murat Bilginer
21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.