algoritma-dersi

18
25 a.k. Sayaç İfadesi S=S+1 İşlemde sağdaki ifadede değişkene “1” eklemekle bulunan sonuç yine kendisi olan soldaki değişkene aktarılmaktadır. Bu tür işlemlere algoritmada “sayaç” yada “döngü” ismi verilir. Burada artım 1 dir. Yani sayaç işlem sırası her geldiğinde bir artmaktadır. Sayacın artım değeri problemin durumuna göre 1 den de farklı olabilir. Genelde s, n, i ve sayac kelimeleri kullanılır. 26 a.k. Örnek : Klavyeden girilen bir yazıyı 5 kez yazdıran algoritma ve akışşemasını oluşturunuz. ( Y : Yazı, S : Sayaç ) 1. Başla 2. Y yi oku 3. Y yi yaz 4. S = S + 1 5. Eğer S < 5 ise 3.adıma git 6. Dur

Transcript of algoritma-dersi

Page 1: algoritma-dersi

25 a.k.

Sayaç İfadesi

S=S+1

İşlemde sağdaki ifadede değişkene “1” eklemekle bulunan sonuç yine kendisi olan soldaki değişkene aktarılmaktadır. Bu tür işlemlere algoritmada “sayaç”yada “döngü” ismi verilir. Burada artım 1 dir. Yani sayaç işlem sırası her geldiğinde bir artmaktadır.Sayacın artım değeri problemin durumuna göre1 den de farklı olabilir. Genelde s, n, i ve sayac kelimeleri kullanılır.

26 a.k.

Örnek : Klavyeden girilen bir yazıyı 5 kez yazdıran algoritma ve akış şemasını oluşturunuz.

( Y : Yazı, S : Sayaç )1. Başla2. Y yi oku3. Y yi yaz4. S = S + 15. Eğer S < 5 ise 3.adıma git6. Dur

Page 2: algoritma-dersi

27 a.k.

Herhangi bir sorunun çözümü için izlenmesi gerekli olan aritmetik ve mantıksal adımların görsel olarak simgelerle ifade edilmiş şekline "akış şeması" ya da akış diyagramıadı verilir.

Akış şemaları sorun çözümlenmesi sürecinin daha kolay anlaşılır biçime getirilmesi, iş akışının kontrol edilmesi ve programın kodlanmasının kolaylaştırılması içindir

Uygulamada çoğunlukla, yazılacak programlar için önce programın ana adımlarını gösteren genel bir akış şemasıhazırlanır. Daha sonra her adım için ayrıntılı akışşemalarının çizimi yapılır.

c) Çizgisel ifade (akış şeması)

28 a.k.

Klavye Kart Kağıt Ekran

İşlem Fonksiyonçağırma

KoşulluDallanma

Döngü

Veri tabanı Sakla Doğrudan

İç Dış Akış şeması sembolleri

Başla Dur

Page 3: algoritma-dersi

29 a.k.

Örnek : Klavyeden bir öğrencinin adı, soyadı ve iki tane sınav notu okunmaktadır. Okunan sınav notunun ortalamasını bulan, aşağıdaki formatta ekrana yazan algoritmayı yazıp, akış şemasını oluşturunuz.

Adı:Soyadı:Ortalama:

1. Başla2. Ad, Soyad, not1,not2 oku3. ort=(not1+not2)/24. “Adı:” ad yaz5. “Soyadı:” soyad yaz6. “Ortalama:” ort yaz7. Dur

Başla

Dur

Ad,soyad,not1,not2 oku

ort=(not1+not2)/2

Ad, soyad, ort yaz

Akış Diyagramı

Çözüm

30 a.k.

Örnek : Klavyeden birbirinden farklı iki sayı okunmaktadır. Büyük olan sayıyı önce, küçük olan sayıyı ise sonra yazdıran algoritmayı yazarak akış diyagramını çiziniz.

1. Başla

2. sayi1, sayi2 oku

3. eğer sayi1>sayi2 ise sayi1, sayi2 yaz ve 5. adıma git

4. sayi2, sayi1 yaz

5. Dur

Page 4: algoritma-dersi

31 a.k.

Başla

Dur

sayi1,sayi2 oku

sayi2, sayi1 yaz

sayi1, sayi2 yazeğer sayi1>sayi2evet

hayır

32 a.k.

Örnek : Klavyeden birbirinden farklı üç sayı okunmaktadır. Okunan bu sayıların toplamını sayaç yöntemini kullanarak bulan algoritmayı yazarak akış diyagramını çiziniz.

1. Başla

2. toplam=0,s=0

3. sayi oku

