Algoritma ve Programlamaya Giriş Sunum 3

Download Report

Transcript Algoritma ve Programlamaya Giriş Sunum 3

Öğ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
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.
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.
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örler
Operatö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
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
Program
GET Yaş
static void Main(string[] args)
{
Console.Write("Yaşınızı Giriniz...:");
byte yas = Convert.ToByte(Console.ReadLine());
IF (yaş>=18 ) THEN
DISPLAY ‘’Oy Kullanabilirsiniz’’
ELSE
DISPLAY ‘’Oy Kullanamazsınız’’
END IF
if (yas>=18)
{
Console.WriteLine("Oy Kullanabilirsiniz...");
}
else
{
Console.WriteLine("Oy Kullanamazsınız.....");
}
}
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.
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 Vize
GET Final
Bnot=(Vize * 40/100) + (Final * 60/100)
IF (Bnot>=60) THEN
DISPLAY ‘BAŞARILI’
ELSE
DISPLAY ‘BAŞARISIZ’
END IF
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();
}
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
Program
GET isim
static void Main(string[] args)
{
Console.Write("İsminizi Girin.....:");
string isim = Console.ReadLine();
IF (LEN(isim)>8) THEN
DISPLAY ‘’Uzun bir isminiz var..’’
END IF
int uzunluk = isim.Length;
if (uzunluk>8)
{
Console.WriteLine("Uzun bir isminiz var");
}
Console.ReadLine();
}
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;
0
<=
BAŞARISIZ
<
40
40
<=
ORTALAMA
<
60
60
<=
BAŞARILI
<=
100
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 Final
Bnot=(Vize * 40/100)+(Final * 60/100)
IF (Bnot<40) THEN
DISPLAY ‘’BAŞARISIZ’’
ELSE IF (Bnot<60) THEN
DISPLAY ‘’ORTALAMA’’
ELSE
DISPLAY ‘’BAŞARILI’’
END IF
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();
}
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
-∞
<=
Çok Soğuk
<=
+5
6
<=
Soğuk
<=
+15
16
<=
Ilık
<=
+25
26
<=
Sıcak
<=
+35
36
<=
Çok Sıcak
<=
+∞
GET Sıcaklık
IF (Sıcaklık<=5) THEN
DISPLAY ‘’Çok Soğuk’’
ELSE IF (Sıcaklık<=15) THEN
DISPLAY ‘’Soğuk’’
ELSE IF (Sıcaklık<=25) THEN
DISPLAY ‘’Ilık’’
ELSE IF (Sıcaklık<=35) THEN
DISPLAY ‘’Sıcak’’
ELSE
DISPLAY ‘’Çok Sıcak’’
END IF
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();
}
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
!
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 İşlemi
Veya İşlemi
Değil İşlemi
X
Y
VE (X.Y)
X
Y
VEYA (X.Y)
X
DEĞİL (X)
False
False
False
False
False
True
False
True
False
True
False
False
True
True
True
False
True
False
False
True
False
True
True
True
True
True
True
True
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
Program
GET Vize
GET Final
GET Devam
Bnot=(Vize * 40/100) + (Final * 60/100)
IF (Bnot>=60) AND (Devam<=16) THEN
DISPLAY ‘’BAŞARILI’’
ELSE
DISPLAY ‘’BAŞARISIZ’’
END IF
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();
}
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
Program
GET Modelyili
GET Km
static void Main(string[] args)
{
Console.Write("Aracın Model Yılını Girin...:");
int myili = Convert.ToInt32(Console.ReadLine());
IF (Modelyili>=2010) OR (km<=30000)
THEN
DISPLAY ‘’Temiz’’
ELSE
DISPLAY ‘’Kullanılmış’’
END IF
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();
}
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:
case durum2:
{
// durum1 de çalıştırılacak komutlar
break; // durumdan çıkma komutu
}
{
// durum2 de çalıştırılacak komutlar
break; // durumdan çıkma komutu
}
.
.
.
.
default :
}
{
//durumlardan hiç biri sağlanmadığında çalıştırılacak komutlar
break;
}
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();
}