Karar ifadeleri ve Döngüler

Slides:



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

Saatte V km hız ile giden bir aracın t zamanda aldığı yolu bulan metodu yazınız. Metodu kullanacak bir program yazınız. ( yol=hız*zaman, x=V*t) — Metot.
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Karar Verme: Eşitlik ve Karşılaştırma Operatörleri
Dersin Adı:ALGORİTMA GELİŞTİME TEKNİKLERİ Dersin Kodu:YBS506 Konu:Kontrol Yapıları(if / if-else) 2.HAFTA.
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
Değişkenler ve bellek Değişkenler
BİLEŞİK ATAMA VE DÖNGÜLER
Nöbetçi Kontrollü Döngü
Kontrol İfadeleri : 2.Kısım
Programlama-II (Java ile Bilgisayar Programlama)
DÖNGÜ İFADELERİ.
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
OOP UYGULAMA 5.
EDUTIME Java Day 4 Serdar TÜRKEL.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bölüm 10 Yapılar ve Birleşimler
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bölüm 5 Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut
Bölüm 3 – Yapısal Programlama
T-SQL-2.Konu Akış Kontrolleri.
Yapısal Program Geliştirme – if, if-else
Soru1: Kullanıcıdan iki tam sayı girmesini isteyen ve daha sonra büyük olan sayı ile beraber ‘en büyüktür’ ifadesi yazan, ancak sayılar birbirine eşitse.
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.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
JAVA İ LE PROGRAMLAMAYA G İ R İ Ş Ekim Dr. Galip Aydın.
Döngü Yapıları.
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Bölüm 5 Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut
Bölüm 2 – Kontrol Yapıları
Kontrol Yapıları ve Döngüler
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 2: Koşula Göre İşlem Yapma
Çoklu dallanma seçimi: switch
JAVA’DA DÖNGÜLER.
Bölüm 4 – C’de Program Kontrolü
DÖNGÜLER(Loop) while, for döngüleri Break ve continue işlevleri
Bil 102 Bölüm 6 Diziler.
PROGRAM DENETİM DEYİMLERİ
4. KONTROL VE DÖNGÜ KOMUTLARI
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
String class String karakterler dizisidir
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.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller
JAVA PROGRAMLAMA ORNEKLER
Nesne Tabanlı Programlama 2
Bugünkü Konular Döngüler ve Akış Diyagramları C de Döngü Tanımlama
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.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BM-103 Programlamaya Giriş Güz 2016 (10. Sunu)
METHODLAR VE KOŞULLAR.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
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
Veri Tipleri 12/4/2018.
Bölüm 2: Program Denetimi
Java İle Programlamaya GİRİş
Bilgisayar Bilimi Döngüler.
Sunum transkripti:

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

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.

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.

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

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

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.

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

Ş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ı.

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

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.

  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.

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

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

Ortalama1.java

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.

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.

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 13 14 double ortalama; // 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şi yada Çıkış için -1 :" ); 26 27 // convert gradeString to int 28 not = Integer.parseInt( notString ); 29

Not değeri -1 olana kadar döngüyü çalıştır. 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şi yada Çı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 Not değeri -1 olana kadar döngüyü çalıştır. Sayıyı ,ondalık kısmı iki basamaklı olacak şekilde yuvarla

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

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.

Öğrenci sayacı 10dan küçük ve eşit olduğu müddetçe döngüyü çalıştır 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 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; Öğrenci sayacı 10dan küçük ve eşit olduğu müddetçe döngüyü çalıştır İçiçe kontrol yapısı

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

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

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

Bknz: http://www. bilisim-kulubu. com/sozluk/sozluk. php Bknz: http://www.bilisim-kulubu.com/sozluk/sozluk.php?e=postincrement Bknz: http://www.bilisim-kulubu.com/sozluk/sozluk.php?e=preincrement Bknz: http://www.bilisim-kulubu.com/sozluk/sozluk.php?e=postdecrement Bknz: http://www.bilisim-kulubu.com/sozluk/sozluk.php?e=predecrement

Postincrement- sonra Arttır Preincrement- önce arttır 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 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 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  5 6 6