4. s=s+1

5. toplam=toplam+sayi

6.eger s<3 ise 3. adıma git

7. toplam yaz

8.Dur

Page 5: algoritma-dersi

33 a.k.

Başla

Dur

sayi oku

toplam yaz

eğer s<3evet

hayır

toplam=0, s=0

toplam=toplam+s

34 a.k.

Algoritmada işlem türleri

a) Ardışık (doğrusal, sıralı) işlem

b) Koşullu (Mantıksal) işlem

c) Döngülü (iteratif, çevrimli, yineli) işlem

Bir bilgisayar programının geliştirilmesinde kullanılan programlama dili ne olursa olsun bu programların akış diyagramlarında genel olarak yalnız bu üçyapı kullanılır.

Page 6: algoritma-dersi

35 a.k.

Ardışık işlemlera) Ardışık işlemler

1.Adım

2.Adım

3.Adım

– Bütün işlemlerin sırayla biribirini takip ettiği akış

– Daha önceki işlemlere geri dönülmez

– Karşılaştırma yapılmaz

36 a.k.

ÖRNEK : İki sayının çarpımının

bulunmasıyla ilgili algoritma

şöyledir.

Değişkenler

A:Birinci sayı,

B:İkinci sayı

C:İki sayının çarpımı(A*B)

Algoritma

1. Başla

2. A'yı oku

3. B'yi oku

4. C=A*B

5. C'yi yaz

6. Dur

akış şeması

a) Ardışık işlemler

başla

C=A*B

C yazdır

dur

A oku

B oku

Page 7: algoritma-dersi

37 a.k.

Örnek:Yarıçapı verilen çemberin alanını ve çevresini hesaplayan program akışını çiziniz.

başla

Alan=3.14*yarıçap*yarıçap

Çevre=2*3.14*yarıçap

Alan ve çevre Değerlerini yazdır

dur

Yarıçapı oku

38 a.k.

b) Koşullu işlemler

Algoritmanın yürütülme ardışıklığı yapılan işlemler

sonucu alınan değere bağlıdır. Bu değere göre

algoritma farklı dallarda yürütülebilir.

Koşullu İşlem Yapısı

Karşılaştırma ifadesi

Doğru Bir koldan

Yanlış Diğer koldan

Page 8: algoritma-dersi

39 a.k.

Geniş ölçüde mantıksal kararları içeren akışşemalarıdır. Hesap düzenleri genellikle basittir.

Örnek : Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit olma durumunu hesaplayıp yazdıran algoritma ve akış şemasını hazırlayınız.

1. Başla2. S sayısını oku3. Eğer S > 0 ise “Pozitif” yaz, 4. Eğer S < 0 ise “Negatif” yaz,5. Eğer S = 0 ise “Sıfıra eşit” yaz,6. Dur

b) Koşullu işlemler

40 a.k.

BAŞLA

DUR

S yi oku

S : 0

S < 0S > 0

S = 0

b) Koşullu işlemler

YAZ “Pozitif”

YAZ “Negatif”

YAZ “Sıfıra eşit”

Page 9: algoritma-dersi

41 a.k.

Örnek:Üçkenarının uzunluğu girilen bir üçgenin eşkenar olup olmadığını test edecek programın akış şemasını çiziniz.

başla

A=B

Eşkenardeğildir yaz

A=C

Eşkenar Değildir

eşkenardır

dur

E

E

H

H

A,B,C’yi oku

42 a.k.

Sorunun çözümü için,çözümde yer alan herhangi bir adım ya da adımların birden fazla kullanıldığı akış şemalarına döngülü şemalar denir.

c) Döngülü işlemler

Page 10: algoritma-dersi

43 a.k.

Aynı işlemleri birçok defa tekrar eden akışşemalarıdır.

Önceki işlemler

işlemler

Sonraki işlemler

Önceki işlemler

işlemler

Önceki işlemler

N defa

işlemler

d) Döngülü işlemlerrepeat-until veyado- while döngüsü

while döngüsü for döngüsü

karşılaştırma

karşılaştırma

Sonraki işlemler Sonraki işlemler

44 a.k.

DÖNGÜ KOMUTLARI

Programlama dilinde ardışık işlemlerin yapılmasınısağlayan komutlardır. Kontrol değişkeni başlangıç, bitişve adımdan oluşur.Örneğin n değişkeni için n=1,15,1 ifadesi kullanılırken burada;n :kontrol değişkeni1 : n değişkeninin başlangıç değerini15: n değerinin bitiş değerini1: n değeri 1 den 15 e kadar kaçar kaçar artmasıgerektiğini ifade eder.

