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.
25
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
26
a.k.
c) Çizgisel ifade (akış şeması) 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.
27
Klavye
a.k.
Başla
Dur
Kart
Kağıt
Ekran Fonksiyon çağırma
İşlem
Koşullu Dallanma
Veri tabanı
Döngü
Doğrudan
Sakla
Dış
İç 28
Akış şeması sembolleri
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ı: Akış Diyagramı Ortalama: Başla
Çözüm
Ad,soyad, not1,not2 oku
1. Başla 2. Ad, Soyad, not1,not2 oku 3. ort=(not1+not2)/2 4. “Adı:” ad yaz 5. “Soyadı:” soyad yaz 6. “Ortalama:” ort yaz 7. Dur
ort=(not1+not2)/2
Ad, soyad, ort yaz Dur 29
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
30
a.k.
Başla
sayi1,sayi2 oku
eğer sayi1>sayi2
evet
sayi1, sayi2 yaz
hayır
sayi2, sayi1 yaz Dur
31
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
32
a.k.
Başla toplam=0, s=0
sayi oku
toplam=toplam+s
eğer s<3
evet
hayır
toplam yaz Dur
33
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.
34
a.k.
Ardışık işlemler
a) Ardışık işlemler 1.Adım
– Bütün işlemlerin sırayla biribirini takip ettiği akış
2.Adım
– Daha önceki işlemlere geri dönülmez
3.Adım
– Karşılaştırma yapılmaz
35
a.k.
a) Ardışık işlemler akış şeması
Ö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
başla A oku
B oku
C=A*B C yazdır
dur 36
a.k.
Örnek:Yarıçapı verilen çemberin alanını ve çevresini hesaplayan program akışını çiziniz. başla Yarıçapı oku Alan=3.14*yarıçap*yarıçap
Çevre=2*3.14*yarıçap Alan ve çevre Değerlerini yazdır
dur
37
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. Karşılaştırma ifadesi DoğruÆBir koldan YanlışÆDiğer koldan Koşullu İşlem Yapısı
38
a.k.
b) Koşullu işlemler 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şla 2. S sayısını oku 3. 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
39
a.k.
b) Koşullu işlemler BAŞLA
S yi oku
S<0
S>0 S:0
YAZ “Pozitif”
S=0
YAZ “Negatif”
YAZ “Sıfıra eşit”
DUR
40
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,C’yi oku H
Eşkenar değildir yaz
A=B H
Eşkenar Değildir
E
A=C
E
eşkenardır
dur 41
a.k.
c) Döngülü işlemler 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.
42
a.k.
d) Döngülü işlemler while döngüsü Önceki işlemler
repeat-until veya do- while döngüsü Önceki işlemler
for döngüsü Önceki işlemler
işlemler N defa
karşılaştırma işlemler
Sonraki işlemler
karşılaştırma işlemler Sonraki işlemler
Sonraki işlemler
Aynı işlemleri birçok defa tekrar eden akış şemalarıdır. 43
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şkeni 1 : n değişkeninin başlangıç değerini 15: n değerinin bitiş değerini 1: n değeri 1 den 15 e kadar kaçar kaçar artması gerektiğini ifade eder.
44
a.k.
d) Döngülü işlemler BAŞLA
OKU Y
S = 0 , 5, 1
Sayısı bilinen döngülerde; başlangıç değeri, son değer, artış sayısı
YAZ Y
Döngünün çalıştığı bölüm DUR 45
a.k.
Örnek : 1’den 100’e kadar sayıları yazdıran program akış diyagramını çiziniz
Başla
Sayaç=1
Sayac <=100 Sayacı ekrana yazdır Sayac=sayac+1 Dur
46
a.k.
Örnek : 3 öğrencinin bir sınavdan aldıkları notların ortalamasının bulunması Değişkenler ONOT:Öğrencinin notu TNOT:Notların toplamı NORT:Notların ortalaması OSAYI:Öğrenci sayısı Algoritma 1. Başla 2. TNOT=0 3. OSAYI=0 4. ONOT oku 5. TNOT=TNOT+ONOT 6. OSAYI=OSAYI+1 7. OSAYI<3 ise Adım 4'e git 8. NORT=TNOT/3 9. NORT YAZ 10. Dur 47
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ştirilecek Göründüğü gibi aynı bir algoritmada farklı işlem türleri buluna biliyor 48
a.k.
Genel Uygulamalar 1:Ekrana beş tane sayı okunmaktadır. Okunan sayıların toplamını ve çarpımını bulan algoritmayı yazınız. 1. başla 2. i = 0 : top = 0 : çarp = 1 3. sayı oku 4. i = i + 1 5. top = top + sayı 6. carp = carp * sayı 7. if i < 5 ise git 3 8. “sayıların toplamı =”, top yaz 9. “sayıların çarpımı =”, carp yaz 10. dur
49
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ıran algoritmayı yazınız. 1. i=0 2. ad, soyad, dy oku 3. i=i+1 4. yas=by-dy 5. ad, soyad, yas yaz 6. if i<10 ise 2’ye git 7. 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şla 2. i=0 : ys=0 3. yas oku 4. i=i+1 5. if yas=20 ise ys=ys+1 6. if i<4 ise 2’ye git 7. “yaşı 20’ye eşit olanların sayısı=”,ys yaz 8. dur
50
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şla 2. i=0 : ys=0 3. yas oku 4. i=i+1 5. if yas >=15 ve yas<= 25 ise ys=ys+1 6. if i<3 ise 2’ye git 7. ys yaz 8. 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şla 2. i= 0 , ps=0 3. sayı oku 4. i=i+1 5. if sayı > 0 ise ps=ps+1 6. if i<4 ise 2’ye git 7. ‘’pozitiflerin sayısı=’’ , ps yaz 8. dur
51
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şla 2. i=0 , teks=0 , cifts=0 3. a oku 4. i=i+1 5. k=(-1)**a 6. if k=-1 ise teks=teks+1 7. if k=1 ise cifts=cifts+1 8. if i<4 ise 2’ye git 9. teks, cifts yaz 10. 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şla 2. carp=1 : i=1 3. capr=carp*i 4. i=i+2 5. if i<= 7 ise 3’ye git 6. “çarpım=”, carp yaz 7. dur
52
a.k.
8: 3’den 15’e kadar olan çift sayıların ortalamasını bulan algoritmayı yazınız. 1. başla 2. top=0 : cs=0 : i=4 3. top=top+i : cs=cs+1 4. i=i+2 5. if i<= 15 ise 3’ye git 6. orta=top/cs 7. orta yaz 8. 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şla 2. top=0 : i=3 3. top=top+i 4. i=i+2 5. if i<= 7 ise 3’ye git 6. “tek sayıların toplamı=”, top yaz 7. i=2 : ctop=0 8. ctop=ctop+i 9. i=i+2 10. if i<= 7 ise 8’ye git 11. “çift sayıların toplamı=”, ctop yaz 12. dur
53
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şla 2. t=0, i=0 3. n oku 4. i=i+1 5. t=t+i**2 6. eğer i<=n git 4 7. t yaz 8. 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şla 2. top=0 3. döngü i=1,17,2 4. top=top+i 5. döngü sonu i 6. top yaz 7. dur
54
a.k.
Akış Diyagramları Genel Uygulamalar Örnek1: 1’den 100’e kadar olan tam sayıların toplamını bulan algoritma ve akış şemasının oluşturulması Başla
Durum 1 (while döngüsü)
I=1 Toplam = 0
1.Başla 2.I = 1 , Toplam = 0 3.Eğer I = 100 ise 6.Adıma git 4.Toplam = Toplam + I 5.I = I +1 al ve 3.Adıma Dön 6.Toplam değerini yaz 7.Dur
E I=100
H Toplam = Toplam +1
I = I +1
Toplam yaz
DUR
55
a.k.
Akış Diyagramları Genel Uygulamalar Örnek1: 1’den 100’e kadar olan tam sayıların toplamını bulan algoritma ve akış şemasının oluşturulması Başla
Durum 2 (repeat-until döngüsü)
I=1 Toplam = 0
1.Başla 2.I = 1 , Toplam = 0 3.Toplam = Toplam + I 4.Eğer I = 100 ise 6.Adıma git 5.I = I +1 al ve 3.Adıma Dön 6.Toplam değerini yaz 7.Dur
Toplam = Toplam +1
E I=100
Toplam yaz
H I = I +1
DUR
56
a.k.
Akış Diyagramları Genel Uygulamalar Örnek1: 1’den 100’e kadar olan tam sayıların toplamını bulan algoritma ve akış şemasının oluşturulması Başla
Durum 3 (for döngüsü ile)
Toplam = 0
1. Başla 2. Toplam=0 3. döngü I=1,100,1 4. Toplam=Toplam + I 5. döngü sonu I 6. Toplam yaz 7. Dur
i=1,100,1
Toplam = Toplam +i
Toplam yaz
DUR
57
a.k.
Örnek2: Girilen 3 tam sayıdan en büyüğünü bulan algoritma ve akış şemasının oluşturulması 1.Başla 2.A,B,C sayılarını oku 3.Buyuk = A 4.Eğer Buyuk < B ise Buyuk = B 5.Eğer Buyuk < C ise Buyuk = C 6.Buyuk değerini yaz 7.Dur.
Başla A,B,C oku
Buyuk = A
Buyuk
E Buyuk = B
58
H
Buyuk
H
Toplam yaz
E Buyuk = C
DUR
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 1.Başla 2.S = 1 , TTEK = 0 , TCIFT = 0 3.TTEK = TTEK + S 4.TCIFT = TCIFT + S + 1 5.Eğer S = 99 ise 8.Adıma git 6.S = S +2 7.Adıma git 8.TTEK ve TCIFT değerlerini yaz 9.Dur.
s=1, ttek=0, tcift=0 ttek=ttek+s tcift=tcift+s
s = 99
evet
ttetk, tcift yaz
hayır
s=s+1
Dur
59
a.k.
Örnek 4: İki sayının ortalamasını bulan algoritmayı yazıp, akış diyagramını çiziniz.
Başla
sayi1,sayi2 oku
toplam=sayi1+sayi2
ortalama=toplam/2
ortalama yaz
Dur
60
a.k.