Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Karar ifadeleri ve Döngüler

Benzer bir sunumlar


... konulu sunumlar: "Karar ifadeleri ve Döngüler"— Sunum transkripti:

1 Karar ifadeleri ve Döngüler
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

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.

3 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 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

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

6 Java sıralı akışa sahiptir. Java 3 farklı seçim komutu sağlar.
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 Tek-giriş/tek-çıkış kontrol ifadeleri
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” if tek-seçimli durum iş iş akış diyagramı.

8 Şart doğru (true) olduğu zaman komut çalışır.
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 [not >= 60] [not < 60] print “Kaldı” print “Geçti” if…else iki seçimli durumlar için akış diyagramı.

9 while Tekrarlama İfadeleri
Şart doğru (true) olduğu müddetçe döngüye ait komutları çalıştır. [ürün <= 1000] [ürün > 1000] Ürün değerinin 2 katını al birleşim karar Java karşılığı: ürün = 2 * ürün; while tekrarlama ifadelerinin akış dyagramı.

10 Algoritmaların Tasarlanması: Örnek Çalışma 1 (Kontrollü Sayaç Döngüsü)
İ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.

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

12 Değişken tanımlama; notSayaci bir sayaçtır.
1 // Ortalama1.java 2 // sayaç kontrollu,sınıf ortalaması bulma 3 import javax.swing.JOptionPane; 4 5 public class Ortalama1 { 6 public static void main( String args[] ) { int toplam; // not toplamı int notSayaci; // kaç not girildiğini sayacak int not; // not değeri int ortalama; // not ortalaması 13 String notString; // kullanıcıdan alınacak not 15 // initialization phase toplam = 0; // initialize total 18 notSayaci = 1; // initialize loop counter 19 // processing phase while (notSayaci <= 10 ) { // 10 defa işlenecek 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 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.

13 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

14 Ortalama1.java

15 Ortalama2.java döngünün sayısı belli değil
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.

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

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

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

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

20 Algoritmaların Tasarlanması: Örnek Çalışma 3 (İçiçe Kontrol Yapıları)
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 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
// Analiz.java // sınav sonuçlarını analiz eden program. import javax.swing.JOptionPane; 4 public class Analysis { 6 public static void main( String args[] ) { // geişken tanumlama ve ilk değer atama int gecenler = 0; // geçen öğrencilerin sayısı int kalanlar = 0; // kalan öğrenci sayısı int sayac = 1; // öğrenci sayacı int sonuc; // sınav sonuç değişkeni 14 String giris; // kullanıcıdan alınan değer String cikis; // çıktıda gösterilecek yazı 17 // 10 tane öğrenci için döngüyü çalıştır while ( sayac <= 10 ) { 20 // kullanıcıdan öğrenci sınav sonucunu al giris = JOptionPane.showInputDialog( “sınav sonucunu giriniz (1 = geç, 2 = kal)" ); 24 // kullanıcıdan alınan string i int e çevir sonuc = Integer.parseInt( giris ); 27 // eğer sonuc 1 ise geçen öğrenci sayısını 1 arttır if ( sonuc == 1 ) gecenler = gecenler + 1; Öğrenci sayacı 10dan küçük ve eşit olduğu müddetçe döngüyü çalıştır İçiçe kontrol yapısı

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

23 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

24

25 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

26 Bknz: http://www. bilisim-kulubu. com/sozluk/sozluk. php
Bknz: Bknz: Bknz: Bknz:

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

28


"Karar ifadeleri ve Döngüler" indir ppt

Benzer bir sunumlar


Google Reklamları