27
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL [email protected]. tr http:// myo.bartin.edu.tr/akgul

BPR152 ALGORİTMA VE PROGRAMLAMA - II

  • Upload
    roana

  • View
    61

  • Download
    3

Embed Size (px)

DESCRIPTION

BPR152 ALGORİTMA VE PROGRAMLAMA - II. Öğr . Gör. Bayram AKGÜL [email protected] 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ü - PowerPoint PPT Presentation

Citation preview

Page 1: BPR152  ALGORİTMA VE PROGRAMLAMA - II

BPR152 ALGORİTMA VE PROGRAMLAMA - II

Öğr. Gör. Bayram AKGÜ[email protected]

http://myo.bartin.edu.tr/akgul

Page 2: BPR152  ALGORİTMA VE PROGRAMLAMA - II

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üler

Bugünkü Konular

Page 3: BPR152  ALGORİTMA VE PROGRAMLAMA - II

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?

Page 4: BPR152  ALGORİTMA VE PROGRAMLAMA - II

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ı

Page 5: BPR152  ALGORİTMA VE PROGRAMLAMA - II

5

1. 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 ise

5.1. toplam = toplam + sayi5.2. 3. adıma git

6. Toplamı yazdır.7. Bitir

Bir dizi sayının toplamını hesaplama:Algoritma

Page 6: BPR152  ALGORİTMA VE PROGRAMLAMA - II

6

Bir dizi sayının toplamını hesaplama:

Akış Diyagramı

Sayı gir veya 0 ile dur

Toplamı ekrana yazdır

sayı != 0?

H

Klavyeden Girilen Sayıyı oku

toplam = 0

toplam +=sayıE

Başla

Bitir

Page 7: BPR152  ALGORİTMA VE PROGRAMLAMA - II

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?

Page 8: BPR152  ALGORİTMA VE PROGRAMLAMA - II

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?

Page 9: BPR152  ALGORİTMA VE PROGRAMLAMA - II

9

1. 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. Bitir

an Hesaplama Algoritması

Page 10: BPR152  ALGORİTMA VE PROGRAMLAMA - II

10

an Hesaplama Akış Diyagramı

sayac = 0

Başla

sonuc = 1

sayac < n?

“a” ve “n” değerlerini giriniz

sonucu yazdır

H

Bitir

E

sonuc *= a;

sayac++;

Page 11: BPR152  ALGORİTMA VE PROGRAMLAMA - II

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?

Page 12: BPR152  ALGORİTMA VE PROGRAMLAMA - II

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– goto

C#’ta döngü yapıları

Page 13: BPR152  ALGORİTMA VE PROGRAMLAMA - II

13

while 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şulE

Hifade1

ifade2

...

Page 14: BPR152  ALGORİTMA VE PROGRAMLAMA - II

14

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);

Toplam+=n

Bitir

Toplamı yazdır

Bir sayi girin(n)

n != 0 ?

N

Y

Bir sayi girin(n)

Başla

Page 15: BPR152  ALGORİTMA VE PROGRAMLAMA - II

an Hesaplamak için Kodint n, a, sayac = 0;int sonuc = 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);

sayac = 0

Başla

sonuc = 1

sayac < n?

“a” ve “n” değerlerini giriniz

sonuc yazdır

H

Bitir

E

sonuc *= a;

sayac++;

15

Page 16: BPR152  ALGORİTMA VE PROGRAMLAMA - II

16

a = 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 1

sayac sonuc3 5a n

0 < 5? True1 3

1 < 5? True2 9

2 < 5? True3 27

3 < 5? True4 81

5 < 5? False

4 < 5? True5 243

Page 17: BPR152  ALGORİTMA VE PROGRAMLAMA - II

an Hesaplama: Alternatif Kod

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;

17

Page 18: BPR152  ALGORİTMA VE PROGRAMLAMA - II

18

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

1+2+3+..+N işlemini hesaplamaAlgoritma

Page 19: BPR152  ALGORİTMA VE PROGRAMLAMA - II

19

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);

i = 1

Başla

toplam = 0

i <= n?

“n” değerini gir

Toplamı yazdır

H

Bitir

E

toplam += i;

i++;

Page 20: BPR152  ALGORİTMA VE PROGRAMLAMA - II

20

n=5 için Kod izleme

int 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 0

i top

1 <= 5? True2 1

2 <= 5? True3 3

3 <= 5? True4 6

4 <= 5? True5 10

6 <= 5? False

5 <= 5? True6 15

5

n

Page 21: BPR152  ALGORİTMA VE PROGRAMLAMA - II

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++;

Page 22: BPR152  ALGORİTMA VE PROGRAMLAMA - II

22

1 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

Page 23: BPR152  ALGORİTMA VE PROGRAMLAMA - II

23

Kareler 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 = 1

Başla

i <= n?

n değerini gir

Tablonun alt çizgisiniyazdır

H

Bitir

E

(i, i*i) yazdır

i++;

Başlığı yazdır

Page 24: BPR152  ALGORİTMA VE PROGRAMLAMA - II

24

n=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("+-----+-----+");

1

i4

n

1 <= 4? True

+-----+-----+| i | i*i |+-----+-----+| 1| 1|| 2| 4|| 3| 9|| 4| 16|+-----+-----+

2

2 <= 4? True3

3 <= 4? True4

4 <= 4? True5

5 <= 4? False

Page 25: BPR152  ALGORİTMA VE PROGRAMLAMA - II

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

Page 26: BPR152  ALGORİTMA VE PROGRAMLAMA - II

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

Page 27: BPR152  ALGORİTMA VE PROGRAMLAMA - II

DİNLEDİĞİNİZ İÇİN TEŞEKKÜRLER…

Öğr. Gör. Bayram AKGÜL 27