Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

BPR152 ALGORİTMA VE PROGRAMLAMA - II

Benzer bir sunumlar


... konulu sunumlar: "BPR152 ALGORİTMA VE PROGRAMLAMA - II"— Sunum transkripti:

1 BPR152 ALGORİTMA VE PROGRAMLAMA - II
Öğr. Gör. Bayram AKGÜL

2 Bugünkü Konular Döngüler ve Akış Diyagramları C# ‘ta Döngü Tanımlama
while döngüsü do-while döngüsü for döngüsü foreach döngüsü (listelerde ve koleksiyonlarda kullanılır Daha sonra işlenecektir.) İç içe döngüler Döngülerde kullanılan yardımcı ifadeler break continue goto Sonsuz döngüler

3 do while ifadesi While döngüsü, döngünün başında -başlamadan önce- karşılaştırma durumuna göre çalışır. Bazı durumlarda döngü bir kere çalıştıktan sonra devam edip etmemeye karar vermek isteriz. Bu durumlarda do while döngüsü kullanılır. Bu demek oluyor ki döngünün gövdesi en az bir kere çalışıyor. Yazım Kuralı: koşul Y N ifade1 ifade2 ... do { ifade1; ifade2; ... } while(koşul);

4 Şifre Sorma(1) Örneğin, kullanıcı doğru şifreyi girene kadar kullanıcıdan şifre girmesini isteyelim: /* while kullanarak ...*/ string SIFRE = "123456"; string sifre; Console.Write("Şifreyi girin:"); sifre = Console.ReadLine(); while (sifre != SIFRE) { } Console.Write("şifre OK"); Burda şifreyi en az bir kere soruyoruz! While döngüsü kullanmak ile Console.Write, Console.ReadLine ifadelerini tekrarlıyoruz.

5 Şifre Sorma(2) do-while ile aynı döngü Fark gayet açık…
/* do-while kullanarak …*/ string SIFRE = "123456"; string sifre; do { Console.Write("Şifreyi girin:"); sifre = Console.ReadLine(); } while (sifre != SIFRE); Console.Write("şifre OK"); Fark gayet açık…

6 do while Örnek-1 Bir pozitif tam sayı iste int sayi; do {
Console.Write("Bir pozitif tam sayı gir: "); int.TryParse(Console.ReadLine(), out sayi); } while (sayi <= 0); Sayı 0’dan küçük eşit olduğu sürece sayıyı tekrar tekrar isteyecek.

7 do while örnek-2: int i = 0;
Console.Write("C# Programlamayı nasıl buldun?"); do { Console.Write("C# Programlama çok zevkli!"); i++; } while (i < 10); 10 defa tekrarlar (0 dan 9 a kadar) Aynı mesajı 10 defa tekrarlar

8 do while örnek-3: int i = 20;
Console.Write("C# Programlamayı nasıl buldun?"); do { Console.Write("C# Programlama çok zevkli!"); i++; } while (i < 10); 1 kere tekrarlar (i = 20 için) Aynı mesajı bir kere yazar

9 do while örnek-4: string opsiyon = " "; do {
Console.WriteLine(" "); Console.WriteLine("Opsiyonlardan birini seçin:"); Console.WriteLine("(a) Not hesapla"); Console.WriteLine("(b) Ortalama hesapla"); Console.WriteLine("(c) Notları yazdır"); Console.WriteLine("(x) çıkış"); opsiyon = Console.ReadLine(); if (opsiyon == "a") ... else if (opsiyon == "b") ... else if (opsiyon == "c") ... else ... } while (opsiyon != "x");

10 while ile do while arasındaki fark nedir?
Döngüye koymak için kontrol eder Döngüden çıkarmak için kontrol eder. Döngü çalışabilir veya çalışmaz Döngü en az bir kere çalışır

11 for Döngüsü Daha sık kullanılır
Döngünün belli bir sayıda çalışmasını istiyorsak kullanırız. Örneğin döngünün N defa çalışmasını istiyoruzdur. Yazım Kuralı: for(başlangıç değerleri; koşul; değiştirme listesi) { ifade1; ifade2; ... }

12 for akış diyagramı, ve while eşiti
değiştir koşul E H İlk değer ifade1 ifade2 ... for(ilk değer;koşul;değiştir) { ifade1; ifade2; ... } İlk değer; while(koşul) { ifade1; ifade2; ... değiştir; }

