Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

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

Benzer bir sunumlar


... konulu sunumlar: "Bölüm 4 – Kontrol İfadeleri:1.kısım"— Sunum transkripti:

1 Bölüm 4 – Kontrol İfadeleri:1.kısım
Outline Giriş Algoritmalar Pseudocode Kontrol İfadeleri if tek-seçimli ifadeler if else seçimli ifadeler while döngü ifadeleri Algoritmaların Tasarımı : Örnek Çalışma 1(Sayaç - Kontrollü Döngüler) Algoritmaların Tasarımı: Örnek Çalışma 2 (Sonlandırcı- Kontrollü Döngüler) Algoritmaların Tasarımı: Örnek Çalışma 2 (İçiçe Kontrollü Yapılar) Birleşik Atama Operatörleri Artırma ve Azaltma Operatörleri İlkel Tipler

2 Bu bölümde Kontrol İfadelerini öğreneceğiz.
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 Program kontrolü
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 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 Kontrolün transferi Akış diagramı
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çimli yapılar Döngüsel yapılar Akış diagramı İş akışını modeller İşi tanımlayan semboller İş sırasını gösteren oklar

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

7

8 Java sıralı akışa sahiptir. Java 3 farklı seçim komutu sağlar.
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.

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

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

11 4.6 if…else seç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çe if…else ifadeleri

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

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

14 Ürün değerinin 2 katını al
birleşim karar Java karşılığı: ürün = 2 * ürün; Fig 4.5 while tekrarlama ifadelerinin akış dyagramı.

15 Ortalama1.java not ortalamasını hesaplar.
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.java not ortalamasını hesaplar. Döngüyü kontrol için sayaç kullanılır.

16 Toplam değişkenini sıfırla Sayaç değişkenine 1 ata Syaç 10 ‘a eşit yada küçük olduğu müddetçe Diğer notu gir Toplamı not kadar artır Sayacı 1 artır Toplamı 10 ‘a bölerek sınıf ortalamasına ata Sınıf ortalamasını yazdır Fig Pseudocode algoritması : sınıf ortalamasını bulmak için kontrollü sayaç döngüsü kullanılır.

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

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

19 Ortalama1.java

20 Ortalama2.java döngünün sayısı belli değil
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.java döngünün sayısı belli değil Kullanıcı sonlandırıcı değere (-1) basarak döngüyü bitiriyor.

21 Toplam değişkenini sıfırla Sayaç 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çe Toplamı not değeri kadar artır Sayacı 1 artır Yeni notu gir(sonlandırcı değer de mümkün) Eğer sayaç 0 eşit değilse Ortalamayı toplamı sayaca bölerek bul Ortalamayı yazdır else “Hiçbir not girilmedi” yazdır Fig Pseudocode algoritması : sınıf ortalamasını bulmak için sonlandırıcı kontrollü döngüs kullanılır.

22 Average2.java 1 // Fig. 4.9: Ortalama2.java
// Class-average program with sentinel-controlled repetition. import java.text.DecimalFormat; // class to format numbers import javax.swing.JOptionPane; 5 public class Ortalama2 { 7 public static void main( String args[] ) { int toplam; // sum of grades int notSayaci; // number of grades entered int not; // grade value 13 double ortalama; // number with decimal point for average 15 String notString; // grade typed by user 17 // initialization phase toplam = 0; // initialize total notSayaci = 0; // initialize loop counter 21 // processing phase // get first grade from user notString = JOptionPane.showInputDialog( “Not Girişi yada Çıkış için -1 :" ); 26 // convert gradeString to int not = Integer.parseInt( notString ); 29 Average2.java

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

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

25 4.10 Algoritmaların Tasarlanması: Örnek Çalışma 3 (İçiçe Kontrol Yapıları)

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

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

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

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

30

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

32

33 Increment.java Line 13 postincrement Line 21 preincrement
// Fig. 4.14: Increment.java // Preincrementing and postincrementing operators. 3 public class Increment { 5 public static void main( String args[] ) { int c; 9 // demonstrate postincrement c = 5; // assign 5 to c System.out.println( c ); // print 5 System.out.println( c++ ); // print 5 then postincrement System.out.println( c ); // print 6 15 System.out.println(); // skip a line 17 // demonstrate preincrement c = 5; // assign 5 to c System.out.println( c ); // print 5 System.out.println( ++c ); // preincrement then print 6 System.out.println( c ); // print 6 23 } // end main 25 26 } // end class Increment Line 13 postincrements c Increment.java Line 13 postincrement Line 21 preincrement Line 21 preincrements c 5 5 6 

34

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

36


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

Benzer bir sunumlar


Google Reklamları