1 / 27

BPR152 ALGORİTMA VE PROGRAMLAMA - II

BPR152 ALGORİTMA VE PROGRAMLAMA - II. Öğr . Gör. Bayram AKGÜL bayramakgul@bartin.edu.tr http://bmyo.bartin.edu.tr/akgul. 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ü

roana
Download Presentation

BPR152 ALGORİTMA VE PROGRAMLAMA - II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL bayramakgul@bartin.edu.tr http://bmyo.bartin.edu.tr/akgul

  2. Bugünkü Konular • Döngüler ve Akış Diyagramları • C# ‘ta Döngü Tanımlama • whiledöngüsü • do-while döngüsü • for döngüsü • foreachdö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. Neden Döngüler? • Programda bazı kodların tekrarlanmasını isteriz, bazen de koşul sağlandıkça bazı kodların tekrarlanmasını isteyebiliriz. • Aşağıdaki örnekleri düşünelim: • Klavyeden girilen bir sürü sayının toplamı • anifadesini hesaplama • 1 den N’ye kadar sayıların toplamı • 1 den N’ye kadar sayıların karelerini alma

  4. Bir dizi sayının toplamını nasıl hesaplarız? • Klavyeden girilecek bir dizi sayının toplamını hesaplayacak bir algoritma yazalım. • Input • Bir sürü sayı (kaç tane olduğunu bilmiyoruz) • 0 sayı girişini bitirecek • Output • Girilen sayıların toplamı

  5. Bir dizi sayının toplamını hesaplama:Algoritma • Başla • Toplamı 0 a eşitle • Kullanıcıdan sayı girmesini veya 0 ile durmasını iste. • Klavyeden girilen sayıyı oku • Eğersayı0 değil ise 5.1. toplam = toplam + sayi 5.2. 3. adıma git • Toplamı yazdır. • Bitir

  6. Bir dizi sayının toplamını hesaplama: Akış Diyagramı Başla toplam = 0 Sayı gir veya 0 ile dur Klavyeden Girilen Sayıyı oku sayı!= 0? E toplam +=sayı H Toplamı ekrana yazdır Bitir

  7. Bir dizi sayının toplamını hesaplama:Nasıl yapmalıyız? • Açıkçası biz kullanıcı 0 girene kadar 3, 4 ve 5. basamakların sürekli çalışmasını istiyoruz. • Bunun anlamı;3, 4 ve 5. adımları bir döngü içinde çalıştırmamız gerekiyor.

  8. anyi nasıl hesaplarız? • “a” gerçek sayı, “n” tam sayı ve n>=0 olsun. • Örnek, 35 i hesapla. • 35 = 3*3*3*3*3 • sonuc değişkeni alalım ve ilk değeri 1 olsun. • sonuc = 1 (a0=1) • a sayısını kendisiyle çarp ve her çarpma işleminde bir say. • Sayacın ilk değeri = 0 • Sayaç “n” olunca “a” sayısını “n” defa kendisiyle çarpmışız demektir.

  9. anHesaplama Algoritması • Başla • Kullanıcıdan “a” ve “n” girmelerini iste • Sayacı 0 a eşitle • Sonucu 1 e eşitle /* sonuc = a0 = 1 */ • (sayac < n) olduğu sürece tekrarla 5.1. sonuc = sonuc * a; /* şimdi sonuc = asayac */ 5.2. sayac++; • Sonucu yazdır • Bitir

  10. Başla “a” ve“n”değerlerini giriniz sayac = 0 sonuc= 1 sayac < n? E H sonuc*= a; sonucu yazdır sayac++; Bitir anHesaplama Akış Diyagramı

  11. anHesaplama – Nasıl Yapmalıyız? • “sayac” “n” değerine ulaşana kadar 5.1 ve 5.2 adımlarının tekrarlamalarını istiyoruz. • 5.1 ve 5.2 basamaklarını koşul sağlandıkça bir döngü içinde çalışmalarını istiyoruz.

  12. C#’ta döngü yapıları • C# ta döngü tanımlama • whiledöngüleri • do-whiledöngüleri • fordöngüleri • foreach (listelerde ve koleksiyonlarda kullanılır) • Aşağıdaki yardımcı ifadeler döngülerin içerisinden çıkarmak için kullanılabilir. • break • continue • goto

  13. H ifade1 koşul E ifade2 ... whileDöngüsü • While döngüsü koşul sağlandıkça çalışır; ta ki test edilen koşul false olursa döngü biter. • Döngünün kaç defa çalışacağı bilinmediği durumlarda kullanılır. • Kullanımı: while(koşul) { ifade1; ifade2; ... }

  14. Y N Bir sürü sayının toplamını hesaplama:Akış diyagramı – kod int sayı, toplam =0; Console.Write("Bir sayı girin(durmak için 0):"); int.TryParse(Console.ReadLine(), out sayı); while (sayı !=0) { toplam += sayı; Console.Write("Sayı girin(durmak için 0):"); int.TryParse(Console.ReadLine(), out sayı); } Console.Write("Toplam ="+ toplam); Başla Bir sayi girin (n) n != 0 ? Toplam+=n Bir sayi girin (n) Toplamı yazdır Bitir

  15. Başla “a” ve“n”değer lerini giriniz sayac = 0 sonuc= 1 sayac < n? E H sonuc*= a; sonucyazdır sayac++; Bitir anHesaplamak için Kod int n, a,sayac=0; intsonuc=1; // sonuc = a^0 Console.Write("a değerini gir:"); int.TryParse(Console.ReadLine(),out a); Console.Write("n değerini gir:"); int.TryParse(Console.ReadLine(), out n); while (sayac< n) { sonuc*= a; sayac++; } Console.Write("{0}^{1} = {2} ", a, n, sonuc);

  16. a = 3 ve n = 5 için kod izlemesi int n, sayac=0; int a, sonuc=1; stringstr; Console.Write("a değerini gir:"); str=Console.ReadLine(); int.TryParse(str, out a); Console.Write("n değerini gir:"); str=Console.ReadLine(); int.TryParse(str, out n); while (sayac< n) { sonuc*= a; sayac++; } Console.Write("{0}^{1} = {2} ", a, n, sonuc); n sonuc sayac a 3 5 0 1 0 < 5?  True 1 3 1 < 5?  True 2 9 2 < 5?  True 3 27 3 < 5?  True 4 81 4 < 5?  True 5 243 5 < 5?  False

  17. anHesaplama: AlternatifKod int n, sayac=0; 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); while (sayac< n) { sonuc*= a; sayac++; } Console.Write("{0}^{1} = {2} " , a, n, sonuc); while (sayac++< n) sonuc*= a;

  18. 1+2+3+..+N işlemini hesaplamaAlgoritma • Kullanıcıdan “n” sayısını iste • i = 1 /* İterasyon değişkeni*/ • toplam = 0 /* geçerli toplam*/ • (i <= n) olduğu sürece tekrarla 4.1. toplam += i; 4.2. i++; • Toplamı yazdır

  19. Başla “n”değerini gir i = 1 toplam = 0 i <= n? E H toplam += i; Toplamı yazdır i++; Bitir 1+2+3+..+N Hesaplama:Akış Diyagramı ve Kod int n, i,toplam; Console.Write("n değerini gir:"); int.TryParse(Console.ReadLine(),out n); i =1; toplam =0; while (i <= n) { toplam += i; i++; } Console.Write("Toplam = "+ toplam);

  20. n=5 için Kod izleme n i top int n, i,toplam; stringstr; Console.Write("n değerini gir:"); str=Console.ReadLine(); int.TryParse(str, out n); i =1; toplam =0; while (i <= n) { toplam += i; i++; } Console.Write("Toplam = "+ toplam); 5 1 0 1 <= 5?  True 2 1 2 <= 5?  True 3 3 3 <= 5?  True 4 6 4 <= 5?  True 5 10 5 <= 5?  True 6 15 6 <= 5?  False

  21. 1+2+3+..+N: Alternatif Kod int n, i,toplam; Console.Write("n değerini gir:"); int.TryParse(Console.ReadLine(), out n); i =1; toplam =0; while (i <= n) { toplam += i; i++; } Console.Write("Toplam = "+ toplam); while (i <= n) toplam += i++;

  22. 1 den N sayısına kadar Sayıların Kareleri Tablosunu Oluşturma • Girilen n sayısına kadar 1, 2, 3, 4, .., n sayıların karesini veren bir tablo oluşturalım. • n = 6 için görünüm aşağıdaki gibi olacak +-----+-----+ | i | i*i | +-----+-----+ | 1| 1| | 2| 4| | 3| 9| | 4| 16| | 5| 25| | 6| 36| +-----+-----+

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

  24. n=4 için kod izleme Console.WriteLine("+-----+-----+"); Console.WriteLine("| i | i*i |"); Console.WriteLine("+-----+-----+"); i =1; while (i <= n) { Console.WriteLine("|{0,5}|{1,5}|",i,i*i); i++; } // tablonun alt çizgisi Console.WriteLine("+-----+-----+"); n i 4 1 1 <= 4?  True 2 2 <= 4?  True 3 3 <= 4?  True 4 +-----+-----+ | i | i*i | +-----+-----+ | 1| 1| | 2| 4| | 3| 9| | 4| 16| +-----+-----+ 4 <= 4?  True 5 5 <= 4?  False

  25. whileÖrnek-1 int i =0; Console.WriteLine("C# programlamayı nasıl buldun"); while (i <10) { Console.WriteLine("C# Programlama çok zevkli!"); i++; } • 10 defa tekrarlar (0 dan 9’a kadar) • Aynı mesajı 10 defa yazar

  26. whileÖrnek-2 int i =20; Console.WriteLine("C# programlamayı nasıl buldun"); while (i <10) { Console.WriteLine("C# Programlama çok zevkli!"); i++; } • 0 defa tekrarlar (i= 20, 10’dan küçük değil) • Hiç mesaj yazmayacak

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

More Related