Page 11: algoritma-dersi

45 a.k.

BAŞLA

DUR

OKU Y

YAZ Y

S = 0 , 5, 1

Sayısı bilinen döngülerde; başlangıç değeri, son değer, artış sayısı

Döngünün çalıştığı bölüm

d) Döngülü işlemler

46 a.k.

Sayaç=1

Sayac <=100

Sayacı ekrana yazdır

Sayac=sayac+1

Örnek : 1’den 100’e kadar sayıları yazdıran program akış diyagramını çiziniz

Başla

Dur

Page 12: algoritma-dersi

47 a.k.

Örnek : 3 öğrencinin bir sınavdan aldıkları notların ortalamasının bulunması

DeğişkenlerONOT:Öğrencinin notuTNOT:Notların toplamıNORT:Notların ortalamasıOSAYI:Öğrenci sayısıAlgoritma1. Başla2. TNOT=03. OSAYI=04. ONOT oku5. TNOT=TNOT+ONOT6. OSAYI=OSAYI+17. OSAYI<3 ise Adım 4'e git8. NORT=TNOT/39. NORT YAZ10. Dur

48 a.k.

Örnek açıklama

Bu örnekte 4,5,6 adımları üç kez, 7. adım ise dört kez tekrarlanacak. 7. adımda ilk 3 karşılaştırma zamanı osayı (öğrenci sayısı) <3 olduğundan 4-6 adımları tekrarlanacak. 4.cü karşılaştırmada ise osayı=3 olduğu için algoritmanın sonraki adımları 7-10 adımlarıgerçekleştirilecekGöründüğü gibi aynı bir algoritmada farklıişlem türleri buluna biliyor

Page 13: algoritma-dersi

49 a.k.

1:Ekrana beş tane sayı okunmaktadır. Okunan sayıların toplamını ve çarpımını bulan algoritmayı yazınız.

Genel Uygulamalar

1. başla2. i = 0 : top = 0 : çarp = 13. sayı oku4. i = i + 15. top = top + sayı6. carp = carp * sayı7. if i < 5 ise git 38. “sayıların toplamı =”, top yaz9. “sayıların çarpımı =”, carp yaz10. dur

50 a.k.

2.Ekrana 10 kişinin adı, soyadı ve doğum tarihi okunmaktadır. Okunan doğum tarihlerine göre yaşını bulan adı, soyadı ile birlikte yazdıranalgoritmayı yazınız.

1. i=02. ad, soyad, dy oku3. i=i+14. yas=by-dy5. ad, soyad, yas yaz6. if i<10 ise 2’ye git7. dur

3:Ekrana 4 kişinin yaşı okunmaktadır. Yaşı 20’ye eşit olanların sayısını bulan algoritmayı yazınız.

1. başla2. i=0 : ys=03. yas oku4. i=i+15. if yas=20 ise ys=ys+16. if i<4 ise 2’ye git7. “yaşı 20’ye eşit olanların sayısı=”,ys yaz8. dur

Page 14: algoritma-dersi

51 a.k.

4:Ekrana üç tane yaş okunmaktadır. Okunan yaşlardan 15 ile 25 arasında olanların sayısıny bulan algoritmayı yazınız.

1. başla2. i=0 : ys=03. yas oku4. i=i+15. if yas >=15 ve yas<= 25 ise ys=ys+16. if i<3 ise 2’ye git7. ys yaz8. dur

5:Ekrana dört tane sayı okunmaktadır. Okunan sayılardan pozitif olanların sayısını bulan ve yazdıran algoritmayı yazınız.

1. başla2. i= 0 , ps=03. sayı oku4. i=i+15. if sayı > 0 ise ps=ps+16. if i<4 ise 2’ye git7. ‘’pozitiflerin sayısı=’’ , ps yaz8. dur

52 a.k.

6:Ekrana dört tane sayı okunmaktadır. Okunan sayılardan tek ve çift olanların sayısını bulan algoritmayı yazınız.

1. başla2. i=0 , teks=0 , cifts=03. a oku4. i=i+15. k=(-1)**a6. if k=-1 ise teks=teks+17. if k=1 ise cifts=cifts+18. if i<4 ise 2’ye git9. teks, cifts yaz10. dur

7:1’den 7’ye kadar olan sayılar arasından tek olanların çarpımını bulan algoritmayı yazınız.

1. başla2. carp=1 : i=13. capr=carp*i4. i=i+25. if i<= 7 ise 3’ye git6. “çarpım=”, carp yaz7. dur

Page 15: algoritma-dersi

53 a.k.

