Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

BM-104 Nesneye Yönelik Programlama Bahar 2013 (2. Sunu) (Yrd. Doç. Dr. Deniz Dal)

Benzer bir sunumlar


... konulu sunumlar: "BM-104 Nesneye Yönelik Programlama Bahar 2013 (2. Sunu) (Yrd. Doç. Dr. Deniz Dal)"— Sunum transkripti:

1 BM-104 Nesneye Yönelik Programlama Bahar 2013 (2. Sunu) (Yrd. Doç. Dr. Deniz Dal)

2 Konsol Üzerinde Türkçe Karakterler Görebilmek İçin…

3 İlişkisel Operatörler İlişkisel operatörler test ettikleri durumun sonucuna göre 1 (true) veya 0 (false) değerini üretirler. İşlevOperatörÖrnekAnlam Eşit Mi? == 3==5 3 eşittir 5 mi? Eşit Değil Mi? != 3!=5 3 eşit değildir 5 mi? Büyük Mü? > 3>53>5 3 5 den büyük mü? Küçük Mü? < 3<53<5 3 5 den küçük mü? Büyüktür Eşittir Mi? >= 3>=5 3 5 den büyük veya 5 e eşit mi? Küçüktür Eşittir Mi? <= 3<=5 3 5 den küçük veya 5 e eşit mi?

4 Karar Verme (Basit “if” Yapısı) if yapısı kullanılarak (bir koşul test edilerek - condition) bir program karar verebilir ve farklı işlemler yapabilir. Bu “koşullar” bir sonraki slide ta görülebileceği gibi ilişkisel operatörler kullanılarak oluşturulur. if(koşul) { } Eger “koşul” “true” ise parantez içindeki (gövdedeki) deyimler işletilir. “false” ise eğer gövdedeki deyimler işletilmez ve programın akışı kapanan parantezden sonraki satıra atlar. Gövde tek bir deyimden oluşuyorsa parantezlerin kullanımı zorunlu değildir.

5 “if” Şartlı Deyimi (Karar Yapısı) if(not>=60) cout<<"gecti"; not >= 60 “gecti” yazdir true false “if” Karar Yapısı Akış Diyagramı (flowchart)

6 Dikkat!!!!! int a=3; if(a=6) cout<<"Bora"<

7 if Şartlı Deyimi ve İlişkisel Operatörler

8 UYGULAMA Kullanıcıdan klavye yoluyla alacağı 3 tam sayının en büyüğünü bularak ekrana yansıtacak bir C++ konsol uygulaması yazınız.

9 “if-else” Karar Yapısı if(not>=60) cout<<"gecti"; else cout<<"kaldi"; not >= 60 “kaldi” yazdır true false “if/else” Karar Yapısı Akış Diyagramı (flowchart) “gecti” yazdır

