Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

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.

Benzer bir sunumlar


... konulu sunumlar: "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."— Sunum transkripti:

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

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ı) –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ç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ı. Notu toplama ekle Sayacı 1 artır Java karşılığı: toplam = toplam + not; Java karşılığı: sayac = sayac + 1;

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

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

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ü) 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.

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

12 1 // Ortalama1.java 2 // sayaç kontrollu,sınıf ortalaması bulma 3 import javax.swing.JOptionPane; 4 5 public class Ortalama1 { 6 7 public static void main( String args[] ) 8 { 9 int toplam; // not toplamı 10 int notSayaci; // kaç not girildiğini sayacak 11 int not; // not değeri 12 int ortalama; // not ortalaması String notString; // kullanıcıdan alınacak not // initialization phase 17 toplam = 0; // initialize total 18 notSayaci = 1; // initialize loop counter // processing phase 21 while (notSayaci <= 10 ) { // 10 defa işlenecek // prompt for input and read grade from user 24 notString = JOptionPane.showInputDialog( 25 “Sayısal not girişi: " ); // convert gradeString to int 28 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 31 notSayaci = notSayaci + 1; // increment counter } // end while // termination phase 36 ortalama = toplam / 10; // integer division // display average of exam grades 39 JOptionPane.showMessageDialog( null, “Sınıf ortalaması" + ortalama, 40 “Sınıf Ortlaması", JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); // terminate the program } // end main } // 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.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 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 class Ortalama2 { 7 8 public static void main( String args[] ) 9 { 10 int toplam; // sum of grades 11 int notSayaci; // number of grades entered 12 int not; // grade value double ortalama; // number with decimal point for average String notString; // grade typed by user // initialization phase 19 toplam = 0; // initialize total 20 notSayaci = 0; // initialize loop counter // processing phase 23 // get first grade from user 24 notString = JOptionPane.showInputDialog( 25 “Not Girişi yada Çıkış için -1 :" ); // convert gradeString to int 28 not = Integer.parseInt( notString ); 29

18 30 31 while ( not != -1 ) { 32 toplam = toplam + not; // add grade to total 33 notSayaci = notSayaci + 1; // increment counter // bir sonraki notu kullanıcan iste 36 notString = JOptionPane.showInputDialog( 37 " Not Girişi yada Çıkış için -1 :" ); // notu string ten int 2e çevir 40 not = Integer.parseInt( notString ); } // end while DecimalFormat ikiDigit = new DecimalFormat( "0.00" ); // en az 1 not girilip girilmediğini kontol et ( sıfıra bölme hatası) 48 if ( notSayaci != 0 ) { // tüm notların ortalaması hesapla 51 ortalama = (double) toplam / notSayaci; // 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 ); } // 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 61 JOptionPane.showMessageDialog( null, “Not girişi yapılmadı", 62 “Sınıf Ortalaması", JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); // terminate application } // end main } // end class Ortalama2

20 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. Algoritmaların Tasarlanması: Örnek Çalışma 3 (İçiçe Kontrol Yapıları) İçiçe kontrol yapıları

21 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 int gecenler = 0; // geçen öğrencilerin sayısı 11 int kalanlar = 0; // kalan öğrenci sayısı 12 int sayac = 1; // öğrenci sayacı 13 int sonuc; // sınav sonuç değişkeni String giris; // kullanıcıdan alınan değer 16 String cikis; // çıktıda gösterilecek yazı // 10 tane öğrenci için döngüyü çalıştır 19 while ( sayac <= 10 ) { // kullanıcıdan öğrenci sınav sonucunu al 22 giris = JOptionPane.showInputDialog( 23 “sınav sonucunu giriniz (1 = geç, 2 = kal)" ); // kullanıcıdan alınan string i int e çevir 26 sonuc = Integer.parseInt( giris ); // eğer sonuc 1 ise geçen öğrenci sayısını 1 arttır 29 if ( sonuc == 1 ) 30 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 32 else 33 kalanlar = kalanlar + 1; // öğrenci sayacını 1 arrtır ki, sonsuz döngüye dönüşmesin 36 sayac = sayac + 1; } // while sonu // çıktıda görünecek yazıyı düzenle 41 cikis = “Geçenler: " + gecenler + "\nKalanlar: " + kalanlar; // 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"; JOptionPane.showMessageDialog( null, cikis, 48 “sınav sonuç analizi :", 49 JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); // uygulamayı sonlandır } // main metod sonu } // analiz sınıf sonu

23 Birleşik Atama Operatörleri 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 –Şu şekilde de yazılabilir 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: Bknz: Bknz: Bknz:

27 1 /* Preincrementing (önce arttır), postincrementing (sonra arttır) 2 operatörlerinin kullanımı 3 4 public class Arttı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ır 14 System.out.println( c ); // 6 yazar System.out.println(); // 1 satır atla // 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 } // main metodu sonu } // 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

28


"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." indir ppt

Benzer bir sunumlar


Google Reklamları