algoritma-dersi
Transcript of 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
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
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
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
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.
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
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
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”
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
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.
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
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
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
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
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
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
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.
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