1 / 36

Bölüm 4 – Kontrol İfadeleri :1 .kısım

Bölüm 4 – Kontrol İfadeleri :1 .kısım.

iria
Download Presentation

Bölüm 4 – Kontrol İfadeleri :1 .kısım

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bölüm 4 – Kontrol İfadeleri:1.kısım Outline4.1 Giriş4.2 Algoritmalar4.3 Pseudocode4.4 Kontrol İfadeleri4.5 iftek-seçimli ifadeler4.6 if elseseçimli ifadeler4.7 whiledöngü ifadeleri4.8 Algoritmaların Tasarımı : Örnek Çalışma 1(Sayaç - Kontrollü Döngüler)4.9 Algoritmaların Tasarımı: Örnek Çalışma 2 (Sonlandırcı- KontrollüDöngüler) 4.10 Algoritmaların Tasarımı: Örnek Çalışma 2(İçiçe Kontrollü Yapılar)4.11 Birleşik Atama Operatörleri 4.12 Artırma ve Azaltma Operatörleri4.13 İlkel Tipler

  2. 4.1   Giriş • Bu bölümde Kontrol İfadelerini öğreneceğiz. • Yapısal programlama prensibi • Kontrol ifadeleri objelerin yapımına yardım eder. (Chapter 8)

  3. 4.2 Algoritmalar • Algoritma • Belli bir sırada takip edilen işler • İşler gerçekleştirilir. • Sıra, hangi işin gerçekleştireceğini tespit eder. • Program kontrolü • Kontrol ifadeleri bu sıranın oluşumuna yardım eder.

  4. 4.3 Pseudocode • Pseudocode (Program tasarımı) • Algoritma geliştirmek için kullanılan esnek bir dil • Bilgisayarda çalıştırılamaz • Algoritmayı yapanlara kurallardan bağımsız ifade etmeyi sağlar.

  5. 4.4 Kontrol İfadeleri • Sıralı çalışma • Program kodları baştan başlayıp satır satır çalışır. • Kontrolün transferi • 3 tip kontrol ifadesi bu kodlar arasında transfer sağlar. • Sıralı yapılar • Seçimliyapılar • Döngüsel yapılar • Akış diagramı • İş akışını modeller • İşi tanımlayan semboller • İş sırasını gösteren oklar

  6. Java karşılığı:toplam = toplam + not; Sayacı 1 artır Notu toplama ekle Java karşılığı:sayac = sayac + 1; • Fig 4.1 Sıralı akış diyagramı.

  7. 4.4 Kontrol İfadeleri • Java sıralı akışa sahiptir. • Java 3 farklı seçim komutu sağlar. • if • If…else • switch • Java 3 farklıdöngü komutu sağlar. • while • do…while • do • Bu komutların herbiri ayrılmış kelimelerdir.

  8. 4.5 if tek-seçimli durum • Tek-giriş/tek-çıkışkontrol ifadeleri • Şart doğru (true) olduğu zaman komut çalışır.

  9. [not >= 60] [not < 60] print “Geçti” • Fig 4.3 iftek-seçimli durum iş iş akış diyagramı.

  10. 4.6 if…elseseçimli durum • Şart doğru (true) olduğu zaman komut çalışır. • Şart yanlış (false) olduğu zaman başka bir komut çalışır. • Şart operatörü (?:) • İçiçeif…elseifadeleri

  11. [not < 60] [not >= 60] print “Geçti” print “Kaldı” • Fig 4.4 if…elseiki seçimli durumlar için akış diyagramı.

  12. 4.7 whileTekrarlama İfadeleri • Şart doğru (true) olduğu müddetçe dögüye ait komutları çalıştır.

  13. birleşim karar [ürün <= 1000] Ürün değerinin 2 katını al [ürün > 1000] Java karşılığı:ürün = 2 * ürün; • Fig 4.5 whiletekrarlama ifadelerinin akış dyagramı.

  14. 4.8 Algoritmaların Tasarlanması: Örnek Çalışma 1 (Kontrollü Sayaç Döngüsü) • Sayaç • İfadelerin kaç defa tekrar ettiğini kontrol eden değişken • Ortalama1.javanot ortalamasını hesaplar. • Döngüyü kontrol için sayaç kullanılır.

  15. Toplam değişkenini sıfırlaSayaç değişkenine 1 ataSyaç 10 ‘a eşit yada küçük olduğu müddetçeDiğer notu girToplamı not kadar artırSayacı 1 artırToplamı 10 ‘a bölerek sınıf ortalamasına ataSınıf ortalamasını yazdır Fig. 4.6 Pseudocode algoritması : sınıf ortalamasını bulmak için kontrollü sayaç döngüsü kullanılır.

  16. Declare variables; gradeCounter is the counter Continue looping as long as gradeCounter is less than or equal to 10 1 // Fig. 4.7: Ortalama1.java 2 // Class-average program with counter-controlled repetition. 3 import javax.swing.JOptionPane; 4 5 public classOrtalama1 { 6 7 public static void main( String args[] ) 8 { 9 int toplam; // sum of grades input by user 10 intnotSayaci; // number of grade to be entered next 11 intnot; // grade value 12 intortalama; // average of grades 13 14 String notString; // grade typed by user 15 16 // initialization phase 17 toplam = 0; // initialize total 18 notSayaci = 1; // initialize loop counter 19 20 // processing phase 21 while (notSayaci <= 10 ) { // loop 10 times 22 23 // prompt for input and read grade from user 24 notString = JOptionPane.showInputDialog( 25 “Sayısal not girişi: " ); 26 27 // convert gradeString to int 28 not = Integer.parseInt( notString ); 29 Average1.javagradeCounterLine 21

  17. 30 toplam = toplam + not; // add grade to total 31 notSayaci = notSayaci + 1; // increment counter 32 33 } // end while 34 35 // termination phase 36 ortalama = toplam / 10; // integer division 37 38 // display average of exam grades 39 JOptionPane.showMessageDialog( null, “Sınıf ortalaması" + ortalama, 40 “Sınıf Ortlaması", JOptionPane.INFORMATION_MESSAGE ); 41 42 System.exit( 0 ); // terminate the program 43 44 } // end main 45 46 } // end class Average1 Average1.java

  18. Ortalama1.java

  19. 4.9 Algoritmaların Tasarlanması: Örnek Çalışma 2 (Sonlandırıcı-KontrollüDöngüler) • Sonlandırıcı değer • Veri girişini sonlandırmak amaçlı kullanılır. • Ortalama2.javadöngünün sayısı belli değil • Kullanıcı sonlandırıcı değere (-1) basarak döngüyü bitiriyor.

  20. Toplam değişkenini sıfırlaSayaç değişkenine 1 ataİlk not girişi yap (sonlandırıcı değer de mümkün)Kullanıcı sonlandırıcı değer girmediği müddetçeToplamı not değeri kadar artırSayacı 1 artırYeni notu gir(sonlandırcı değer de mümkün)Eğer sayaç 0 eşit değilseOrtalamayı toplamı sayaca bölerek bulOrtalamayı yazdırelse “Hiçbir not girilmedi” yazdır Fig. 4.8 Pseudocode algoritması : sınıf ortalamasını bulmak için sonlandırıcı kontrollü döngüs kullanılır.

  21. 1 // Fig. 4.9: Ortalama2.java 2 // Class-average program with sentinel-controlled repetition. 3 import java.text.DecimalFormat; // class to format numbers 4 import javax.swing.JOptionPane; 5 6 public classOrtalama2 { 7 8 public static void main( String args[] ) 9 { 10 int toplam; // sum of grades 11 intnotSayaci; // number of grades entered 12 intnot; // grade value 13 14 doubleortalama; // number with decimal point for average 15 16 String notString; // grade typed by user 17 18 // initialization phase 19 toplam = 0; // initialize total 20 notSayaci = 0; // initialize loop counter 21 22 // processing phase 23 // get first grade from user 24 notString = JOptionPane.showInputDialog( 25 “Not GirişiyadaÇıkış için -1 :" ); 26 27 // convert gradeString to int 28 not = Integer.parseInt( notString ); 29 Average2.java

  22. loop until gradeCounter equals sentinel value (-1) Format numbers to nearest hundredth 30 // loop until sentinel value read from user 31 while ( not != -1 ) { 32 toplam = toplam + not; // add grade to total 33 notSayaci = notSayaci + 1; // increment counter 34 35 // get next grade from user 36 notString = JOptionPane.showInputDialog( 37 " Not GirişiyadaÇıkış için -1 :" ); 38 39 // convert gradeString to int 40 not = Integer.parseInt( notString ); 41 42 } // end while 43 44 // termination phase 45 DecimalFormat ikiDigit = new DecimalFormat( "0.00" ); 46 47 // if user entered at least one grade... 48 if ( notSayaci != 0 ) { 49 50 // calculate average of all grades entered 51 ortalama = (double) toplam / notSayaci; 52 53 // display average with two digits of precision 54 JOptionPane.showMessageDialog( null, 55 “Sınıf Ortalaması " + ikiDigit.format( ortalama ), 56 “Sınıf Ortalaması", JOptionPane.INFORMATION_MESSAGE ); 57 58 } // end if part of if...else 59 Average2.javaLine 31Line 45

  23. 60 else// if no grades entered, output appropriate message 61 JOptionPane.showMessageDialog( null, “Not girişi yapılmadı", 62 “Sınıf Ortalaması", JOptionPane.INFORMATION_MESSAGE ); 63 64 System.exit( 0 ); // terminate application 65 66 } // end main 67 68 } // end class Ortalama2 Ortalama2.java

  24. 4.10 Algoritmaların Tasarlanması: Örnek Çalışma 3(İçiçe Kontrol Yapıları) • İçiçe kontrol yapıları

  25. Gecenler ‘e 0 ilk değeri verKalanlar’ a 0 ilk değeri verOgrenci ‘ye 1 ilk değer ver Sayac 10 ‘a eşit yada küçük olduğu müddetçeSınav sonucu gir Eğer öğrenci geçmiş iseGecenlere 1 ekle elseKalanlara 1 ekle Sayacı 1 artır Kaç kişi geçtiğini yazdırKaç kişi kaldığını yazdır Eğer 8 kişiden fazla kişi geçmiş ise“Öğretim başarılı” yazdır Fig 4.10 Pseudocode :sınav sonucu problemi için.

  26. Loop until student counter is greater than 10 Nested control structure 1 // Fig. 4.11: Analysis.java 2 // Analysis of examination results. 3 import javax.swing.JOptionPane; 4 5 public class Analysis { 6 7 public static void main( String args[] ) 8 { 9 // initializing variables in declarations 10 intgecenler = 0; // number of passes 11 intkalanlar = 0; // number of failures 12 intsayac = 1; // student counter 13 intsonuc; // one exam result 14 15 String giris; // user-entered value 16 String cikis; // output string 17 18 // process 10 students using counter-controlled loop 19 while ( sayac <= 10 ) { 20 21 // prompt user for input and obtain value from user 22 giris = JOptionPane.showInputDialog( 23 "Enter result (1 = geç, 2 = kal)" ); 24 25 // convert result to int 26 sonuc = Integer.parseInt( giris ); 27 28 // if result 1, increment passes; if...else nested in while 29 if ( sonuc == 1 ) 30 gecenler = gecenler + 1; Analysis.javaLine 19Line 29

  27. 31 32 else// if result not 1, increment failures 33 kalanlar = kalanlar + 1; 34 35 // increment studentCounter so loop eventually terminates 36 sayac = sayac + 1; 37 38 } // end while 39 40 // termination phase; prepare and display results 41 cikis = “Geçenler: " + gecenler + "\nKalanlar: " + kalanlar; 42 43 // determine whether more than 8 students passed 44 if ( gecenler > 8 ) 45 cikis = cikis + "\nÖğretim Başarılı"; 46 47 JOptionPane.showMessageDialog( null, cikis, 48 "Analysis of Examination Results", 49 JOptionPane.INFORMATION_MESSAGE ); 50 51 System.exit( 0 ); // terminate application 52 53 } // end main 54 55 } // end class Analysis Analysis.java

  28. 4.11 Birleşik AtamaOperatörleri • Atama Operatörleri • Kısaltılmış atama operatörleri • Herhangi bir atama işlemi • değişken=değişkenoperatörifade; • Şu şekilde de yazılabilir • değişkenoperatör=ifade; • Örneğin toplam atama operatörü+= • c = c + 3 • Şu şekilde de yazılabilir • c += 3

  29. 4.12 ArtırmaAzaltma Operatörleri • Bir artırma (++) • Değer 1 artırır. • Bir azaltma (--) • Değeri 1 azaltır • Önceden artırma / önceden azaltmaoperatör • Sonradan artırma / sonradan-azaltma operatör

  30. Line 13 postincrements c Line 21 preincrements c 1 // Fig. 4.14: Increment.java 2 // Preincrementing and postincrementing operators. 3 4 public class Increment { 5 6 public static void main( String args[] ) 7 { 8 int c; 9 10 // demonstrate postincrement 11 c = 5; // assign 5 to c 12 System.out.println( c ); // print 5 13 System.out.println( c++ ); // print 5 then postincrement 14 System.out.println( c ); // print 6 15 16 System.out.println(); // skip a line 17 18 // demonstrate preincrement 19 c = 5; // assign 5 to c 20 System.out.println( c ); // print 5 21 System.out.println( ++c ); // preincrement then print 6 22 System.out.println( c ); // print 6 23 24 } // end main 25 26 } // end class Increment Increment.javaLine 13 postincrementLine 21 preincrement 556566

  31. 4.13 İlkel Veri Tipleri • Java da tüm değişkenlerin mutlaka bir veri tipi olması lazımdır. • Java ilkel veri tipleri

More Related