19
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ Öğr. Gör. İsmail KARAMAN Çankırı Karatekin Üniversitesi Meslek Yüksekokulu

ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ

  • Upload
    fai

  • View
    241

  • Download
    1

Embed Size (px)

DESCRIPTION

ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ. Öğr. Gör. İsmail KARAMAN Çankırı Karatekin Üniversitesi Meslek Yüksekokulu. Konular. C# da Karar Yapıları ( If Else Kullanımı)( switch case Kullanımı) C# Döngüler. C# da Karar YapILARI. - PowerPoint PPT Presentation

Citation preview

Page 1: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

ALGORİT

MALAR

VE

PROGRAMLA

MAYA G

İRİŞ

Öğr. Gör. İsmail KARAMANÇankırı Karatekin ÜniversitesiMeslek Yüksekokulu

Page 2: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

KONULAR

C# da Karar Yapıları (If Else Kullanımı)(switch case Kullanımı)

C# Döngüler

Page 3: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI

Program yazarken bazı durumlarda programın akış yönünü değiştirmek gerekebilir. Belirtilen bir koşulun sağlanması ve sağlanmaması durumlarında program farklı işlemler yapabilir. Bu tür bir programlamanın yapılabilmesi için karar yapılarından yararlanılır.

Örnek: ‘Eğer hava güneşli ise dışarı çıkacağım.’

Örnek duruma bakılacak olursa havanın güneşli olması durumunda kişinin bir eylem gerçekleştireceği belirtilmektedir.

Örnek:‘Eğer Saat 7:00 den önce kalkarsam derse yetişirim,

kalkamazsam derse geç kalırım.’

Bu cümlede de saat 7 den önce kalkılması durumunda derse yetişilebileceği kalkılamaz ise derse geç kalınacağı belirtilmektedir.

Page 4: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (IF ELSE YAPISI)

C# da karar yapıları oluşturabilmek için (programın akış yönünü değiştirebilmek için) IF ELSE yapılarından faydalanılır.

if else kullanımı;

