Koşul İfadeleri-1

Download Report

Transcript Koşul İfadeleri-1

BPR152 ALGORİTMA VE
PROGRAMLAMA - II
Öğr. Gör. Bayram AKGÜL
[email protected]
http://bmyo.bartin.edu.tr/akgul
Bu Günkü Konular
• Koşul İfadeleri
– If yapısı ve karşılaştırma operatörleri
<, <=, >, >=, ==, !=
– Kompleks karşılaştırma ifadelerini anlama
• Mantıksal operatörler (!, &&, ||)
– Kademeli ve iç içe if yapıları
2
C# Program Yapısı
using System;
/* program alan adı olmak zorunda değil*/
namespace ilk_program
{
// program sınıfı olmak zorunda
class Program
{
/* Main olmak zorunda */
static void Main()
{
/* Değişkenler programda kullanılacak verileri tutar. */
Değişken Tanımlama;
/* Program basamakları: I/O, hesaplamalar (ifadeler) */
ifade1;
ifade2;
…
ifadeN;
}
}
}
3
Örnek Programı
• Program; bitene kadar adım adım çalışacak ifadelerden
oluşur.
using System;
class Program
{
Başla
/* inch’i santimetreye dönüştürme */
static void Main()
Kullanıcıdan inch girmesini iste
{
double inch;
double santimetre;
santimetre = inch * 2.54
Console.Write("inch gir: ");
inch = double.Parse(Console.ReadLine());
İnch ve santimetre yi
ekrana yaz
Bitir
santimetre = inch * 2.54;
Console.WriteLine("{0} inch {1} santimetre eder",
inch, santimetre);
}
}
4
If yapıları ile programlar
• İki farklı seçenekten birinin seçilmesi
gereken durumlarda ne yapmalıyız ?
– Bir karşılaştırma yaparsın ve karşılaştırma
sonucuna göre iki farklı ifadeden birini
çalıştırırsın.
– Karşılaştırma, karar verme ile ilgili verdiğimiz
örnekleri hatırlayın
– İki sayıdan büyük ve küçük olanını nasıl
çözdüğümüzü hatırlayalım.
5
2 sayıdan küçük ve büyük olanını bulma
Başla
1.
Kullanıcıdan sayı1 ve sayı2
yi girmelerini iste
2. eğer (sayı1 < sayı2)
–
–
2.1. küçük = sayı1;
2.2. büyük = sayı2;
3. değilse (sayı1 >= sayı2)
–
–
3.1. küçük = sayı2;
3.2. büyük = sayı1;
4. küçük ve büyük sayıları
ekrana yazdır
Kullanıcıdan sayı1 ve
sayı2 yi girmelerini iste
sayı1 < sayı2 ?
H
küçük = sayı2
büyük = sayı1
E
küçük = sayı1
büyük = sayı2
küçük ve büyük sayıları
ekrana yazdır
Bitir
6
if-else İfadesi
• Bir karşılaştırma yaparak programın iki seçenekten
birini çalıştırmasına izin verir.
• Kullanımı:
Koşul
if (Koşul)
ifade1;
[else
ifade2;]
E
H
ifade 2
ifade 1
• Eğer koşul sonucu doğru ise (true) ifade1 çalışacak,
değilse ifade2 çalışacak.
7
if-else Örnekler
int finalNotu;
Console.Write("Final Notu Giriniz:");
int.TryParse(Console.ReadLine(), out finalNotu );
if (finalNotu >= 50)
Console.WriteLine("Geçti");
8
if-else Örnekler
int finalNotu;
Console.Write("Final Notu Giriniz:");
int.TryParse(Console.ReadLine(), out finalNotu);
if (finalNotu >= 50)
Console.WriteLine("Geçti");
else
Console.WriteLine("Kaldı!");
9
Koşulun durumuna göre birden fazla
ifade çalıştıracaksak ne yapmalıyız?
blok
(birleşmiş
durumlar)
int finalNotu;
…
if(finalNotu >= 50)
{
Console.WriteLine("Geçti!");
Console.WriteLine("Tebrikler!");
}
else
{
Console.WriteLine("Kaldı!");
Console.WriteLine("Daha iyi çalış.");
}
10
Süslü parantezlerin yeri
• Süslü parantezlerin yeri bir stil sorunudur
– Compiler için bir sorun değildir.
int finalNotu;
…
if(finalNotu >= 45){
Console.WriteLine("Geçti! ");
Console.WriteLine("Tebrikler! ");
} else {
Console.WriteLine("Kaldı! ");
Console.WriteLine("Daha iyi çalış. ");
}
11
2 tam sayıdan küçük ve büyük olanını bulma
int sayı1, sayı2, küçük, büyük;
Başla
Console.WriteLine("iki sayı giriniz:");
Kullanıcıdan sayı1 ve
sayı2 girmelerini iste
sayı1 < sayı2 ?
H
küçük = sayı2
büyük = sayı1
Küçük ve büyük
sayıları yazdır
Bitir
Console.Write("Birinci Sayı:");
int.TryParse(Console.ReadLine(), out sayı1);
E
küçük = sayı1
büyük = sayı2
Console.Write("İkinci Sayı:");
int.TryParse(Console.ReadLine(), out sayı2);
if (sayı1 < sayı2)
{
küçük = sayı1;
büyük = sayı2;
}
else
{
küçük = sayı2;
büyük = sayı1;
}
Console.WriteLine("Büyük ={0}, Küçük ={1}",
büyük, küçük);
12
Programın Çalışması(1)
int sayı1, sayı2, küçük, büyük;
DATA
Console.WriteLine("<iki sayı giriniz>");
Console.Write("Birinci Sayı:");
int.TryParse(Console.ReadLine(), out sayı1);
sayı1
?
45
sayı2
?
56
Console.Write("İkinci Sayı :");
int.TryParse(Console.ReadLine(), out sayı2);
küçük
?
45
büyük
?
56
if (sayı1 < sayı2)
{
küçük = sayı1;
<iki sayı giriniz>
büyük = sayı2;
Birinci Sayı: 45
}
else
İkinci Sayı : 56
{
Büyük Sayı 56, Küçük
küçük = sayı2;
büyük = sayı1;
}
Console.WriteLine("Büyük Sayı {0}, Küçük Sayı {1}", büyük, küçük);
Sayı 45
13
Programın Çalışması(2)
int sayı1, sayı2, küçük, büyük;
Console.WriteLine("<iki sayı giriniz>");
Console.Write("Birinci Sayı:");
string str = Console.ReadLine();
int.TryParse(str, out sayı1);
Console.Write("İkinci Sayı :");
str = Console.ReadLine();
int.TryParse(str, out sayı2);
DATA
sayı1
?
77
sayı2
?
22
küçük
?
22
büyük
?
77
if (sayı1 < sayı2)
<iki sayı giriniz>
{
Birinci Sayı: 77
küçük = sayı1;
büyük = sayı2;
İkinci Sayı : 22
}
Büyük Sayı 77, Küçük
else
{
küçük = sayı2;
büyük = sayı1;
}
Console.WriteLine("Büyük Sayı {0}, Küçük Sayı {1}", büyük, küçük);
Sayı 22
14
if ifadesinde karşılaştırma işlemleri
• if ifadesinin içindeki koşul iki değeri karşılaştırır ve
doğru (True) veya yanlış (False) değer üretir.
»Koşul ifadesi olarak adlandırılır
»Karşılaştırma operatörleri kullanılarak biçimlendirilirler.
Operator
koşul
Y
N
ifade 2
ifade 1
Anlamı
==
eşittir
!=
eşit değil
<
küçüktür
<=
>
>=
küçük eşit
büyüktür
büyük eşit
15
Karşılaştırma operatörleri - Örnek
• Varsayalım a = 1, b = 2, ve c = 3 olsun.
İfade
Karar
a < b
True
(a + b) >= c
True
(b + c) > (a + 5)
False
c != 3
False
b == 2
True
16
Akış diyagramı
3 sayının küçük olanını bulma (1)
Başla
Kullanıcıdan sayı1, sayı2 ve
sayı3 ü girmelerini iste
sayı1 < sayı2 ?
evet
hayır
sayı2 < sayı3 ?
evet
hayır
küçük = sayı3
sayı1 < sayı3 ?
evet
hayır
küçük = sayı2
küçük = sayı3
küçük = sayı1
küçük sayıyı yazdır
Bitir
17
Kod: 3 sayının küçük olanını bulma (1)
int a, b, c, kucuk;
Console.WriteLine("3 sayı giriniz: ");
Console.Write("1. sayı:");
int.TryParse(Console.ReadLine(), out a);
Console.Write("2. sayı:");
int.TryParse(Console.ReadLine(), out b);
Console.Write("3. sayı:");
int.TryParse(Console.ReadLine(), out c);
if (a < b)
{
if (a < c) kucuk = a;
else kucuk = c;
}
else
{
if (b < c) kucuk = b;
else kucuk = c;
}
Console.Write("{0}, {1}, {2} sayılardan küçüğü {3}", a, b, c, kucuk);
18
Akış diyagramı
3 sayının küçük olanını bulma(2)
Start
Kullanıcıdan sayı1, sayı2 ve
sayı3 ü girmelerini iste
küçük = sayı1
sayı2 < küçük ?
evet
küçük = sayı2
hayır
sayı3 < küçük ?
evet
hayır
küçük sayıyı ekrana yazdır
End
küçük = sayı3
19
Kod: 3 sayının küçük olanını bulma (2)
int a, b, c, kucuk;
Console.WriteLine("3 sayı giriniz: ");
Console.Write("1. sayı:");
int.TryParse(Console.ReadLine(), out a);
Console.Write("2. sayı:");
int.TryParse(Console.ReadLine(), out b);
Console.Write("3. sayı:");
int.TryParse(Console.ReadLine(), out c);
kucuk = a;
/* farzet; a en küçüğü*/
if (b < kucuk) kucuk = b; /* b daha küçük mü? */
if (c < kucuk) kucuk = c; /* c daha küçük mü? */
Console.WriteLine("{0}, {1}, {2} sayılardan küçüğü {3}",
a, b, c, kucuk);
20
Mantıksal Operatörler
• Bazı durumlarda daha kompleks karşılaştırma
işlemleri yapmak isteyebilirsiniz.
– (x eşittir 5 mi) VEYA (x eşittir 8 mi)
• (x == 5) || (x == 8)
– (x büyüktür 5 mi) VE (x küçüktür 10 mu)
• (x > 5) && (x < 10)
– (x küçüktür y mi) VE (y eşit değil 20 mi)
• (x < y) && (y != 20)
• C# programlama dili daha komplex karşılaştırma
işlemleri yapmak için 3 mantıksal operatör
sunuyor
– AND (&&), OR (||), NOT (!)
21
Mantıksal Operatörler
• Karşılaştırma işlemlerini doğru mu (True) veya
yanlış mı (False) diye birleştirmede kullanılır.
– Mantıksal operatörler kullanılarak oluşturulan kompleks
karşılaştırmalar if ifadelerinin içinde kullanılabilir.
Sembol
Anlamı
&&
AND – ve
||
OR – veya
!
NOT – değil
a
b
a && b
a || b
False
False
False
False
False
True
False
True
True
False
False
True
True
True
True
True
22
Lojik Operatörler – örnek-1
• Varsayalım;
– a bir int değişken ve değeri 7,
– c bir char değişken ve değeri ‘r’
İfade
Sonuç
(a >= 6) && ( c == ‘r')
True
(a >= 6) || ( c == 'A')
True
(a >= 6) && ( c == 'A')
False
(a >= 6) && ( c == ‘R')
False
(a != 6) || ( c == ‘R')
True
(a < 6) || ( c == ‘r')
True
23
Lojik Operatörler – örnek-2
int sicaklik = 75;
double yagmur = 0.35;
if((sicaklik
if((sicaklik
if((sicaklik
if((yagmur >
> 70 && sicaklik < 85)) Console.WriteLine("sıcak");
> 70 && yagmur < 0.4))
Console.WriteLine("güzel");
< 50 || sicaklik >85)) Console.WriteLine("çok sıcak/bulutlu");
0.3 && yagmur < 0.7))
Console.WriteLine("rüzgarlı");
sıcak
güzel
rüzgarli
24
Lojik Operatörler (3)
/* Eğer a eşittir 4 VEYA a eşittir 10 */
if (a == 4 || a == 10){
...
} else {
...
}
/* x 2 VE 20 arasında mı*/
if (x >= 2 && x <= 20){
...
}
/* y 20’den büyük VE x eşit DEĞİL 30’a
if (y > 20 && x != 30){
...
}
*/
25
Kademeli if deyimleri
• Bazen birden fazla koşulu test etmek isteriz, ta ki biri
sağlanana kadar.
• Örneğin “n” sayısının 0 a eşit , 0 dan büyük veya 0 dan küçük
olmasını test etmek istiyoruz.
if (n < 0) Console.Write("n sayısı 0'dan küçük");
else
{
if (n == 0) Console.Write("n sayısı 0'a eşit");
else Console.Write("n sayısı 0'dan büyük");
}
• İkinci if deyimini else içinde kullanmaktansa onun yerine
aşağıdaki gibi kullanabiliriz. Kademeli if olarak adlandırılıyor.
if (n < 0)
Console.Write("n sayısı 0'dan küçüktür");
else if (n == 0) Console.Write("n sayısı 0'a eşittir");
else
Console.Write("n sayısı 0'dan büyüktür");
26
kademeli if Yazım Kuralı
if (durum1)
ifade1;
else if (durum2)
ifade2;
else if (durum3)
ifade3;
…
else
ifadeN;
27
kademeli if Örneği
Örneğin not
ortalamasının aşağıdaki
tabloya göre harf
notuna denk geldiğini
varsayalım:
Not
Aralığı
Harf
Notu
90-100
AA
80-89
AB
70-79
BB
60-69
BC
50-59
CC
0-49
Kaldı!
int not_ort;
…
if (not_ort >= 90)
Console.Write("Geçti: Notun
else if (not_ort >= 80)
Console.Write("Geçti: Notun
else if (not_ort >= 70)
Console.Write("Geçti: Notun
else if (not_ort >= 60)
Console.Write("Geçti: Notun
else if (not_ort >= 50)
Console.Write("Geçti: Notun
else
Console.Write("Kaldı!");
AA");
AB");
BB");
BC");
CC");
28
DINLEDIĞINIZ IÇIN
TEŞEKKÜRLER…
Öğr. Gör. Bayram AKGÜL
29