Arduino Eğitim Kiti – Tüm Yıl İçin Arduino Müfredatı: Ders 6 Koşul Yapıları için isterseniz sunu şeklinde alt taraftaki kutucuğu büyüterek takip edebilir, isterseniz de tüm sunu sayfalarının makale haline dönüştürülmüş versiyonu takip edebilirsiniz. İçerikler büyük oranda aynıdır. Sınıf ortamında kolaylık olması açısından sunu şeklinde de sunulmuştur.

Ders İçeriği:

Koşul Yapıları

Ders Kazanımları:

  • Koşul durumlarına neden ihtiyaç duyulduğunu açıklar.
  • If-Else/If yapıları arasındaki farkı açıklar.
  • If-Else/If yapılarının kullanım yapılarını yardım almadan yazabilir.
  • Konu içinde örneklere eksiksiz cevaplar yazar.

Koşul Yapıları:

  • Hemen hemen her yazılım dilinde bulunan temel kod yapılarından birisidir.
  • Koşul yapıları ile bir durumun sonucu doğrultusunda yapılacak işi belirtebiliriz.
  • Eğer bu durum istediğimiz gibi sonuçlanmadı ise de yapılacak görevi belirleyebiliriz.
  • Arduino’da en sık kullanılan koşul komutu “if-else” komutunu inceleyelim…

“IF” KOŞUL YAPISI:

if(Koşul)

{

Koşul sağlanırsa yapılacak işlemler

}

If koşulunun kullanımı kısaca yukarıdaki şekildedir. If ifadesinin yanına sağlanmasını istediğiniz koşulu yazılır. Daha sonra süslü parantezler arasına koşul sağlandığı durumda yapılmasını istediğiniz işlemleri yazabilirsiniz.

Buradaki ifadeler bahsedilen koşul durumlarında karşılaştırma operatörleri olarak kullanılır. If koşul durumunun yanında belirtilir.

Örneğin: Girilen yaş 0’dan küçükse yanlış değer girildi şeklinde uyarı veren bir programın koşul ifadesini tasarlayalım.

if(yas<0)

{

Serial.println(“Yaş 0’dan küçük olamaz, tekrar değer giriniz.”);

}

Örneğin:  A değişkeni 1’e eşit ise A_fonk() , eğer 2’ye eşitse B_fonk() fonksiyonunu çağıralım.

    if( A == 1 )

        {

                   A_fonk();

         }

         if( A == 2)

          {

                   B_fonk();

          }

Fark ettiyseniz A’nın 1’e eşitlik durumunu  ‘==’  ile kontrol ettik. Bu işaret aslında denklik anlamına gelmektedir. Bir sayının diğer sayıya eşitliğini kontrol ettiğimiz gibi, büyüklüğü küçüklüğünü de test edebiliriz.

“IF – ELSE” KOŞUL YAPISI:

If / Else komutu kod akışını temel if ifadesinden daha fazla kontrol etmeye izin verir, birden fazla sınamanın birlikte gruplanmasına izin verir. If durumunun sağlanmadığı durumda Else komutunun eylemleri devreye girer.

if(Koşul)

  {

    Koşul doğruysa yapılacak işlemler

  }

else

  {

    Koşul yanlışsa yapılacak işlemler

  }

Örneğin değişkenimiz 500’den küçükse A eylemini yap, değilse B eylemini yap

  if (degisken < 500)

       {

         // eylem A

        }

     else

       {

         // eylem B

        }

if(hızsınırı>100)

   {

       Serial.println(“Ceza Kesildi”);

   }

else

   {

       Serial.println(“Ceza Kesilmedi”);

   }

Yukarıdaki örnekte kısaca if-else komutu örneklendirilmiştir. Eğer hız sınırı 100’den büyükse ekranda Ceza Kesildi uyarısı, hız sınırı 100’den farklı bir sayı ise Ceza Kesilmedi uyarısı veren programın koşul kısmını tasarladık.

“IF – ELSE IF – ELSE” KOŞUL YAPISI:

  • If ve Else If ile çoklu işlemler yapılabilir. Else durumunun yanına bir şart belirtemeyiz fakat else if ifadesinin yanına if’te olduğu gibi şart belirtebiliriz. Bu da bize birden fazla koşul sınama şansı verir.
  • Else if ve if koşullarının dışında kalan tüm durumlar için de else ifadesi kullanılır.

Örneğin:

if (degisken < 500)

{

                       // A işlemi.

}

else if (degisken >= 1000)

{

                      // B işlemi.

}

else

{

                        // C işlemi.

}

  • Yukarıdaki sayfadaki örnekte;

1.Eğer değişken 500’den küçükse A işlemini,

