1 / 28

Karar ifadeleri ve Döngüler

Karar ifadeleri ve Döngüler.

eyad
Download Presentation

Karar ifadeleri ve Döngüler

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. Karar ifadeleri ve Döngüler AlgoritmalarPseudocodeKontrol İfadeleriiftek-seçimli ifadelerif elseseçimli ifadelerwhiledö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

  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.

  3. Pseudocode(Program tasarımı) • 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. 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

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

  6. 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.

  7. [not >= 60] [not < 60] print “Geçti” if tek-seçimli durum • Tek-giriş/tek-çıkışkontrol ifadeleri • Şart doğru (true) olduğu zaman komut çalışır. • iftek-seçimli durum iş iş akış diyagramı.

  8. [not < 60] [not >= 60] print “Geçti” print “Kaldı” 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 • if…elseiki seçimli durumlar için akış diyagramı.

  9. 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; whileTekrarlama İfadeleri • Şart doğru (true) olduğu müddetçe döngüye ait komutları çalıştır. • whiletekrarlama ifadelerinin akış dyagramı.

  10. 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.

  11. 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.

  12. Değişken tanımlama; notSayaci bir sayaçtır. Not sayacı 10’a eşit veya küçük olduğu müddetçe devam et. 1 // Ortalama1.java 2 // sayaç kontrollu,sınıf ortalaması bulma 3 import javax.swing.JOptionPane; 4 5 public classOrtalama1 { 6 7 public static void main( String args[] ) 8 { 9 int toplam; // not toplamı 10 intnotSayaci; // kaç not girildiğini sayacak 11 intnot; // not değeri 12 intortalama; // not ortalaması 13 14 String notString; // kullanıcıdan alınacak not 15 16 // initialization phase 17 toplam = 0; // initialize total 18 notSayaci = 1; // initialize loop counter 19 20 // processing phase 21 while (notSayaci <= 10 ) { // 10 defa işlenecek 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

  13. 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

  14. Ortalama1.java

  15. 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.

  16. 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 Pseudocode algoritması : sınıf ortalamasını bulmak için sonlandırıcı kontrollü döngüs kullanılır.

  17. 1 // Ortalama2.java 2 // sınıf ortalamsı programıı, kullanıcı kontrollu. 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

  18. Not değeri -1 olana kadar döngüyü çalıştır. Sayıyı ,ondalık kısmı iki basamaklı olacak şekilde yuvarla 30 31 while ( not != -1 ) { 32 toplam = toplam + not; // add grade to total 33 notSayaci = notSayaci + 1; // increment counter 34 35 // bir sonraki notu kullanıcan iste 36 notString = JOptionPane.showInputDialog( 37 " Not GirişiyadaÇıkış için -1 :" ); 38 39 // notu string ten int 2e çevir 40 not = Integer.parseInt( notString ); 41 42 } // end while 43 44 45 DecimalFormat ikiDigit = new DecimalFormat( "0.00" ); 46 47 // en az 1 not girilip girilmediğini kontol et ( sıfıra bölme hatası) 48 if ( notSayaci != 0 ) { 49 50 // tüm notların ortalaması hesapla 51 ortalama = (double) toplam / notSayaci; 52 53 // sonucu ,ondalıklı kısmı 2 basamak olacak şekilde göster 54 JOptionPane.showMessageDialog( null, 55 “Sınıf Ortalaması " + ikiDigit.format( ortalama ), 56 “Sınıf Ortalaması", JOptionPane.INFORMATION_MESSAGE ); 57 58 } // end if

  19. 60 else// eğer not girişi yapılmamışsa bilgi ver 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

  20. 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 Pseudocode :sınav sonucu problemi için.

  21. Öğrenci sayacı 10dan küçük ve eşit olduğu müddetçe döngüyü çalıştır İçiçe kontrol yapısı 1 // Analiz.java 2 // sınav sonuçlarını analiz eden program. 3 import javax.swing.JOptionPane; 4 5 public class Analysis { 6 7 public static void main( String args[] ) 8 { 9 // geişken tanumlama ve ilk değer atama 10 intgecenler = 0; // geçen öğrencilerin sayısı 11 intkalanlar = 0; // kalan öğrenci sayısı 12 intsayac = 1; // öğrenci sayacı 13 intsonuc; // sınav sonuç değişkeni 14 15 String giris; // kullanıcıdan alınan değer 16 String cikis; // çıktıda gösterilecek yazı 17 18 // 10 tane öğrenci için döngüyü çalıştır 19 while ( sayac <= 10 ) { 20 21 // kullanıcıdan öğrenci sınav sonucunu al 22 giris = JOptionPane.showInputDialog( 23 “sınav sonucunu giriniz (1 = geç, 2 = kal)" ); 24 25 // kullanıcıdan alınan string i int e çevir 26 sonuc = Integer.parseInt( giris ); 27 28 // eğer sonuc 1 ise geçen öğrenci sayısını 1 arttır 29 if ( sonuc == 1 ) 30 gecenler = gecenler + 1;

  22. 31 // sonuç 1 değilse kalan öğrenci sayısını 1 arttır 32 else 33 kalanlar = kalanlar + 1; 34 35 // öğrenci sayacını 1 arrtır ki, sonsuz döngüye dönüşmesin 36 sayac = sayac + 1; 37 38 } // while sonu 39 40 // çıktıda görünecek yazıyı düzenle 41 cikis = “Geçenler: " + gecenler + "\nKalanlar: " + kalanlar; 42 43 // geçen öğrenci sayısının 8 den fazla olup olmadığına karar ver 44 if ( gecenler > 8 ) 45 cikis = cikis + "\nÖğretim Başarılı";else 45 cikis = cikis + "\nÖğretim Başarısız"; 46 47 JOptionPane.showMessageDialog( null, cikis, 48 “sınav sonuç analizi :", 49 JOptionPane.INFORMATION_MESSAGE ); 50 51 System.exit( 0 ); // uygulamayı sonlandır 52 53 } // main metod sonu 54 55 } // analiz sınıf sonu

  23. 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

  24. 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

  25. Bknz: http://www.bilisim-kulubu.com/sozluk/sozluk.php?e=postincrementBknz: http://www.bilisim-kulubu.com/sozluk/sozluk.php?e=preincrementBknz: http://www.bilisim-kulubu.com/sozluk/sozluk.php?e=postdecrementBknz: http://www.bilisim-kulubu.com/sozluk/sozluk.php?e=predecrement

  26. Satır 13 , c yi yaz ve arttır Satır 21 ,c yi arttır ve yaz 1 /* Preincrementing (önce arttır), postincrementing (sonra arttır)2 operatörlerinin kullanımı 3 4 public classArttırma { 5 6 public static void main( String args[] ) 7 { 8 int c; 9 10 // postincrement örneği 11 c = 5; // c ye 5 ata 12 System.out.println( c ); // 5 yazar 13 System.out.println( c++ ); // 5 yazar sonra arttır14 System.out.println( c ); // 6 yazar 15 16 System.out.println(); // 1 satır atla 17 18 // preincrement örneği 19 c = 5; // c ye 5 ata 20 System.out.println( c ); // 5 yazar 21 System.out.println( ++c ); // önce attırır sonra 6 yazar 22 System.out.println( c ); // 6 yazar 23 24 } // main metodu sonu 25 26 } // Attırma class sonu İngilizce-Türkçe Postincrement- sonra Arttır Preincrement- önce arttır 556566

More Related