Sıra | DOSYA ADI | Format | Bağlantı |
---|---|---|---|
01. | Algori̇tma Ve Programlama | pptx | Sunumu İndir |
Transkript
BPR152 ALGORİTMA VE PROGRAMLAMA - IIÖğr. Gör. Bayram AKGÜLbayramakgul@bartin.edu.trhttp://myo.bartin.edu.tr/akgul
2• 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ülerBugünkü Konular
3• 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ı– an ifadesini hesaplama– 1 den N’ye kadar sayıların toplamı – 1 den N’ye kadar sayıların karelerini alma Neden Döngüler?
4Bir 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ı
51. Başla2. Toplamı 0 a eşitle3. Kullanıcıdan sayı girmesini veya 0 ile durmasını iste. 4. Klavyeden girilen sayıyı oku5. Eğer sayı 0 değil ise5.1. toplam = toplam + sayi5.2. 3. adıma git6. Toplamı yazdır.7. BitirBir dizi sayının toplamını hesaplama:Algoritma
6Bir dizi sayının toplamını hesaplama: Akış DiyagramıSayı gir veya 0 ile durToplamı ekrana yazdırsayı != 0?HKlavyeden Girilen Sayıyı okutoplam = 0toplam +=sayıEBaşlaBitir
7• 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. Bir dizi sayının toplamını hesaplama:Nasıl yapmalıyız?
8• “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.an yi nasıl hesaplarız?
91. Başla2. Kullanıcıdan “a” ve “n” girmelerini iste3. Sayacı 0 a eşitle 4. Sonucu 1 e eşitle /* sonuc = a0 = 1 */5. (sayac < n) olduğu sürece tekrarla5.1. sonuc = sonuc * a; /* şimdi sonuc = asayac */5.2. sayac++; 6. Sonucu yazdır7. Bitiran Hesaplama Algoritması
10an Hesaplama Akış Diyagramısayac = 0Başlasonuc = 1sayac < n?“a” ve “n” değerlerini girinizsonucu yazdırHBitirEsonuc *= a;sayac++;
11• “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.an Hesaplama – Nasıl Yapmalıyız?
12• C# ta döngü tanımlama– while döngüleri– do-while döngüleri– for dö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– gotoC#’ta döngü yapıları
13while Dö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;...}koşulEHifade1ifade2...
14Bir sürü sayının toplamını hesaplama:Akış diyagramı – kodint 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);Toplam+=nBitirToplamı yazdırBir sayi girin(n)n != 0 ?NYBir sayi girin(n)Başla
an Hesaplamak için Kodint n, a, sayac = 0;int sonuc = 1; // sonuc = a^0Console.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);sayac = 0Başlasonuc = 1sayac < n?“a” ve “n” değerlerini girinizsonuc yazdırHBitirEsonuc *= a;sayac++;15
16a = 3 ve n = 5 için kod izlemesiint n, sayac = 0;int a, sonuc = 1; string str;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);0 1sayac sonuc3 5a n0 < 5? True1 31 < 5? True2 92 < 5? True3 273 < 5? True4 815 < 5? False4 < 5? True5 243
an Hesaplama: Alternatif Kodint n, sayac = 0;double a, sonuc = 1; // sonuc = a^0Console.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;17
181. Kullanıcıdan “n” sayısını iste2. i = 1 /* İterasyon değişkeni*/ 3. toplam = 0 /* geçerli toplam*/4. (i <= n) olduğu sürece tekrarla4.1. toplam += i;4.2. i++; 5. Toplamı yazdır1+2+3+..+N işlemini hesaplamaAlgoritma
191+2+3+..+N Hesaplama: Akış Diyagramı ve Kodint 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);i = 1Başlatoplam = 0i <= n?“n” değerini girToplamı yazdırHBitirEtoplam += i;i++;
20n=5 için Kod izlemeint n, i,toplam;string str;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);1 0i top1 <= 5? True2 12 <= 5? True3 33 <= 5? True4 64 <= 5? True5 106 <= 5? False5 <= 5? True6 155n
211+2+3+..+N: Alternatif Kodint 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++;
221 den N sayısına kadar Sayıların Kareleri Tablosunu Oluşturma+-----+-----+| i | i*i |+-----+-----+| 1| 1|| 2| 4|| 3| 9|| 4| 16|| 5| 25|| 6| 36|+-----+-----+• 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
23Kareler Tablosu için Kodint 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 çizgisiConsole.WriteLine(\+-----+-----+\);i = 1Başlai <= n?n değerini girTablonun alt çizgisiniyazdırHBitirE(i, i*i) yazdıri++;Başlığı yazdır
24n=4 için kod izlemeConsole.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 çizgisiConsole.WriteLine(\+-----+-----+\);1i4n1 <= 4? True+-----+-----+| i | i*i |+-----+-----+| 1| 1|| 2| 4|| 3| 9|| 4| 16|+-----+-----+22 <= 4? True33 <= 4? True44 <= 4? True55 <= 4? False
25while Örnek-1int 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
26while Örnek-2int 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
DINLEDIĞINIZ IÇIN TEŞEKKÜRLER…Öğr. Gör. Bayram AKGÜL 27