2.Değişken 1000’den büyük veya eşitse B işlemini,

3.Bunlar dışında herhangi bir değerse C işlemini yap.

Örnek:

  • Sıcaklık 70 dereceden büyük olduğunda “Tehlikeli” uyarısı veren, 60’tan büyük ve 70’den küçükse “Uyarı” şeklinde uyarı veren, diğer durumlar için “ Her şey yolunda” uyarısı veren sistemi tasarlayınız.

Çözüm:

if (sicaklik >= 70)

{

“Tehlikeli”;

}

else if (sicaklik >= 60 && sicaklik< 70)

{

“Uyarı”;

}

else

{

“Her şey yolunda”;

}

Burada “” işareti içerisinde verilen ifadeler ekrana çıktı olarak yazılacak ifadelerdir.

If – Else Komutu Akış Diyagramı:

If-else komutunun diğer kodlarda olduğu gibi akış diyagramlarında da karşılığı vardır. Bu sayede If-else kullanarak yazdığınız bir kod bloğunu akış diyagramına çevirebilirsiniz. Bir sonraki slaytta if anlamına gelen akış diyagramı şekli verilmiştir.

Örnek:

  • Not ortalaması 50’den küçük ve 0’dan büyükse “Kaldı”, 50’den büyükse “Geçti”, 0 veya – değer ise “Geçersiz Not” uyarısı veren programı yazınız ve akış diyagramını çiziniz.

Çözüm:

if (not>50)

{

“Geçti”

}

else if (not>0 and not<50)

{

“Kaldı”

}

else

{

“Geçersiz not”

}

Örnek:

  • Kullanıcı adı: admin ve şifre: 1234 olarak girilmediğinde “Geçersiz Giriş” , doğru girildiğinde ise “Giriş Başarılı” mesajını veren programı yazınız.

Çözüm:

if (kullaniciadi==”admin” and sifre==1234)

{

“Başarılı Giriş”

}

else

{

“Geçersiz Giriş”

}

NOT:

Serial.println();

Aşağıdaki örneklerde kullanılan Serial.println(); komutu arduino ide programında bir bilgiyi serial ekranda yazmaya yarar. Bu konular ileri derslerde ayrıntılı olarak anlatılacaktır. Burada konuya hazırlık olması amacıyla kullanılmıştır.


Alıştırmalar (Öğrenciler için):

  1. Bir üniversitede öğrencilerin ortalamaları 50 ve üzerinde ise dersten başarılı sayılmaktadırlar. Öğrencinin vize notu ortalamaya %40, final notu %60 etki ettiği bildiğine göre öğrencilerin ders başarı durumlarını hesaplayan programın sözde kodlarını ve akış diyagramını yazınız.
  2. Klavyeden girilen sayının tek mi, çift mi olduğunu gösteren programın sözde kodlarını ve akış diyagramını yazınız.
  3. Bir mağazada alınan ürünün fiyatı 100 Tl ve üzerinde ise 5 Tl olan kargo ücreti alınmamaktadır. Ürünün fiyatı girildiğinde toplam ödenmesi gereken tutarı yazan programın sözde kodlarını ve akış diyagramını yazınız.
  4. Klavyeden iki ürünün fiyatı girildiğinde toplam fiyat 200 TL’den fazla ise, 2.üründen %25 indirim yapan programın sözde kodlarını ve akış diyagramını yazınız.

Alıştırma Cevapları:

1) Serial.println(“Vize ve final notunu giriniz.”);

vize=(vize*40)/100;

final=(final*60)/100;

ort=vize+final;

if (ort >= 50)

{

Serial.println(“Dersten geçtiniz”);

}

else

{

Serial.println(“Dersten Kaldınız”);

}

2) Serial.println(“Sayı giriniz.”);

sonuc=sayı/2;

if (sonuc == 0)

{

Serial.println(“Sayı Çifttir.”);

}

else if(sayı==0)

{

Serial.println(“Sayı 0’a eşittir.”);

}

else

{

Serial.println(“Sayı Tektir.”);

}

3) Serial.println(“Ürünün fiyatını giriniz:”);

if (fiyat >= 100)

{

Serial.println(“Ödeyeceğiniz Toplam Fiyatta değişiklik

yapılmayacak”);

}

else

{

Serial.println(“Ödeyeceğiniz Toplam Fiyatta 5 tl kargo

bedeli eklenecek”);

}

4) Serial.println(“1. Ürünün fiyatını giriniz:”);

Serial.println(“2. Ürünün fiyatını giriniz:”);

toplam=urun1+urun2;

if (toplam >= 200)

{

Serial.println(“2. üründe %25 indirim yapıldı”);

}

else

{

Serial.println(“İndirim mevcut değil.”);

}

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz