Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.

Slides:



Advertisements
Benzer bir sunumlar
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
Advertisements

BPR151 ALGORİTMA VE PROGRAMLAMA - I
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
BİLEŞİK ATAMA VE DÖNGÜLER
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Nöbetçi Kontrollü Döngü
Kontrol İfadeleri : 2.Kısım
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
DÖNGÜ “Şart sağlandığı sürece” içerisindeki komut satırlarını, artış değeri adedince tekrarlayan kodlardır.
Bölüm 5 – Kontrol İfadeleri : 2.Kısım
Yrd. Doç.Dr. Nilgün GÜLER BAYAZIT
Bölüm 4 – Kontrol İfadeleri:1.kısım
Bölüm 5 – Kontrol İfadeleri : 2.Kısım
4 Kontrol Yapıları: 1.Bölüm.
Bölüm 2: Program Denetimi
EDUTIME Java Day 4 Serdar TÜRKEL.
Bölüm 7 - Diziler İçerik 7.1 Giriş 7.2 Diziler 7.3 Dizileri Tanımlama 7.4 Dizileri Kullanan Örnekler 7.5 Referanslar ve Referans Parametreler.
HAZıRLAYAN: YRD.DOÇ.DR.EMIN BORANDAĞ Oyun Programlama (Yol Bulma)
4. KONTROL VE DÖNGÜ KOMUTLARI
Bölüm 10 Yapılar ve Birleşimler
Karar ifadeleri ve Döngüler
Lower Bounds for Sorting
Bölüm 5 Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut
Javascript Kullanım Şekilleri.
Bölüm 3 – Yapısal Programlama
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Amaçlar Bu derste öğreneceklerimiz: –Switch – Case.
Görsel C# ile Windows Programlama
Yapısal Program Geliştirme – if, if-else
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Bölüm 12 – Veri Yapıları Konular 12.1Giriş 12.2Kendine.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
JAVA İ LE PROGRAMLAMAYA G İ R İ Ş Ekim Dr. Galip Aydın.
Döngü Yapıları.
Bölüm 5 Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut
Bölüm 2 – Kontrol Yapıları
Koşul İfadeleri ve Akış Kontrolü Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir akış kontrolü oluşturabilmek için koşul ifadelerini.
PROGRAM KONTROL VE DÖNGÜ DEYİMLERİ
Kontrol Yapıları ve Döngüler
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
 2006 Pearson Education, Inc. All rights reserved Kontrol İfadeleri: 2. Bölüm.
Çoklu dallanma seçimi: switch
Bölüm 4 – C’de Program Kontrolü
BM-103 Programlamaya Giriş Güz 2014 (4. Sunu)
4. KONTROL VE DÖNGÜ KOMUTLARI
String class String karakterler dizisidir
Python Aslı Ergün.
C++ Ders Notları 4.Ders (Kontrol ve Döngüler)
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
JAVA PROGRAMLAMA ORNEKLER
Görsel C# ile Windows Programlama
Bugünkü Konular Döngüler ve Akış Diyagramları C de Döngü Tanımlama
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
3. HAFTA 3. Hafta.
While EndDo Repeat Until For Next.  Program mantığı içinde belirli bir düzene bağlı kalarak sürekli tekrar eden işlemlerin belirli bir kritere/değişkene.
Döngü Komutları. for deyimi bir alt limitten, bir üst limite kadar programın belirli bir parçasını tekrar eder. for deyiminde sayaç artış oranı da verilmelidir.
BM-103 Programlamaya Giriş Güz 2012 (3. Sunu)
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
METHODLAR VE KOŞULLAR.
BSM208 PROGRAMLAMA DİLLERİNİN PRENSİPLERİ
Excel’de VBA Programlama (Visual Basic Application)
PROGRAM KONTROL KOMUTLARI 1. if koşulu 2. if else koşulu
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
Bölüm 2: Program Denetimi
Java İle Programlamaya GİRİş
FONKSİYONLAR İbrahim Onur Sığırcı.
Bilgisayar Bilimi Döngüler.
Sunum transkripti:

Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri 4.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örleri 4.13 İlkel Tipler Bölüm 4 – Kontrol İfadeleri:1.kısım

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çimli yapılar Döngüsel yapılar Akış diagramı –İş akışını modeller İşi tanımlayan semboller İş sırasını gösteren oklar

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;

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.

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

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

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

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

Fig 4.5 while tekrarlama ifadelerinin akış dyagramı. [ü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;

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.

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.

 2003 Prentice Hall, Inc. All rights reserved. 17 Outline GradeBook.java (1 of 3) Assign a value to instance variable courseName Declare method setCourseName Declare method getCourseName

 2003 Prentice Hall, Inc. All rights reserved. 18 Outline GradeBoo k.java (2 of 3) Declare method displayMessage Declare method determineClassAverage Declare and initialize Scanner variable input Declare local int variables total, gradeCounter, grade and average

 2003 Prentice Hall, Inc. All rights reserved. 19 Outline GradeBoo k.java (3 of 3) while loop iterates as long as gradeCounter <= 10 Increment the counter variable gradeCounter Calculate average grade Display results

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 7 public static void main( String args[] ) 8 { 9 int toplam; // sum of grades input by user 10 int notSayaci; // number of grade to be entered next 11 int not; // grade value 12 int ortalama; // average of grades String notString; // grade typed by user // initialization phase 17 toplam = 0; // initialize total 18 notSayaci = 1; // initialize loop counter // processing phase 21 while (notSayaci <= 10 ) { // loop 10 times // 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 Declare variables; gradeCounter is the counter Continue looping as long as gradeCounter is less than or equal to 10

Average1.java 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

Ortalama1.java

 2003 Prentice Hall, Inc. All rights reserved. 23 Outline GradeBook Test.java Create a new GradeBook object 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.java dö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ı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. 4.8 Pseudocode algoritması : sınıf ortalamasını bulmak için sonlandırıcı kontrollü döngüs kullanılır.

 2003 Prentice Hall, Inc. All rights reserved. 26 Outline GradeB ook.jav a (1 of 3) Assign a value to instance variable courseName Declare method setCourseName Declare method getCourseName

 2003 Prentice Hall, Inc. All rights reserved. 27 Outline GradeB ook.jav a (2 of 3) Declare method displayMessage Declare method determineClassAverage Declare and initialize Scanner variable input Declare local int variables total, gradeCounter and grade and double variable average

 2003 Prentice Hall, Inc. All rights reserved. 28 Outline GradeB ook.jav a (3 of 3) while loop iterates as long as grade != the sentinel value, -1 Calculate average grade using (double) to perform explicit conversion Display average grade Display “No grades were entered” message

 2003 Prentice Hall, Inc. All rights reserved. 29 Outline GradeBook Test.java Create a new GradeBook object Pass the course’s name to the GradeBook constructor as a string Call GradeBook ’s determineClassAverage method

Average2.java 1 // Fig. 4.9: Ortalama2.java 2 // Class-average program with sentinel-controlled repetition. 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

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

Ortalama2.java 60 else // if no grades entered, output appropriate message 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

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

 2003 Prentice Hall, Inc. All rights reserved. 35 Outline Analysi s.java (1 of 2) Declare processExamResults ’ local variables while loop iterates as long as studentCounter <= 10

 2003 Prentice Hall, Inc. All rights reserved. 36 Outline Analysi s.java (2 of 2) Determine whether this student passed or failed and increment the appropriate variable Determine whether more than eight students passed the exam

 2003 Prentice Hall, Inc. All rights reserved. 37 Outline AnalysisTe st.java Create an Analysis object More than 8 students passed the exam

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

Analysis.java else // if result not 1, increment failures 33 kalanlar = kalanlar + 1; // increment studentCounter so loop eventually terminates 36 sayac = sayac + 1; } // end while // termination phase; prepare and display results 41 cikis = “Geçenler: " + gecenler + "\nKalanlar: " + kalanlar; // determine whether more than 8 students passed 44 if ( gecenler > 8 ) 45 cikis = cikis + "\nÖğretim Başarılı"; JOptionPane.showMessageDialog( null, cikis, 48 "Analysis of Examination Results", 49 JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); // terminate application } // end main } // end class Analysis

4.11 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

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

Increment.java Line 13 postincrement Line 21 preincrement 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 System.out.println(); // skip a line // 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 } // end main } // end class Increment Line 13 postincrements c Line 21 preincrements c

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

 2003 Prentice Hall, Inc. All rights reserved. 48 Diyalog kutusunda metin yazdırmak Pencereler ve diyalog kutuları –Bir çok Java uygulaması program çıktısını göstermek için bunu kullanır. –JOptionPane sınıfı hazır diyalog kutularını kullanır.

 2003 Prentice Hall, Inc. All rights reserved. 49 Outline Dialog1. java Show a message dialog with textImport class JOptionPane

 2003 Prentice Hall, Inc. All rights reserved. 50 Diyalog kutusunda metin yazdırmak javax.swing paketi –Grafik arabirim oluşturmaya yardım edecek sınıflar içerir.(GUIs) –JOptionPane sınıfını içerir Bir mesaj yazdırmak için showMessageDialog statik metodu kullanılır.

 2003 Prentice Hall, Inc. All rights reserved. 51 Diyalog kutusundan metin girişi yapmak Diyalog girişi –Kullanıcın bilgi girmesini sağlar –JOptionPane sınıfının showInputDialog metodu kullanılarak oluşturulur

 2003 Prentice Hall, Inc. All rights reserved. 52 Outline NameDial og.java Show input dialog Format a String to output to user

 2003 Prentice Hall, Inc. All rights reserved. 53 Creating Simple Drawings

 2003 Prentice Hall, Inc. All rights reserved (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.

 2003 Prentice Hall, Inc. All rights reserved Basit çizimler oluşturmak JPanel class –Her JPanel in bir paintComponent metodu vardır paintComponent sistem JPanel i görüntüleyeceği zaman çağrılır. –getWidth ve getHeight 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.

 2003 Prentice Hall, Inc. All rights reserved. 56 Fig | Java koordinat sistemi

 2003 Prentice Hall, Inc. All rights reserved Basit çizimler oluşturmak Kalıtım –extends anahtar 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.

 2003 Prentice Hall, Inc. All rights reserved. 58 Outline DrawPa nel.java Import the java.awt.Graphics and the javax.swing.JPanel classes The DrawPanel class extends the JPanel class Declare the paintComponent method Draw the two lines Retrieve the JPanel ’s width and height

 2003 Prentice Hall, Inc. All rights reserved Basit çizimler oluşturmak JFrame class javax.swing paketindedir. –Programcının bir pencere oluşturmasını sağlar. –setDefaultCloseOperation metod JFrame.EXIT_ON_CLOSE arguman olarak uygulamaya gönderir ve pencere kapandığında programın bitmesini sağlar. –add metod JPanel i JFrame e ekler. –setSize metod JFrame in genişliğini ve uzunluğunu belirler. Birinci parametre genişlik, ikinci parametre uzunluktur.

 2003 Prentice Hall, Inc. All rights reserved. 60 Outline DrawPanel Test.java Import the JFrame class from the javax.swing class Create DrawPanel and JFrame objects Set the application to terminate when the user closes the window Add the DrawPanel to the JFrame Set the size of and display the JFrame

 2003 Prentice Hall, Inc. All rights reserved. 61 Fig | Lines fanning from a corner.

 2003 Prentice Hall, Inc. All rights reserved. 62 Fig | Line art with loops and drawLine.