if (mantıksal sınama){

//Şartın sağlandığında çalıştırılacak kodlar}else{

//Şartın sağlanmadığında çalıştırılacak kodlar}

Burada yapılan mantıksal sınama (Koşul) işlemi yalnızca iki farklı değer üretebilir.

1. Koşulun sağlandığı durumlarda true 2. Koşulun sağlanmadığı durumlarda false

sonuçları üretilir.

Page 5: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (IF ELSE YAPISI)

C# mantıksal sınama yapabilmek için mantıksal operatörler kullanılır.

C# da Kullanılan Mantıksal OperatörlerOperatör Anlamı Örnek Yas = 42

== Eşittir Yas == 100 False

!= Eşit değildir Yas != 0 True

< Küçüktür Yas < 21 False

<= Küçük veya eşit Yas <= 18 False

> Büyüktür Yas > 16 True

>= Büyük veya eşittir Yas >=30 True

Page 6: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (IF ELSE YAPISI)

Örnek: Klavyeden girilen yaş değeri 18 den küçük ise ekrana ‘Oy Kullanabilirsiniz’ değilse ekrana ‘Oy Kullanamazsınız’ mesajını yazan algoritma ve programı oluşturunuz.

Çözüm :

Algoritmik Çözüm

GET Yaş

IF (yaş>=18 ) THENDISPLAY ‘’Oy Kullanabilirsiniz’’ELSEDISPLAY ‘’Oy Kullanamazsınız’’END IF

Program

static void Main(string[] args) {Console.Write("Yaşınızı Giriniz...:");byte yas = Convert.ToByte(Console.ReadLine());

if (yas>=18) {Console.WriteLine("Oy Kullanabilirsiniz..."); } else {Console.WriteLine("Oy Kullanamazsınız....."); }

}

Page 7: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (IF ELSE YAPISI)

Örnekte de görüldüğü üzere şart sağlandığında if deyiminin altında yer alan 1. blok çalıştırılmış, sart eğer sağlanmıyorsa else deyiminin altında yer alan 2. blok çalıştırılmıştır.

Program çalıştırıldığında şöyle bir ekran çıktısı vermektedir.

Page 8: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (IF ELSE YAPISI)

Örnek: Klavyeden girilen vize ve final not değerlerine göre başarı notu 60 veya 60 dan büyük ise ekrana ‘BAŞARILI’, değilse ekrana ‘BAŞARISIZ’ sonucunu yazan algoritma ve programı oluşturunuz.(Not: Başarı notu hesaplanırken vize notunun %40 ı, final notunun %60 ı alınacaktır.)

Çözüm :

Algoritmik Çözüm

GET VizeGET FinalBnot=(Vize * 40/100) + (Final * 60/100)

IF (Bnot>=60) THENDISPLAY ‘BAŞARILI’ELSEDISPLAY ‘BAŞARISIZ’END IF

Page 9: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (IF ELSE YAPISI)

Program

static void Main(string[] args) { Console.Write("Vize Notunuzu Girin...:"); int vize = Convert.ToInt32(Console.ReadLine()); Console.Write("Final Notunuzu Girin..:"); int final = Convert.ToInt32(Console.ReadLine()); int bnot = (vize * 40 / 100) + (final * 60 / 100);

if (bnot>=60) { Console.WriteLine("BAŞARILI"); } else { Console.WriteLine("BAŞARISIZ"); } Console.ReadLine();

}

Page 10: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (IF ELSE YAPISI)

C# de if yapısı kullanılırken false durumu her zaman belirtilmek zorunda değildir. Şartın sağlandığı durumlarda yapılacak işler belirtildikten sonra program normal akış yönünde devam edebilir.

Örnek: Klavyeden girilen isim değeri 8 karakterden uzun ise ekrana uzun bir isminiz var mesajı veren algoritma ve programı oluşturunuz.

Algoritmik Çözüm

GET isim

IF (LEN(isim)>8) THENDISPLAY ‘’Uzun bir isminiz var..’’END IF

Program

static void Main(string[] args) {Console.Write("İsminizi Girin.....:");string isim = Console.ReadLine();

int uzunluk = isim.Length;

if (uzunluk>8) {Console.WriteLine("Uzun bir isminiz var"); } Console.ReadLine(); }

Page 11: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (IF – ELSE IF – ELSE YAPISI)

Program içerisinde birden fazla mantıksal sınama yapılacağı zaman else if yapısından yararlanılır.

Örnek: Klavyeden girilen vize ve final notu değerine göre öğrencinin başarı notu;

Tabloya göre hesaplanan başarı notu hangi ifadeye karşılık geliyorsa mesajı ekranda gösteren algoritma ve programı oluşturunuz.(Not: Başarı notu hesaplanırken vize notunun %40 ı, final notunun %60 ı alınacaktır.)

Algoritma (Sözde Kodlar Yöntemi)

GET Vize GET FinalBnot=(Vize * 40/100)+(Final * 60/100)IF (Bnot<40) THENDISPLAY ‘’BAŞARISIZ’’ELSE IF (Bnot<60) THENDISPLAY ‘’ORTALAMA’’ELSEDISPLAY ‘’BAŞARILI’’END IF

0 <=

BAŞARISIZ < 40

40 <=

ORTALAMA < 60

60 <=

BAŞARILI <= 100

Page 12: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (IF – ELSE IF – ELSE YAPISI)

Program;

static void Main(string[] args) { Console.Write("Vize Notunuzu Girin...:"); int vize = Convert.ToInt32(Console.ReadLine()); // GET Vize Console.Write("Final Notunuzu Girin...:"); int final = Convert.ToInt32(Console.ReadLine()); // GET Final

int bnot = (vize * 40 / 100) + (final * 60 / 100); // Bnot

if (bnot<40) //IF(Bnot<40) THEN { Console.WriteLine("BAŞARISIZ"); // DISPLAY ‘’BAŞARISIZ’’ } else if (bnot<60) //ELSE IF(Bnot<60) THEN { Console.WriteLine("ORTALAMA");// DISPLAY ‘’ORTALAMA’’ } else { Console.WriteLine("BAŞARILI"); // DISPLAY ‘’BAŞARILI’’ }// END IF Console.ReadLine(); }

Page 13: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (IF – ELSE IF – ELSE YAPISI)

Örnek: Santigrat cinsinden girilen sıcaklık değerine göre hava tahmininde bulunan algoritma ve programı oluşturunuz.

Tahmin Değerleri Console.Write("Sıcaklık Değerini Girin..:");int sıcaklık =Convert.ToInt32(Console.ReadLine());

if (sıcaklık<=5) { Console.WriteLine("Çok Soğuk"); } else if (sıcaklık<=15) { Console.WriteLine("Soğuk"); }else if (sıcaklık<=25) { Console.WriteLine("Ilık"); } else if (sıcaklık <= 35) { Console.WriteLine("Sıcak"); } else { Console.WriteLine("Çok Sıcak"); }Console.ReadLine(); }

-∞ <= Çok Soğuk <= +5

6 <= Soğuk <=+15

16 <= Ilık <=+25

26 <= Sıcak <=+35

36 <= Çok Sıcak <= +∞

GET SıcaklıkIF (Sıcaklık<=5) THENDISPLAY ‘’Çok Soğuk’’ELSE IF (Sıcaklık<=15) THENDISPLAY ‘’Soğuk’’ELSE IF (Sıcaklık<=25) THENDISPLAY ‘’Ilık’’ELSE IF (Sıcaklık<=35) THENDISPLAY ‘’Sıcak’’ELSEDISPLAY ‘’Çok Sıcak’’END IF

Page 14: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (BAĞLAYICILAR)

Karar yapıları oluşturulurken bazı durumlarda birden fazla koşul kontrolü yapmak gerekebilir. Örneğin öğrencinin hem başarı notunun 60 dan yukarı olması hem de devamsızlığın 16 saatten aşağı olması durumunda Başarılı diğer durumlarda Başarısız olması istendiğinde birden fazla koşulu kontrol etmek gerekir.

Bu tür durumlarda mantıksal bağlayıcı operatörlerden yararlanılır. Bu operatörler ile sadece iki değil, ikiden fazlada koşul birbirine bağlanabilir.

Mantıksal Operatörler

Bağlayıcı Algoritmada Kullanımı

C# da Kullanımı

VE AND &&

VEYA OR ||

ÖZEL VEYA

XOR ^

DEĞİL NOT !

Page 15: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (BAĞLAYICILAR)

VE Operatörü: Birden fazla tanımlanmış olan koşulların tümünün true üretmesi sonucunda true, diğer durumlarda false sonucu üretir.

VEYA Operatörü: Birden fazla tanımlanmış olan koşullardan herhangi birinin true üretmesi sonucunda true, diğer durumlarda false sonucu üretir.

DEĞİL Operatörü: Bir yada birden fazla tanımlanmış olan koşulların ürettiği sonucun tersini üretir.

Ve İşlemiX Y VE (X.Y)

False False False

False True False

True False False

True True True

Veya İşlemi

X YVEYA (X.Y)

False False True

False True True

True False True

True True True

Değil İşlemi

XDEĞİL

(X)

False True

True False

Page 16: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (BAĞLAYICILAR)

Örnek: Klavyeden girilen vize, final, ve devamsızlık saatine göre başarı notu 60 ve üzeri, devamsızlık saati 16 saatten az ise ekrana «BAŞARILI», değilse ekrana «BAŞARISIZ» yazan algoritma ve programı oluşturunuz.(Not: Başarı notu hesaplanırken vize notunun %40 ı, final notunun %60 ı alınacaktır.)Algoritmik Çözüm

GET VizeGET FinalGET DevamBnot=(Vize * 40/100) + (Final * 60/100)IF (Bnot>=60) AND (Devam<=16) THENDISPLAY ‘’BAŞARILI’’ELSEDISPLAY ‘’BAŞARISIZ’’END IF

Program

static void Main(string[] args) {Console.Write("Vize Notunu Girin...:");int vize = Convert.ToInt32(Console.ReadLine());Console.Write("Final Notunu Girin..:");int final = Convert.ToInt32(Console.ReadLine());Console.Write("Devam Saatinin Girin:");int devam = Convert.ToInt32(Console.ReadLine());

int bnot = (vize * 40 / 100) + (final * 60 / 100); if ((bnot >= 60) && (devam <= 16)) { Console.WriteLine("BAŞARILI"); } else { Console.WriteLine("BAŞARISIZ"); } Console.ReadLine(); }

Page 17: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# DA KARAR YAPILARI (BAĞLAYICILAR)

Örnek: Klavyeden girilen aracın model yılı ve km bilgisine göre araç 2010 yılından sonra üretilmiş ise yada km si 30000 den düşük ise ekrana «Temiz» değilse ekrana «Kullanılmış» yazan algoritma ve programı oluşturunuz

Algoritmik Çözüm

GET ModelyiliGET Km

IF (Modelyili>=2010) OR (km<=30000) THENDISPLAY ‘’Temiz’’ELSEDISPLAY ‘’Kullanılmış’’END IF

Program

static void Main(string[] args) {Console.Write("Aracın Model Yılını Girin...:");int myili = Convert.ToInt32(Console.ReadLine());

Console.Write("Aracın Km sini Girin..:");int km = Convert.ToInt32(Console.ReadLine()); if ((myili >=2010) || (km <= 30000)) { Console.WriteLine("TEMİZ"); } else { Console.WriteLine("KULLANILMIŞ"); } Console.ReadLine();

}

Page 18: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# - KARAR YAPILARI (SWITCH – CASE)

 Switch – Case bir değişkenin aldığı birden fazla değere göre farklı durumların çalıştırılması gereken hallerde kullanılır. Çoklu if yapısı gibide düşünülebilir.

Kullanımı:

switch (deger){case durum1: {

// durum1 de çalıştırılacak komutlarbreak; // durumdan çıkma komutu}

case durum2: {// durum2 de çalıştırılacak komutlarbreak; // durumdan çıkma komutu}

.

.

.

.default : {

//durumlardan hiç biri sağlanmadığında çalıştırılacak komutlarbreak;}

}

Page 19: ALGORİTMALAR  VE  PROGRAMLAMAYA GİRİŞ

C# - KARAR YAPILARI (SWITCH – CASE)

Örnek: Klavyeden girilen iki sayıyı seçilen işleme tabi tutan algoritma ve programı oluşturunuz.  

static void Main(string[] args) { double sayi1, sayi2, sonuc = 0; string secim; Console.Write(" 1-Toplama\n 2-Çıkarma\n 3-Çarpma\n 4-Bölme \n Seçiminiz(1/4) >>>"); secim = Console.ReadLine(); Console.Write("Lütfen 1. sayıyı giriniz ="); sayi1 = double.Parse(Console.ReadLine()); Console.Write("Lütfen 2. sayıyı giriniz ="); sayi2 = Convert.ToDouble(Console.ReadLine()); switch (secim) { case "1": { sonuc = sayi1 + sayi2; break; } case "2": { sonuc = sayi1 - sayi2; break; } case "3": { sonuc = sayi1 * sayi2; break; } case "4": { sonuc = sayi1 / sayi2; break; } default: { Console.WriteLine("Hatalı seçim yapıldı ! "); break; } } Console.Write("Sonuç ={0}", sonuc); Console.ReadKey(); }