10 “if-else” Deyimi Yerine Soru İşareti (?) ve İki Nokta Üst Üste (:) Operatörlerinin Birlikte Kullanımı if(sayi1

11 “if-else if-else” Örnekleri if(not >= 90) cout<<"A"; else if(not >= 80) cout<<"B"; else if(not >= 70) cout<<"C"; else if(not >= 60) cout<<"D"; else cout<<"F"; if(not >= 60) cout<<"Dersi Gectiniz.\n"; //tek deyim else { cout<<"Kaldiniz.\n"; //çoğul cout<<"Bu dersi tekrar almalisiniz.\n"; //deyim }

12 Sayaç Kontrollü (counter-controlled) Döngü Esasları Böyle bir döngü için gerekli olanlar: 1.Kontrol değişkeni (sayaç veya loop counter) 2.Kontrol değişkeninin ilk ve son değerleri 3.Döngünün sona erişini test edecek durum (condition) 4.Döngü değişkeninin her seferinde artırılması ya da azaltılması

13 while Döngüsü ile Sayaç Kontrollü Tekrar //while Döngüsü İle Sayaç Kontrollü Tekrar #include using namespace std; int main() { int sayac=1; //Deklarasyon ve İlk Değer Atama while(sayac<=10) //Tekrarlama Şartı { cout<

14 “while” Döngüsü Akış Diyagramı (Flowchart) sayac<=10 true false cout<

15 “while” Örneği

16 Örneğe Devam Bir önceki örneğimizde not sayacı olarak 10 değerini kullandık ve kullanıcıyı 10 adet not girmeye zorladık. Kullanıcının istediği kadar not girmesini ve bunların ortalamasını bulan bir program yazmak isteseydik eğer, bir “bitiş değeri” (sentinel value) kullanarak kullanıcının sisteme artık daha fazla veri girişi yapmak istemediğini belirtmesine izin vermemiz gerekirdi. cout<<"Notu Gir ya da -1 Yazarak Cik: "; cin>>not; while(not != -1)//Bitiş Değeri=-1 { toplam=toplam+not; notSayaci=notSayaci+1; cout<<"Notu Gir ya da -1 Yazarak Cik: "; cin>>not; }

17 Düzenlenmiş “while” Örneği

18 “static_cast<>” Operatörü Ortalamalar çoğu kez integer değere sahip olmazlar ya da gibi ondalık kısma da sahip olabilirler. Bizim bir önceki örneğimizde ortalama değerini depolayan değişken bir integer olduğu için ondalık kısımlar (var olsa bile) değerlendirmeye alınmadılar. Bu yüzden buna izin veren double değişkeni kullanmalıyız ortalama için. #include //cout ve cin Kullanımı İçin #include //setprecision Kullanımı İçin using namespace std; int toplam; int notSayaci; double ortalama; ortalama=static_cast (toplam)/notSayaci; //ortalama=(double)toplam/notSayaci; cout<<"Sinif Ortalamasi"<

19 Daha da Düzenlenmiş “while” Örneği

20 Bileşik Atama Deyimleri toplam=toplam+sayac; ya da toplam+=sayac; “+=“ operatörü sağındaki değişkeni solundaki değişkenin değeri ile toplar ve sonucu yine solundaki değişkene atar. c+=7; d-=4; e*=5; f/=3; g%=9;

21 1 Artırma ve 1 Azaltma Operatörleri OPERATÖRANLAMIAÇIKLAMA ++ 1 Artırma Operatörü (increment) -- 1 Azaltma Operatörü (decrement) ++a Önce 1 Artır (pre-increment) Operatörü (a değişkeninin değerini 1 artır ve sonra a değişkeninin yeni değerini kullan.) y=++x; ise x=x+1; ve sonra y=x; a++ Sonra 1 Artır (post-increment) Operatörü (a değişkeninin mevcut değerini kullan ve sonra değerini 1 artır.) y=x++; ise y=x; ve sonra x=x+1; --b Önce 1 Azalt (Pre-decrement) Operatörü b-- Sonra 1 Azalt (Post-decrement) Operatörü

22 Örnek //Önce 1 Artır ve Sonra 1 Artır Operatörleri #include using namespace std; int main() { int c; c=5; cout<

23 4 Farklı 1 Artırma Deyimi a=a+1; ya da a+=1; ya da a++; ya da ++a;

24 “for” Döngüsü //for Döngüsü ile Sayaç Kontrollü Tekrar //İlk Değer Atama, Tekrarlama Şartı ve Artım Miktarı for //Yapısının İçinde #include using namespace std; int main() { for(int sayac=1;sayac<=10;sayac++) cout<

25 “for” Döngüsü “while” Döngüsüne Dönüştürülebilir (Ya da Tam Tersi) for(int sayac=1;sayac<=10;sayac++) { cout<

26 “for” Döngüsü Örnekleri Kontrol değişkenini 1’den 100’e kadar tek tek artıran “for” döngüsü for(int i=1;i<=100;i++) Kontrol değişkenini 100’den 1’e kadar tek tek azaltan “for” döngüsü for(int i=100;i>=1;i--) Kontrol değişkenini 7’den 77’ye kadar 7’şer artıran “for” döngüsü for(int i=7;i<=77;i+=7)

27 “break” ve”continue” Deyimleri Döngü içlerinde programın akış kontrolünü değiştirmek için bu deyimleri kullanırız. “break” deyimi while, for veya switch yapılarının içinde kullanıldığında bu yapılar ani bir şekilde sonlandırılır. “continue” deyimi for döngüsü içerisinde kullanıldığında bu deyimden sonra gelen komutlar atlanır ve döngü bir sonraki iterasyona başlar.

28 Soru: Aşağıdaki program ekrana ne yazdırır? for(int i=1;i<=10;i++) { if(i==5) break; cout<

29 Sonsuz Döngü (1. Versiyon) #include using namespace std; int main() { while(true)//Sonsuz Döngü { ………. if(…….)//Kullanıcı Doğru Tahminde Bulunduysa break; } return 0; }

30 Sonsuz Döngü (2. Versiyon) #include using namespace std; int main() { bool devamEt=true; while(devamEt)//Sonsuz Döngü { ………. if(…….)//Kullanıcı Doğru Tahminde Bulunduysa devamEt=false; } return 0; }

31 Sonsuz Döngü (3. Versiyon) #include using namespace std; int main() { for(;;)//Sonsuz Döngü { ………. if(…….)//Kullanıcı Doğru Tahminde Bulunduysa break; } return 0; }

32 “switch-case” ile Çoklu Seçim cin>>secenek; secenek= toupper(secenek); switch(secenek) { case 'A': FunctionA(); break; case 'B': FunctionB(); break; case 'C': break; //Hiçbir Şey Yapma default: //Beklenen Bir Karakter Girilmediyse cout << "Uzgunum, " <

33 Mantıksal Operatörler Bazı karar verme durumlarında ilişkisel testlerin gerçekleştirebildiklerinden daha kompleks testlere ihtiyaç duyabiliriz ve bu basit testleri mantıksal operatörler yardımıyla birleştirerek amacımıza ulaşırız. Bu mantıksal operatörler: 1.Mantıksal VE (AND) (&&) 2.Mantıksal VEYA (OR) (||) 3.Mantıksal DEĞİL (NOT) (!) Mantıksal operatörler test ettikleri durumun sonucuna göre 1 (true) veya 0 (false) değerini üretirler.

34 MANTIKSAL VE (&&) Doğruluk Tablosu İFADE 1 İFADE2 İFADE1&&İFADE2 false false false false true false true false false true true true

35 MANTIKSAL VEYA (||) Doğruluk Tablosu İFADE 1 İFADE2 İFADE1||İFADE2 false false false false true true true false true true true true

36 MANTIKSAL DEĞİL (!) Doğruluk Tablosu İFADE ! İFADE false true true false

37 Örnekler  if((isim=="Deniz") && (yas>=30))  if((donemOrtalamasi>=90)||(finalSinavi>=90))  if((secenek=='A')||(secenek=='a'))  Matematiksel olarak 3

38 Scope (Sıkop) (Faaliyet/Kapsam/Geçerlilik Alanı-Ömür)

39

40

41

42 SORULAR 1.Kullanıcıdan klavye yoluyla aldığı bir sayının bölenlerini veya çarpanlarını bularak ekrana basan bir C++ programı yazınız. 2.Kullanıcıdan klavye yoluyla aldığı bir sayının ASAL sayı olup olmadığını belirleyen ve eğer ASAL sayı ise ASAL çarpanlarını ekrana basan bir C++ programı yazınız. 3.Kullanıcıdan klavye yoluyla aldığı belirli bir aralık içerisindeki bütün ASAL sayıları ve bu ASAL sayıların sayısını ekrana basan bir C++ programı yazınız. 4.Kullanıcıdan klavye yoluyla aldığı iki sayının aralarında ASAL olup olmadığını bulan bir C++ programı yazınız. (4 ve 15 aralarında asaldır örneğin.) 5.Kullanıcıdan klavye yoluyla aldığı 3 sayının En Büyük Ortak Bölenini (EBOB) bulacak bir C++ programı yazınız. 6.Kullanıcıdan klavye yoluyla aldığı 3 sayının En Küçük Ortak Katını (EKOK) bulacak bir C++ programı yazınız. (15 sayısının katları: ve 20 sayısının katları: tır. Dolayısıyla EKOK(15,20)=60 tır.) 7.Kullanıcıdan klavye yoluyla aldığı 2 rasyonel sayıyı toplayıp en sade haliyle ekrana basacak bir C++ programı yazınız.


"BM-104 Nesneye Yönelik Programlama Bahar 2013 (2. Sunu) (Yrd. Doç. Dr. Deniz Dal)" indir ppt

Benzer bir sunumlar


Google Reklamları