8: 3’den 15’e kadar olan çift sayıların ortalamasını bulan algoritmayı yazınız.

1. başla2. top=0 : cs=0 : i=43. top=top+i : cs=cs+14. i=i+25. if i<= 15 ise 3’ye git6. orta=top/cs7. orta yaz8. dur

9: 2’den 7’ye kadar olan tek ve çift sayıların ayrı ayrı toplamlarını bulan algoritmayı yazınız.

1. başla2. top=0 : i=33. top=top+i4. i=i+25. if i<= 7 ise 3’ye git6. “tek sayıların toplamı=”, top yaz7. i=2 : ctop=08. ctop=ctop+i9. i=i+210. if i<= 7 ise 8’ye git11. “çift sayıların toplamı=”, ctop yaz12. dur

54 a.k.

10: Ekrana girilen N sayısına göre 1’den N’ye kadar olan sayıların karelerinin toplamını hesaplayan algoritmayı yazınız.

1. başla2. t=0, i=03. n oku4. i=i+15. t=t+i**26. eğer i<=n git 47. t yaz8. dur

11: 1’den 17’ye kadar olan tek sayıların toplamını bulan algoritmayı döngüyapısını kullanarak yazın.

1. başla2. top=03. döngü i=1,17,24. top=top+i5. döngü sonu i6. top yaz7. dur

Page 16: algoritma-dersi

55 a.k.

Örnek1: 1’den 100’e kadar olan tam sayıların toplamını bulan algoritma ve akış şemasının oluşturulması

Başla

I = 1Toplam = 0

I=100

I = I +1

DUR

Toplam = Toplam +1

E

Toplam yaz

Akış Diyagramları Genel Uygulamalar

Durum 1 (while döngüsü)

1.Başla2.I = 1 , Toplam = 03.Eğer I = 100 ise 6.Adıma git4.Toplam = Toplam + I5.I = I +1 al ve 3.Adıma Dön6.Toplam değerini yaz7.Dur H

56 a.k.

Örnek1: 1’den 100’e kadar olan tam sayıların toplamını bulan algoritma ve akış şemasının oluşturulması

Başla

I = 1Toplam = 0

I=100

I = I +1

DUR

Toplam = Toplam +1

E

H

Toplam yaz

Akış Diyagramları Genel Uygulamalar

Durum 2 (repeat-until döngüsü)

1.Başla2.I = 1 , Toplam = 03.Toplam = Toplam + I4.Eğer I = 100 ise 6.Adıma git5.I = I +1 al ve 3.Adıma Dön6.Toplam değerini yaz7.Dur

Page 17: algoritma-dersi

57 a.k.

Örnek1: 1’den 100’e kadar olan tam sayıların toplamını bulan algoritma ve akış şemasının oluşturulması

Başla

Toplam = 0

DUR

Toplam = Toplam +i

Toplam yaz

Akış Diyagramları Genel Uygulamalar

1. Başla2. Toplam=03. döngü I=1,100,14. Toplam=Toplam + I5. döngü sonu I6. Toplam yaz7. Dur

Durum 3 (for döngüsü ile)

i=1,100,1

58 a.k.

Örnek2: Girilen 3 tam sayıdan en büyüğünü bulan algoritma ve akış şemasının oluşturulması

Başla

Buyuk<B

Buyuk = B DUR

Buyuk = A

E

H

A,B,C oku

Buyuk<C

Buyuk = C

E

HToplam yaz

1.Başla2.A,B,C sayılarını oku3.Buyuk = A4.Eğer Buyuk < B ise Buyuk = B5.Eğer Buyuk < C ise Buyuk = C6.Buyuk değerini yaz7.Dur.

Page 18: algoritma-dersi

59 a.k.

Örnek3: 1 ile 100 arasındaki tam sayılardan tek ve çift olanların ayrı ayrıtoplamını bulan algoritma ve akış şemasının oluşturulması.

Başla

s=1, ttek=0, tcift=0

ttek=ttek+s

tcift=tcift+s

s = 99 ttetk, tcift yaz

Durs=s+1

evet

hayır

1.Başla2.S = 1 , TTEK = 0 , TCIFT = 03.TTEK = TTEK + S 4.TCIFT = TCIFT + S + 15.Eğer S = 99 ise 8.Adıma git6.S = S +27.Adıma git8.TTEK ve TCIFT değerlerini yaz9.Dur.

60 a.k.

Örnek 4: İki sayının ortalamasını bulan algoritmayı yazıp, akış diyagramınıçiziniz.

Başla

toplam=sayi1+sayi2

sayi1,sayi2 oku

ortalama=toplam/2

ortalama yaz

Dur