540 likes | 719 Views
Bölüm 4 – Kontrol İfadeleri :1 .kısım.
E N D
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
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)
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.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.
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
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ı.
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 • for • Bu komutların herbiri ayrılmış kelimelerdir.
4.5 if tek-seçimli durum • Tek-giriş/tek-çıkışkontrol ifadeleri • Şart doğru (true) olduğu zaman komut çalışır.
[not >= 60] [not < 60] print “Geçti” • Fig 4.3 iftek-seçimli durum iş iş akış diyagramı.
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
[not < 60] [not >= 60] print “Geçti” print “Kaldı” • Fig 4.4 if…elseiki seçimli durumlar için akış diyagramı.
4.7 whileTekrarlama İfadeleri • Şart doğru (true) olduğu müddetçe dögüye ait komutları çalıştır.
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ı.
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.
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.
Outline • GradeBook.java • (1 of 3) Assign a value to instance variable courseName Declare method setCourseName Declare method getCourseName
Outline Declare method displayMessage • GradeBook.java • (2 of 3) Declare method determineClassAverage Declare and initialize Scanner variable input Declare local int variables total, gradeCounter, grade and average
Outline while loop iterates as long as gradeCounter<=10 • GradeBook.java • (3 of 3) Increment the counter variable gradeCounter Calculate average grade Display results
Outline Create a new GradeBook object • GradeBookTest.java Pass the course’s name to the GradeBook constructor as a string Call GradeBook’s determineClassAverage method
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.
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.
Outline • GradeBook.java • (1 of 3) Assign a value to instance variable courseName Declare method setCourseName Declare method getCourseName
Outline Declare method displayMessage • GradeBook.java • (2 of 3) Declare method determineClassAverage Declare and initialize Scanner variable input Declare local int variables total, gradeCounter and grade and double variable average
Outline while loop iterates as long as grade!= the sentinel value, -1 • GradeBook.java • (3 of 3) Calculate average grade using (double) to perform explicit conversion Display average grade Display “No grades were entered” message
Outline Create a new GradeBook object • GradeBookTest.java Pass the course’s name to the GradeBook constructor as a string Call GradeBook’s determineClassAverage method
4.10 Algoritmaların Tasarlanması: Örnek Çalışma 3(İçiçe Kontrol Yapıları) • İçiçe kontrol yapıları
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.
Outline Declare processExamResults’ local variables • Analysis.java • (1 of 2) while loop iterates as long as studentCounter<=10
Determine whether this student passed or failed and increment the appropriate variable Outline • Analysis.java • (2 of 2) Determine whether more than eight students passed the exam
Outline Create an Analysis object • AnalysisTest.java More than 8 students passed the exam
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
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
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
4.13 İlkel Veri Tipleri • Java da tüm değişkenlerin mutlaka bir veri tipi olması lazımdır. • Java ilkel veri tipleri
Diyalog kutusunda metin yazdırmak • Pencereler ve diyalog kutuları • Bir çok Java uygulaması program çıktısını göstermek için bunu kullanır. • JOptionPanesınıfı hazır diyalog kutularını kullanır.
Show a message dialog with text Import class JOptionPane Outline • Dialog1.java
Diyalog kutusunda metin yazdırmak • javax.swing paketi • Grafik arabirim oluşturmaya yardım edecek sınıflar içerir.(GUIs) • JOptionPanesınıfını içerir • Bir mesaj yazdırmak için showMessageDialogstatik metodu kullanılır.
Diyalog kutusundan metin girişi yapmak • Diyalog girişi • Kullanıcın bilgi girmesini sağlar • JOptionPane sınıfınınshowInputDialogmetodu kullanılarak oluşturulur
Show input dialog Format a String to output to user Outline • NameDialog.java
4.14 (Optional) GUI and Graphics Case Study: Creating Simple Drawings • Java grafiklerinde koordinat sistemi • X- koordinatı ve Y-koordinatı olarak ifade edilir. • Yatay veya dikey koordinatlar da denilir. • x-ekseni ve y-ekseninde gösterilir. • Koordinat birimi pixeldir. • Graphics class java.awt paketindedir. • Metin ve şekil çizme metodlarını içerir. • JPanel class javax.swing paketindedir. • Çizim yapma alanı oluşturur.
4.14 Basit çizimler oluşturmak • JPanel class • HerJPanelin bir paintComponent metodu vardır • paintComponentsistem JPanel i görüntüleyeceği zaman çağrılır. • getWidthvegetHeight metodları • JPanel’in genişlik ve uzunluğunu gönderir. • drawLine metodu • İlk 2 argümanın gösterdiği noktadan, diğer 2 argümanın gösterdiği noktaya bir çizgi çizer.
4.14 Basit çizimler oluşturmak • Kalıtım • extendsanahtar kelimesi kullanılır • Altsınıf(subclass) üstsınıf(superclass)tan türer • Altsınıf üstsınıfın tanımladığı data ve metodlara sahip olur ve kullanabilir.
Outline Import the java.awt.Graphics and the javax.swing.JPanel classes The DrawPanel class extends the JPanel class • DrawPanel.java Declare the paintComponent method Retrieve the JPanel’s width and height Draw the two lines