13 for Örneği Problem: 1 den 10’a kadar sayıları yazdır output:
Başla int sayı; for(sayı = 1; sayı <= 10; sayı++) { Console.Write(sayı); } sayı = 1 sayı <= 10 Y Sayıyı yazdır N output: sayı++ Bitir

14 for ifadesinin kullanımı
For ifadesi genellikle bir değişkeni artırmak veya azaltmak için en iyi tercihtir. for (i=0; i<N; i++) … 0 dan N-1 e kadar sayar for (i=1; i<=N; i++) … 1 den N e kadar sayar for (i=N-1; i>=0; i--) … N-1 den 0 a kadar sayar for (i=N; i>=1; i--) … N den 1 e kadar sayar

15 an Hesaplamak için Kod int n, sayac;
double a, sonuc = 1; // sonuc = a^0 Console.Write("a değerini gir:"); double.TryParse(Console.ReadLine(),out a); Console.Write("n değerini gir:"); int.TryParse(Console.ReadLine(),out n); for (sayac = 0; sayac < n; sayac++) { sonuc *= a; } Console.Write("{0}^{1} = {2}",a,n,sonuc); sayac = 0 Başla sonuc = 1 sayac < n? “a” ve “n” değerlerini giriniz sonuci yazdır H Bitir E sonuc *= a; sayac++;

16 for Örnek: an Hesaplama
i sonuc 3 5 1 1 sonuc = 1; for(i=1; i<=N; i++) { sonuc *= a; } 1 <= 5?  True 2 3 2 <= 5?  True Başla i++ Bitir sonucu yazdır i <= N E H i = 1 sonuc *=a; 3 9 3 <= 5?  True 4 27 4 <= 5?  True 5 81 5 <= 5?  True 6 243 6 <= 5?  False

17 for döngüsü ile 1+2+3+..+N Akış Diyagramı ve Kod
Başla toplam = 0 i <= n? “n” değerini giriniz Toplamı yazdır H Bitir E toplam += i; i++; int n, i,toplam; Console.Write("n değerini gir:"); int.TryParse(Console.ReadLine(),out n); toplam = 0; for (i = 1; i <= n; i++) { toplam += i; } Console.Write("Toplam = " + toplam);

18 Not for parantezleri içerisinde değişken tanımlaması yapılabilir.
for (int i = 1; i <= n; i++) { toplam += i; } for döngü bloğunda sadece bir tek ifade varsa süslü parantezleri kullanmak zorunda değilsiniz. for (int i = 0; i <= n; i++) toplam += i;

19 for döngüsü ile 1+2+3+..+N toplamını hesaplama - 2
int n, toplam; Console.Write("n değerini gir:"); int.TryParse(Console.ReadLine(), out n); toplam = 0; for (int i = 1; i <= n; i++) toplam += i; Console.Write("Toplam = " + toplam);

20 for döngüsü ile Kareler Tablosu
int n; Console.Write("n değerini gir:"); int.TryParse(Console.ReadLine(),out n); // tablo başlığı Console.WriteLine(" "); Console.WriteLine("| i | i*i |"); for (int i = 1; i <= n; i++) { // beş hanede sağa hizalayarak yazar Console.WriteLine("|{0,5}|{1,5}|" , i, i * i); } // tablonun alt çizgisi i = 1 Başla i <= n? n değerini giriniz Tablonun alt çizgisini yazdır H Bitir E (i, i*i) yazdır i++; Başlığı yazdır

21 Kareler Tablosu Yazdırma
Console.WriteLine(" "); Console.WriteLine("| i | i*i |"); for (int i = 1; i <= n; i++) Console.WriteLine("|{0,5}|{1,5}|", i, i * i); | i | i*i | | 1| 1| | 2| 4| | 3| 9| | 4| 16| | 5| 25| | 6| 36| n=6 için Sonuç

22 for kullanım örnekleri
Problem: …+N işlemini hesapla toplam = 0; for(i=1; i<=N; i++) { toplam += i; } İlk değer (i=1), kontrol(i<=N) ve değiştir(i++) ifadelerin her biri opsiyoneldir ve yazılmayabilir. toplam=0; i=1; for(; i<=N; i++) { toplam += i; } toplam=0; for(i=1; i<=N;) { toplam += i++; } i=1; toplam=0; for(; i<=N;) { toplam += i++; }

23 Dinlediğiniz için teşekkürler…
Öğr. Gör. Bayram AKGÜL


"BPR152 ALGORİTMA VE PROGRAMLAMA - II" indir ppt

Benzer bir sunumlar


Google Reklamları