SlideShare a Scribd company logo
1 of 71
Algoritma
ELANUR GÜLER
10 B - 40
ProgramlamaTemelleri
Algoritma sözcüğü nereden gelmiştir?
Ebu Cafer Muhammed
İbni Musa El Harizmi
Algoritma sözcüğü batı dillerine, ünlü
Arap matematikçisi(Bazı kaynaklara göre
İranlı) El-Harezmi sayesinde geçmiştir.
Bu ünlü matematikçinin doğum tarihi 800
yılından önce olduğu tahmin
edilmektedir; ölüm yılı ise 847’dir.
Algoritma El-Harezmi’nin
değişik telâffuzlarının bir
neticesi sonucu oluşmuştur.
2
Algoritma Nedir ?
• Algoritma, belirli bir problemi çözmek için gerekli adımlar
kümesi ya da formül demektir. Bir algoritmanın varlığından
bahsedilebilmesi için , algoritmanın sunduğu kurallar
kümesinin, hiçbir şüpheye yer vermeyecek kadar kesin olması
gerekir ve algoritmanın duracağı , açık olarak ifade edilmiş
bir nokta mevcut olmalıdır.
Algoritma terimi hesaplama teorisinde ve bilgisayar
biliminde son derece önemli bir kavramdır. Algoritma ile ilgili
bazı tanımlar aşağıdaki gibidir;
3
• Algoritma, bir problemi sistematik olarak adım adım çözmek için
kullanılan bir yöntemdir.(T.Ottmann / P.Widmayer)
• Algoritma, belirli bir problemi çözmek için gerekli özgün adımlar
serisidir. (Dr.James F.Wirth)
• Algoritma, bir işi çözmek için gerekli yöntemi tanımlar. Algoritma,
doğru olarak icra edildikleri zaman verilen işi çözecek adımlar
dizisinden oluşur. (Goldschlager / Lister)
4
Algoritma, gerçekte bizim günlük yaşamamızda da
hiç yabancı olmadığımız bir şeydir. Bir noktadan
başka bir noktaya nasıl gidileceğini anlatan bir yol
tarifi bir algoritmadır ya da bir yemek ya da pastanın
nasıl pişirileceğini adım adım anlatan bir reçete de bir
algoritma oluşturur. Bilgisayar programları hep
algoritmalar üzerine kurulmuştur.
5
GünlükYaşamdan Algoritma Örnekleri
6
Bir çay demleme algoritması:
Mutfakta değilsen mutfağa git.
Çayı kontrol et, çay yoksa
Markete git çay al
Çaydanlığa bak dolu değilse su doldur
Ocağı yak.!
Ve çaydanlığı ateşin üstüne koy,
Suyun kaynamasını bekle.
Su kaynadıktan sonra , çayı bırak ve üstüne suyu dök…
Yine demliğe biraz daha su ilave ederek bekle.
Su kaynadığında biraz dinlendirerek ateşi kapat.
Çay bardağını al çayını doldur.
Çayına istediğin kadar şeker at ve karıştır.
Geldiğin odaya geri dön
Ve çayı yudumla…
7
Yataktan kalkıp , işe gidene kadar yapılacak
işlemleri anlatacak bir algoritmayı inceleyelim:
Yataktan kalk
Pijamalarını çıkar
Banyoya git
Duş al
Kurulan
Giyin
Mutfağa git
Kahvaltı yap
Lavaboya git
Dişlerini fırçala
İşe doğru yola çık
8
Şimdi de aynı işlemlerin farklı bir
sırada uygulanacağını düşünelim
Yataktan kalk
Pijamalarını çıkar
Giyin
Duş al
Kahvaltı yap
İşe doğru yola çık
Bu algoritma uygulanırsa işe ıslak
elbiselerle gidilir. Bir programda ,
yapılacak işlemlerin sırasını
belirlemeye program kontrolü denir.
9
BİR ALGORİTMADA EN ÖNEMLİ ÖZELLİKLER
1) Basit olması
2) Problemin çözümünü mümkün olan en az adım ile
(en kısa sürede) gerçekleştirmesidir. Bu
özelliklere sahip olan algoritmalara şık
algoritma (elegant algorithm) ya da etkin
algoritma (efficient algorithm) denir.
10
SAYISAL ALGORİTMA Bir sayısal algoritma ,
adımlarının pek çoğu ayrı ayrı
bellek elemanlarına
kaydedilen hesaplamalardan
oluşan bir algoritmadır.
11
BELLEK ELEMANI
Burada , bellek elemanı ile kastedilen şey, algoritmanın
adımlarının sonuçlarını kaydetmek için kullanılabilecek
bir kayıt birimidir ; bu birim kağıt üzerindeki bir
dikdörtgen bölge olabileceği gibi, bilgisayar belleğinde
bir değişken ya da dizi elemanı da olabilir.
Belli bir anda, bir bellek elemanına sadece bir
sonuç kaydedilebilir.
12
ALGORİTMANIN BİLEŞENLERİ
• Problemin tanımı
• Başlangıç durumu ya da koşullarının belirtilmesi
• Parametrelerin belirlenmesi
• İcra
• Sonuç
Algoritmaların pek çoğu, aşağıdaki temel parçalardan
oluşur:
13
Bir sayı listesi verilmiştir. Bu verilen
sayıların toplamını bulunuz.
Verilen sayıların toplamını hesaplayan bir algoritma
tasarlayalım. Kullanacağımız sayılar,10,5,20 olsun. Şimdi
bu problemi kağıt üzerinde nasıl bir algoritma ile ifade
edebiliriz, onun yollarını araştıralım.
PROBLEMİNTANIMI
14
ÖRNEK
BAŞLANGIÇ DURUMUYA DA KOŞULLARININ
BELİRLENMESİ
Kağıt üzerine , sayı ve toplam adlı iki kutu çizelim ve
toplam kutusunun içine 0 (sıfır) yazalım. Çünkü, henüz
hiçbir sayı toplanmadığı için toplam değeri başlangıçta
sıfır olmalıdır:
0
Sayı Toplam
15
PARAMETRELER
Algoritmanın icrası esnasında , her adımda bir sayı istenecektir.
Aşağıda 3 adımı, hiçbir sayı kalmayıncaya kadar tekrarla:
1.Verilen yeni sayıyı , sayı adlı kutuya kaydet; yeni
bir sayı gelince , sayı adlı kutuda önceki sayının
silineceğini unutma!
2.Toplam ve sayı adlı kutulardaki sayıların toplamını
hesapla!
İCRA
16
3. Bulunan değeri, toplam adlı kutuya kaydet! Bu kayıt
işlemi, toplam adlı kutuda bir önceki adım sonucunda
saklanan sayıyı silecektir.
Aşağıda, yukarıda belirtilen,10,5,20 verileri için
algoritmanın nasıl ilerlediğini şekilsel olarak verilmiştir:
10 0
Sayı Toplam
10 10
Sayı Toplam
I. 1)
2) 10+0=10
3)
17
5 10
Sayı Toplam
5 15
Sayı Toplam
II. 1)
2) 5+10=15
3)
18
20 15
Sayı Toplam
20 35
Sayı Toplam
III. 1)
2) 20+15=35
3)
SONUÇ Toplam adlı kutuda elde edilen
sayı(35), arzu edilen sonuçtur; yani
verilen sayıların toplamıdır.
19
Algoritmalarda Kullanılan Operatörler
İşlemleri belirten simgelere/sembollere,
bilgisayar terminolojisinde “operatör”
denir.
20
Matematiksel işlem operatörleri
^ Üs alma
* Çarpma
/ Bölme
+ Toplama
- Çıkarma
. Tam ve Ondalıklı
kısımları ayırma
21
Karşılaştırma Operatörleri
= Eşittir
<> Eşit değildir
< Küçüktür
> Büyüktür
>= veya => Büyük eşittir
<= veya =< Küçük eşittir
22
Mantıksal işlem operatörleri
’ DEĞİL
. VE
+ VEYA
23
Küme işlem operatörleri
+ Birleşim
- Fark
* Kesişim
= Eşit
<> Eşit değil
=< veya <= Soldaki küme, sağdakinin
alt kümesi
>= veya => Sağdaki küme, soldakinin
alt kümesi
24
Alfasayısal operatörler
+ Birleştirme
Genel işlem operatörleri
= Aktarma
() Parantez
25
ALGORİTMALARIN İFADE EDİLMESİ
• Konuşma Dili
• Sahte Kod (Pseudo Code)
• Akış Diyagramı(flow-chart)
26
•Konuşma Dili
Bir algoritmanın, doğal dil kullanılarak ifade edilmesi.
Kullanımında bazı sakıncalar vardır.
Bu sakıncalar şunlardır:
1) Doğal dil ile ifade biçimlerinde belirsizlik ya da çok
anlamlılık olabilir. Bazı ifadeler yanlış anlaşılabilir.
2) Doğal dil ile ifade edilmiş bir algoritmanın başka biçimlere
mesela bilgisayar kodu haline dönüştürülmesinde güçlükler
ve belirsizlikler olabilir.
27
•Sahte Kod (Pseudo Code)
Kaba Kod veyaYalancı Kod veya Sözde
Kod, bir algoritmanın yarı programlama
dili kuralı, yarı konuşma diline dönük
olarak ortaya koyulması/ tanımlanmasıdır.
Bu şekilde gösterim algoritmayı genel
hatlarıyla yansıtır.
28
•Akış Diyagramı(flow-chart)
Akış diyagramı, algoritmanın görsel/şekilsel
olarak ortaya koyulmasıdır. Problemin
çözümü için yapılması gerekenleri, başından
sonuna kadar, geometrik şekillerden oluşan
simgelerle gösterir.
29
ALGORİTMA YAZIMI
• Sözde kod yada diğer deyimle algoritma hazırlanırken
bazı kullanımlar vardır. Bunlar şunlardır:
• OKU:Veri girişinin yapılacağını belirler.
• EĞER…İSE…DEĞİLSE….: Şart belirtmek için kullanılır.
• GİT… : Belirli bir adıma yönlendirmek için kullanılır.
• DÖN ..DEN..
• DÖNGÜ SONU :Döngüleri belirtmek için kullanılır.
30
ALGORİTMADA KULLANILAN TERİMLER
• Tanımlayıcı(Değişken)
• Sabit
• Aktarma
• Sayaç
• Döngü
• ArdışıkToplama
• Ardışık Çarpma
31
Tanımlayıcı(değişken)
• Program yazan kişi tarafından düşünülüp oluşturulan ve
programdaki değişkenleri, sabitleri, kayıt alanlarını, alt
programları, vs.. adlandırmak için kullanılan kelimelere
tanımlayıcı denir.
• Bu kelimeler isimlendirilirken bu kurallara dikkat edilmelidir:
• İngiliz alfabesindeki A-Z veya a-z arası 26 harf kullanılabilir.
• 0-9 rakamları kullanılabilir.
• Sembollerden alt çizgi kullanılabilir. ( _ )
• Tanımlayıcı ifadeleri harf veya altçizgi ile başlayabilir ama
rakamla başlamaz.
• İsimler oluşturulurken boşluk kullanılmamalıdır.
maaş katsayısı değil maas_katsayisi
32
Sabit
•Programdaki değeri değişmeyen ifadelere “sabit” denir.
“İsimlendirme kuralları”na uygun olarak oluşturulan
sabitlere, sayısal veriler doğrudan; alfa sayısal veriler ise
tek/çift tırnak içinde aktarılır.
33
Aktarma
Herhangi bir ifadenin sonucunu başka bir
değişkende göstermedir.
degisken = ifade
ifade kısmında matematiksel, mantıksal veya harfsel
(alfasayısal) ifade olabilir.
= sembolü atama operatörüdür. Bu operatör,
sağda hesaplanan ifadenin değerini degisken içine (sola)
iletir.
34
ÖRNEK
Klavyeden girilen üç sayının
toplamını bulan algoritma.
1. Başla
2. t=0
3. OKU a
4. t=t+a
5. OKU b
6. t=t+b
7. OKU c
8. t=t+c
9. Yaz t
10.Dur 35
Sayaç
Programlarda bazı işlemlerin belirli sayıda yaptırılması veya
işlenen/üretilen değerlerin sayılması gerekebilir.
say=say+1
Bu işlemde sağdaki ifadede değişkenin eski değerine 1
eklenmekte; bulunan sonuç yine kendisine yeni değer olarak
aktarılmaktadır. Bu tür sayma işlemlerine algoritmada sayaç
adı verilir.
Sayacın genel formülü;
Sayaç değişkeni=sayaç değişkeni+adım
Örnek; X=X+3 36
ÖRNEK Aşağıdaki algoritmada 1-5 arası sayılar, ekrana
yazdırılmaktadır. 1-5 arası sayıları oluşturmak
için sayaç(s=s+1) kullanılmıştır.
1) Başla
2) S=0
3) Eğer s>4 ise
git 7
4) S=S+1
5) Yaz S
6) Git 3
7) Dur
Eski S Yeni S
Ekrana
Yazılan
0 0+1=1 1
1 1+1=2 2
2 2+1=3 3
3 3+1=4 4
4 4+1=5 5
37
Döngü
• Bazı işlemler belli ardışık değerlerle veya belli sayıda
gerçekleştirilmektedir.
• Programda belirli komut bütünlerini belirli sayıda
yaptırabilmek için döngüler kullanılır.
• Algoritma yazarken döngü akış işlemlerinde genellikle
sayaç kullanılır.
38
Döngü oluşturma kuralları
• Döngü değişkenine başlangıç değeri verilir.
• Döngünün artma veya azalma miktarı belirlenir.
• Döngünün bitiş değeri belirlenir.
• Eğer döngü, karar / karşılaştırma ifadeleriyle
oluşturuluyorsa; döngü değişkeni, döngü içinde
adım miktarı kadar arttırılmalı / azaltılmalıdır.
39
ÖRNEK Aşağıdaki algoritmada, 1 ile 10 arası tek
sayıların toplamı hesaplanmaktadır.
1) Başla
2) T=0
3) J=1
4) Eğer j>10
ise git 8
5) T=T+J
6) J=J+2
7) Git4
8) Dur
Eski J EskiT Yeni T Yeni J
1 0 0+1=1 3
3 1 1+3=4 5
5 4 4+5=9 7
7 9 9+7=16 9
9 16 16+9=25 11
11 - - -
DÖNGÜ
40
Ardışık Toplama
Programlarda, aynı değerin üzerine yeni değerler eklemek
için kullanılır.
Toplam değişkeni=Toplam değişkeni + Sayı
41
ÖRNEK
Klavyeden girilen 5
sayısının ortalamasını
bulan programın
algoritması.
1) Başla
2) T=0
3) S=0
4) Eğer S>4 ise git 9
5) S=S+1
6) Sayıyı (A) gir
7) T=T+A
8) Git 4
9) Ortalama=T/5
10)Yaz Ortalama
11)Dur 42
Ardışık Çarpma
Ardışık veya ardışıl çarpma işleminde; aynı değer, yeni
değerlerle çarpılarak eskisinin üzerine aktarılmaktadır.
Çarpım değişkeni=Çarpım değişkeni * Sayı
43
ÖRNEK
Klavyeden girilen N
sayısının faktöriyelini
hesaplayan
programın
algoritmasını yazınız.
1) Başla
2) N sayısını gir
3) Fak=1
4) S=0
5) Eğer S>N-1 ise git 9
6) S=S+1
7) Fak=Fak*S
8) Git 5
9) Yaz Fak
10)Dur
44
Algoritmada Yapılan İşlemler
• Aritmetiksel işlemler
toplama, çıkarma, ..
• Mantıksal işlemler (LOGİC)
ve, veya , değil
45
Aritmetiksel işlemler
• Toplama a+b
• Çıkarma a-b
• Çarpma a*b
• Bölme a/b
• Üs alma a^b
46
Matematiksel işlemler içeren kümenizin içindeki matematiksel
işaretlerin bir işlem önceliği vardır.
• İşlem Önceliği Sırası
1. Parantezler ( )
2. Üs alma a^b
3. Çarpma ve bölme a*b veya a/b
4.Toplama ve çıkarma a+b veya a-b
• Aynı önceliğe sahip işlemler yan yana bulunuyorsa işlem önceliği
genelde soldan sağa doğrudur. X=2*3/6+2
İşlem önceliği
47
Mantıksal İşlemler
• Programlarda, birden fazla karşılaştırma ifadesi bir
anda kullanılmak istenebilir. Bu gibi durumlarda
mantıksal ifadeler kullanılması zorunludur.
MANTIKSAL KOMUTLAR
İŞLEMLER
• VE AND
• VEYA OR
• DEĞİL NOT
48
Mantıksal İşlem Sonuçları
Sonuç Rakam olarak Bilgisayar Dilinde
Doğru 1 True (1)
Yanlış 0 False(0)
49
Mantıksal İşlemler
VE
(AND)
VEYA
(OR)
DEĞiL
(NOT)
A B A VE B
0 0 0
0 1 0
1 0 0
1 1 1
A B A VEYA B
0 0 0
0 1 1
1 0 1
1 1 1
A DEGiL A
0 1
1 0
50
ÖRNEK
Bir işyerinde çalışan işçiler arasından yalnızca yaşı 23’ün
üzerinde olup maaş olarak asgari ücret alanların isimleri
istenebilir. Burada iki koşulun da doğru olması gerekmektedir.
(Asgari ücret >=500)
1nci koşul 2nci koşul
Eğer Yaş>23 ve Maaş>=Asgari ücret ise Yaz İsim
51
Algoritma, programın temelidir.
• Yapılacak iş/çözülecek problem iyice irdelenir.Tüm olasılıklar
gözden geçirilir
• En az komutla, en kısa sürede, en doğru-hassas sonuca ulaştıracak
çözüm yolu /yöntem belirlenir
• Tanımlayıcı isimleri belirlenir.
• Algoritmada her işlem adımına bir numara verilir.
• Problemin çözümü için gerekli olan veriler/işlenecek veriler girilir
veya başka ortamlardan alınır.
• Yapılacak işlemler/kullanılacak yöntemler açık şekilde verilir.
• Bulunan sonuçlar görüntülenir veya belirli ortamlarda saklanır
Algoritma hazırlama kuralları
52
AKIŞ DİYAGRAMI
•Akış şemalarında algoritmanın
adımları simgeler şeklinde
kutular içine yazılmaktadır ve
adımlar arasındaki ilişkiler ve akış
yönü oklar ile gösterilmektedir.
53
Akış Şemasının Avantajları
1) Birbiri ile ilgili adımlar arasındaki mantıksal ilişkiyi
gösterirler.
2) İzlenmesi ve anlaşılması kolaydır.
3) Şartlara bağlı olarak ortaya çıkan olayların takip edilmesi
mümkündür.
4) Belli bir standarda göre hazırlandıklarından herkesçe
anlaşılabilir ve birden fazla kişi aynı şema üzerinde
çalışabilir.
54
Akış Şeması Hazırlama Kuralları
1) Başlangıç ve bitiş uçları tanımlanmalıdır.
2) Standart semboller kullanılmalıdır.
3) Birbirini kesen akış hatları
kullanılmamalıdır.
4) Basit kararlar alınmalıdır.
5) Şema belli bir yönde hazırlanmalıdır.
55
Akış Şeması Elemanları
Akış şemasının başlangıcını
yada bitişini belirtir.
Veri girişi ya da çıkışı
yapılacağını belirtir.
Ekranda görüntüleme
yapılacağını belirtir.
56
Akış Şeması Elemanları
Yazıcıya çıktı olacağını belirtir.
Hesaplama ya da değerlerin
değişkenlere aktarımını gösterir.
Aritmetik ve mantıksal ifadeler için
karar verme ya da karşılaştırma
durumunu gösterir.
57
Akış Şeması Elemanları
AkışYönü
Yapılacak işler birden fazla sayıda yinelenecek
ise yani iş akışında döngü var ise bu sembol
kullanılır.
İki nokta arası ilişkiyi gösterir. Döngü sonunu
göstermek için ya da akış şemasının başka bir
yere bağlantısını göstermek amacıyla kullanılır.
Fonksiyon çağırılacağını belirtir.
İş akışının yönünü belirtir.
58
Akış Şemaları
• Akış şemaları içerik ve biçimlerine göre
genel olarak üç grupta sınıflandırılabilirler.
1. Doğrusal akış şemaları
2. Mantıksal akış şemaları
3. Döngü içeren akış şemaları
59
1) Doğrusal akış şemaları
• İş akışları, giriş, hesaplama, çıkış biçiminde olan akış
şemaları bu grup kapsamına girer.
• Yapısında karar alma ya da döngü ifadeleri içermeyen akış
şemalarıdır.
60
• Algoritması
Adım 1: Başla
Adım 2: Birinci sayıyı gir
Adım 3: İkinci sayıyı gir
Adım 4: İki sayıyı topla
Adım 5:Toplam
sonucunu ekranda
görüntüle
Adım 6: Dur
Adım 1: Başla
Adım 2: A’yı gir
Adım 3: B’yi gir
Adım 4: C=A+B
Adım 5: C’yi ekranda
görüntüle
Adım 6: Dur
Değişkenler:
A: Birinci sayı
B: İkinci sayı
C:Toplam sonucu
ÖRNEK İki Sayıyı Toplama ve Görüntüleme.
Başla
C
Dur
A
B
C=A+B
• Akış Şeması (doğrusal)
61
2)Mantıksal akış şemaları
• Geniş ölçüde mantıksal kararları içeren akış şemalarıdır.
• Hesap düzenleri genellikle basittir.
• Verilen koşulun doğru yada yanlış olmasına göre iş akışı
yönlendirilir.
Koşul
Evet (Doğru)
Hayır
(Yanlış)
62
ÖRNEK
Klavyeden Girilen 2 sayıdan birincisi büyük ise
çarpma, aksi durumda toplama yapan algoritma ve
akış şeması.
• Algoritması
Adım 1: Başla
Adım 2: X’i gir
Adım 3:Y’yi gir
Adım 4: X>Y ise S=X*Y
hesapla adım 6’ya git
Adım 5: X<=Y ise S=X+Y
hesapla
Adım 6: S’i görüntüle
Adım 7: Dur
Değişkenler:
X: Birinci sayı
Y: İkinci sayı
S:Toplam sonucu
• Akış Şeması (mantıksal)
Başla
S
Dur
X
Y
S=X+Y
X>Y
Hayır
Evet
S=X*Y
63
3)Döngüsel Akış Şemaları
• Sorunun çözümü için, çözümde yer alan herhangi bir adım
ya da aşamanın birden fazla kullanıldığı akış şemalarına
denir.
• İş akışları genel olarak giriş ya da başlangıç değeri verme,
hesaplama, kontrol biçiminde olmaktadır.
64
ÖRNEK Klavyeden 5 kişinin doğum yılını girip 2013
yılındaki yaşını hesaplayan algoritma ve
akış şeması.
• Algoritması
Adım 1: Başla
Adım 2: i=1;
Adım 3: dy’yi gir
Adım 4: yas=2013-dy
Adım 5: yas’ı ekrana yazdır
Adım 6: i<5 ise i’yi 1 arttır, adım 3’e git
Adım 7: Dur
Değişkenler:
dy : kişinin doğum yılı
yas: kisinin yaşı
i : sayaç (5 kişi olup olmadığını
kontrol eder)
65
• Akış şeması I
(Döngü ifadesi içermeyen)
• Akış şeması II
(Döngü şekli içeren)
i<5
Hayır
Evet
Başla
yas
Dur
dy
yas=2013-dy
i=1
Başla
yas
Dur
dy
i,1,5,1
yas=2013-dy
i
i, 1, 5, 1
Döngü
Değişkeni
i=i+1
Bitiş
değeri
Başlangıç
değeri
Artım
değeri
66
ÖRNEK 1’den 10’a kadar sayıları ekranda
görüntüleyen akış şeması.
• Kontrol İfadesiyle
i<10
Hayır
Evet
Başla
i
Dur
i=1
i=i+1
Başla
i
Dur
i,1,10,1
i
• Döngü İfadesiyle
67
ÖRNEK Girilen 15 sayıdan pozitif olanların adedini bulup
görüntüleyen akış şeması.
• Kontrol İfadesiyle • Döngü İfadesiyle
i<15
Evet
Başla
adet
Dur
sayı
adet=adet+1
i=1, adet = 0
i=i+1
sayı>=0
Hayır
Evet
Başla
sayı
i,1,15,1
i
adet=adet+1
sayı
>=0
Hayır
Evet
adet Dur
adet = 0
68
Hayır
ÖRNEK Klavyeden girilen 2 sayıyı karşılaştırıp sonucu
ekrana yazdıran algoritma ve akış şemasını yazın?
• Algoritması 1) Başla
2) OKU sayi1,sayi2
3) EĞER sayi1>sayi2 İSEYAZ
“Sayi1 sayi2’den büyüktür”
4) Değilse EĞER sayi2>sayi1
İSEYAZ “Sayi2 sayi1’den
büyüktür”
5) DEĞİL İSEYAZ “Sayi1
sayi2’ye eşittir”
6) BİTİR
69
Başla
sayi1
sayi2
sayı1>
sayi2
sayı1<
sayi2
Sayi1=sayi2
Hayır
Sayi1>sayi2
Sayi1<sayi2
Evet
Evet
Hayır
Dur
• Akış Şeması
70
KAYNAKLAR
• Prof.Dr. Mithat UYSAL ,’’Bilgisayar Bilimi Ve
Mühendisliğine Giriş’’ BetaYay.,İstanbul, 1999.
• Dr. FahriVATANSEVER ,’’Algoritma Geliştirme ve
Programlamaya Giriş’’,SeçkinYay.,Ankara, 2007.
• Yrd.Doç.Dr. Andaç MESUT,’’Bilgisayar Programlama’’,
Algoritma ve Akış Şemaları Ders Notları,Trakya
Üniversitesi.
71

More Related Content

What's hot

öğRenme kuramlari
öğRenme kuramlariöğRenme kuramlari
öğRenme kuramlariankamasya
 
Benzetim modelleme örnekleri - Arena - Examples arena simulation program
Benzetim modelleme örnekleri - Arena - Examples arena simulation programBenzetim modelleme örnekleri - Arena - Examples arena simulation program
Benzetim modelleme örnekleri - Arena - Examples arena simulation programKazım Anıl AYDIN
 
Yzm 2116 Bölüm 7 - Tree ve Binary tree - İkili Ağaç
Yzm 2116  Bölüm 7 - Tree  ve Binary tree - İkili AğaçYzm 2116  Bölüm 7 - Tree  ve Binary tree - İkili Ağaç
Yzm 2116 Bölüm 7 - Tree ve Binary tree - İkili AğaçDeniz KILINÇ
 
Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)
Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)
Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)Tugba Ozen
 
kariyer planlama --> rıdvan-emre-fatih
kariyer planlama --> rıdvan-emre-fatihkariyer planlama --> rıdvan-emre-fatih
kariyer planlama --> rıdvan-emre-fatihridone26
 
Saglık Calısanlarına Yonelik Mobbing
Saglık Calısanlarına Yonelik MobbingSaglık Calısanlarına Yonelik Mobbing
Saglık Calısanlarına Yonelik MobbingNagehan ÖZTEMEL
 
End302 05 tesis_tasarimi
End302 05 tesis_tasarimiEnd302 05 tesis_tasarimi
End302 05 tesis_tasarimiHabip TAYLAN
 
Dengeli Performans Karnesi ve Bireysel Hedeflerle İlişkilendirilmesi
Dengeli Performans Karnesi ve Bireysel Hedeflerle İlişkilendirilmesi Dengeli Performans Karnesi ve Bireysel Hedeflerle İlişkilendirilmesi
Dengeli Performans Karnesi ve Bireysel Hedeflerle İlişkilendirilmesi Ipek Aral
 
Balanced Scorecard ( Dengeli Kurum Karnesi )
Balanced Scorecard ( Dengeli Kurum Karnesi ) Balanced Scorecard ( Dengeli Kurum Karnesi )
Balanced Scorecard ( Dengeli Kurum Karnesi ) Mehmet Onur Beşer
 
İnsan Kaynakları Yönetimi-İş Değerleme
İnsan Kaynakları Yönetimi-İş Değerlemeİnsan Kaynakları Yönetimi-İş Değerleme
İnsan Kaynakları Yönetimi-İş DeğerlemeÖmer Yavuz
 
ÜRETİM PLANLAMA NEDİR..?
ÜRETİM PLANLAMA NEDİR..?ÜRETİM PLANLAMA NEDİR..?
ÜRETİM PLANLAMA NEDİR..?gesiad
 
Iş tasarımı ve ergonomi
Iş tasarımı ve ergonomiIş tasarımı ve ergonomi
Iş tasarımı ve ergonomitulayilmaz
 
Basinç sunu
Basinç sunuBasinç sunu
Basinç sunuaytuloge
 
İş Gören Tedariki ve Seçimi - İnsan Kaynakları Yönetimi Sunum e-Micro MBA /Un...
İş Gören Tedariki ve Seçimi - İnsan Kaynakları Yönetimi Sunum e-Micro MBA /Un...İş Gören Tedariki ve Seçimi - İnsan Kaynakları Yönetimi Sunum e-Micro MBA /Un...
İş Gören Tedariki ve Seçimi - İnsan Kaynakları Yönetimi Sunum e-Micro MBA /Un...Univerist
 
データ解析2 線形代数の復習
データ解析2 線形代数の復習データ解析2 線形代数の復習
データ解析2 線形代数の復習Hirotaka Hachiya
 
Delphi̇ tekni̇ği̇ i̇ş sağliği ve güvenli̇ği̇ - risk değerlendirmesi - risk ...
Delphi̇ tekni̇ği̇   i̇ş sağliği ve güvenli̇ği̇ - risk değerlendirmesi - risk ...Delphi̇ tekni̇ği̇   i̇ş sağliği ve güvenli̇ği̇ - risk değerlendirmesi - risk ...
Delphi̇ tekni̇ği̇ i̇ş sağliği ve güvenli̇ği̇ - risk değerlendirmesi - risk ...Mustafa ERYÜKSEL
 

What's hot (20)

öğRenme kuramlari
öğRenme kuramlariöğRenme kuramlari
öğRenme kuramlari
 
Benzetim modelleme örnekleri - Arena - Examples arena simulation program
Benzetim modelleme örnekleri - Arena - Examples arena simulation programBenzetim modelleme örnekleri - Arena - Examples arena simulation program
Benzetim modelleme örnekleri - Arena - Examples arena simulation program
 
Yzm 2116 Bölüm 7 - Tree ve Binary tree - İkili Ağaç
Yzm 2116  Bölüm 7 - Tree  ve Binary tree - İkili AğaçYzm 2116  Bölüm 7 - Tree  ve Binary tree - İkili Ağaç
Yzm 2116 Bölüm 7 - Tree ve Binary tree - İkili Ağaç
 
Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)
Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)
Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)
 
kariyer planlama --> rıdvan-emre-fatih
kariyer planlama --> rıdvan-emre-fatihkariyer planlama --> rıdvan-emre-fatih
kariyer planlama --> rıdvan-emre-fatih
 
Saglık Calısanlarına Yonelik Mobbing
Saglık Calısanlarına Yonelik MobbingSaglık Calısanlarına Yonelik Mobbing
Saglık Calısanlarına Yonelik Mobbing
 
End302 05 tesis_tasarimi
End302 05 tesis_tasarimiEnd302 05 tesis_tasarimi
End302 05 tesis_tasarimi
 
Dengeli Performans Karnesi ve Bireysel Hedeflerle İlişkilendirilmesi
Dengeli Performans Karnesi ve Bireysel Hedeflerle İlişkilendirilmesi Dengeli Performans Karnesi ve Bireysel Hedeflerle İlişkilendirilmesi
Dengeli Performans Karnesi ve Bireysel Hedeflerle İlişkilendirilmesi
 
Balanced Scorecard ( Dengeli Kurum Karnesi )
Balanced Scorecard ( Dengeli Kurum Karnesi ) Balanced Scorecard ( Dengeli Kurum Karnesi )
Balanced Scorecard ( Dengeli Kurum Karnesi )
 
Olasılık
OlasılıkOlasılık
Olasılık
 
Veri̇anali̇zi̇
Veri̇anali̇zi̇Veri̇anali̇zi̇
Veri̇anali̇zi̇
 
İnsan Kaynakları Yönetimi-İş Değerleme
İnsan Kaynakları Yönetimi-İş Değerlemeİnsan Kaynakları Yönetimi-İş Değerleme
İnsan Kaynakları Yönetimi-İş Değerleme
 
ÜRETİM PLANLAMA NEDİR..?
ÜRETİM PLANLAMA NEDİR..?ÜRETİM PLANLAMA NEDİR..?
ÜRETİM PLANLAMA NEDİR..?
 
Iş tasarımı ve ergonomi
Iş tasarımı ve ergonomiIş tasarımı ve ergonomi
Iş tasarımı ve ergonomi
 
Basinç sunu
Basinç sunuBasinç sunu
Basinç sunu
 
İşletmelerde Mobbing
İşletmelerde Mobbingİşletmelerde Mobbing
İşletmelerde Mobbing
 
İş Gören Tedariki ve Seçimi - İnsan Kaynakları Yönetimi Sunum e-Micro MBA /Un...
İş Gören Tedariki ve Seçimi - İnsan Kaynakları Yönetimi Sunum e-Micro MBA /Un...İş Gören Tedariki ve Seçimi - İnsan Kaynakları Yönetimi Sunum e-Micro MBA /Un...
İş Gören Tedariki ve Seçimi - İnsan Kaynakları Yönetimi Sunum e-Micro MBA /Un...
 
データ解析2 線形代数の復習
データ解析2 線形代数の復習データ解析2 線形代数の復習
データ解析2 線形代数の復習
 
İŞ ANALİZİ VE TASARIMI
İŞ ANALİZİ VE TASARIMIİŞ ANALİZİ VE TASARIMI
İŞ ANALİZİ VE TASARIMI
 
Delphi̇ tekni̇ği̇ i̇ş sağliği ve güvenli̇ği̇ - risk değerlendirmesi - risk ...
Delphi̇ tekni̇ği̇   i̇ş sağliği ve güvenli̇ği̇ - risk değerlendirmesi - risk ...Delphi̇ tekni̇ği̇   i̇ş sağliği ve güvenli̇ği̇ - risk değerlendirmesi - risk ...
Delphi̇ tekni̇ği̇ i̇ş sağliği ve güvenli̇ği̇ - risk değerlendirmesi - risk ...
 

Similar to Algoritma

Programlamaya Giriş, Algoritma ve Akış Şeması Diyagramı
Programlamaya Giriş, Algoritma ve Akış Şeması DiyagramıProgramlamaya Giriş, Algoritma ve Akış Şeması Diyagramı
Programlamaya Giriş, Algoritma ve Akış Şeması DiyagramıAhmet POLAT
 
Programlama Temelleri Akış Diyagramı
Programlama Temelleri Akış DiyagramıProgramlama Temelleri Akış Diyagramı
Programlama Temelleri Akış Diyagramıkadirolmez
 
matlab basic introduction with plot commands
matlab basic introduction with plot commandsmatlab basic introduction with plot commands
matlab basic introduction with plot commandslkeE2
 
Algoritmalarve programlamai ders_1
Algoritmalarve programlamai ders_1Algoritmalarve programlamai ders_1
Algoritmalarve programlamai ders_1atasss
 

Similar to Algoritma (13)

Kadir proje
Kadir projeKadir proje
Kadir proje
 
Programlamaya Giriş, Algoritma ve Akış Şeması Diyagramı
Programlamaya Giriş, Algoritma ve Akış Şeması DiyagramıProgramlamaya Giriş, Algoritma ve Akış Şeması Diyagramı
Programlamaya Giriş, Algoritma ve Akış Şeması Diyagramı
 
C-Sharp.pdf
C-Sharp.pdfC-Sharp.pdf
C-Sharp.pdf
 
Algoritma
AlgoritmaAlgoritma
Algoritma
 
Algoritma
AlgoritmaAlgoritma
Algoritma
 
Programlamaya Giriş ve Algoritma Kavramı
Programlamaya Giriş ve Algoritma KavramıProgramlamaya Giriş ve Algoritma Kavramı
Programlamaya Giriş ve Algoritma Kavramı
 
Programlama Temelleri Akış Diyagramı
Programlama Temelleri Akış DiyagramıProgramlama Temelleri Akış Diyagramı
Programlama Temelleri Akış Diyagramı
 
matlab basic introduction with plot commands
matlab basic introduction with plot commandsmatlab basic introduction with plot commands
matlab basic introduction with plot commands
 
Algoritmalarve programlamai ders_1
Algoritmalarve programlamai ders_1Algoritmalarve programlamai ders_1
Algoritmalarve programlamai ders_1
 
başlıkk 11111
başlıkk 11111başlıkk 11111
başlıkk 11111
 
Slayt_4
Slayt_4Slayt_4
Slayt_4
 
Matlab Seminer2005
Matlab Seminer2005Matlab Seminer2005
Matlab Seminer2005
 
Pascal
Pascal Pascal
Pascal
 

Algoritma

  • 1. Algoritma ELANUR GÜLER 10 B - 40 ProgramlamaTemelleri
  • 2. Algoritma sözcüğü nereden gelmiştir? Ebu Cafer Muhammed İbni Musa El Harizmi Algoritma sözcüğü batı dillerine, ünlü Arap matematikçisi(Bazı kaynaklara göre İranlı) El-Harezmi sayesinde geçmiştir. Bu ünlü matematikçinin doğum tarihi 800 yılından önce olduğu tahmin edilmektedir; ölüm yılı ise 847’dir. Algoritma El-Harezmi’nin değişik telâffuzlarının bir neticesi sonucu oluşmuştur. 2
  • 3. Algoritma Nedir ? • Algoritma, belirli bir problemi çözmek için gerekli adımlar kümesi ya da formül demektir. Bir algoritmanın varlığından bahsedilebilmesi için , algoritmanın sunduğu kurallar kümesinin, hiçbir şüpheye yer vermeyecek kadar kesin olması gerekir ve algoritmanın duracağı , açık olarak ifade edilmiş bir nokta mevcut olmalıdır. Algoritma terimi hesaplama teorisinde ve bilgisayar biliminde son derece önemli bir kavramdır. Algoritma ile ilgili bazı tanımlar aşağıdaki gibidir; 3
  • 4. • Algoritma, bir problemi sistematik olarak adım adım çözmek için kullanılan bir yöntemdir.(T.Ottmann / P.Widmayer) • Algoritma, belirli bir problemi çözmek için gerekli özgün adımlar serisidir. (Dr.James F.Wirth) • Algoritma, bir işi çözmek için gerekli yöntemi tanımlar. Algoritma, doğru olarak icra edildikleri zaman verilen işi çözecek adımlar dizisinden oluşur. (Goldschlager / Lister) 4
  • 5. Algoritma, gerçekte bizim günlük yaşamamızda da hiç yabancı olmadığımız bir şeydir. Bir noktadan başka bir noktaya nasıl gidileceğini anlatan bir yol tarifi bir algoritmadır ya da bir yemek ya da pastanın nasıl pişirileceğini adım adım anlatan bir reçete de bir algoritma oluşturur. Bilgisayar programları hep algoritmalar üzerine kurulmuştur. 5
  • 7. Bir çay demleme algoritması: Mutfakta değilsen mutfağa git. Çayı kontrol et, çay yoksa Markete git çay al Çaydanlığa bak dolu değilse su doldur Ocağı yak.! Ve çaydanlığı ateşin üstüne koy, Suyun kaynamasını bekle. Su kaynadıktan sonra , çayı bırak ve üstüne suyu dök… Yine demliğe biraz daha su ilave ederek bekle. Su kaynadığında biraz dinlendirerek ateşi kapat. Çay bardağını al çayını doldur. Çayına istediğin kadar şeker at ve karıştır. Geldiğin odaya geri dön Ve çayı yudumla… 7
  • 8. Yataktan kalkıp , işe gidene kadar yapılacak işlemleri anlatacak bir algoritmayı inceleyelim: Yataktan kalk Pijamalarını çıkar Banyoya git Duş al Kurulan Giyin Mutfağa git Kahvaltı yap Lavaboya git Dişlerini fırçala İşe doğru yola çık 8
  • 9. Şimdi de aynı işlemlerin farklı bir sırada uygulanacağını düşünelim Yataktan kalk Pijamalarını çıkar Giyin Duş al Kahvaltı yap İşe doğru yola çık Bu algoritma uygulanırsa işe ıslak elbiselerle gidilir. Bir programda , yapılacak işlemlerin sırasını belirlemeye program kontrolü denir. 9
  • 10. BİR ALGORİTMADA EN ÖNEMLİ ÖZELLİKLER 1) Basit olması 2) Problemin çözümünü mümkün olan en az adım ile (en kısa sürede) gerçekleştirmesidir. Bu özelliklere sahip olan algoritmalara şık algoritma (elegant algorithm) ya da etkin algoritma (efficient algorithm) denir. 10
  • 11. SAYISAL ALGORİTMA Bir sayısal algoritma , adımlarının pek çoğu ayrı ayrı bellek elemanlarına kaydedilen hesaplamalardan oluşan bir algoritmadır. 11
  • 12. BELLEK ELEMANI Burada , bellek elemanı ile kastedilen şey, algoritmanın adımlarının sonuçlarını kaydetmek için kullanılabilecek bir kayıt birimidir ; bu birim kağıt üzerindeki bir dikdörtgen bölge olabileceği gibi, bilgisayar belleğinde bir değişken ya da dizi elemanı da olabilir. Belli bir anda, bir bellek elemanına sadece bir sonuç kaydedilebilir. 12
  • 13. ALGORİTMANIN BİLEŞENLERİ • Problemin tanımı • Başlangıç durumu ya da koşullarının belirtilmesi • Parametrelerin belirlenmesi • İcra • Sonuç Algoritmaların pek çoğu, aşağıdaki temel parçalardan oluşur: 13
  • 14. Bir sayı listesi verilmiştir. Bu verilen sayıların toplamını bulunuz. Verilen sayıların toplamını hesaplayan bir algoritma tasarlayalım. Kullanacağımız sayılar,10,5,20 olsun. Şimdi bu problemi kağıt üzerinde nasıl bir algoritma ile ifade edebiliriz, onun yollarını araştıralım. PROBLEMİNTANIMI 14 ÖRNEK
  • 15. BAŞLANGIÇ DURUMUYA DA KOŞULLARININ BELİRLENMESİ Kağıt üzerine , sayı ve toplam adlı iki kutu çizelim ve toplam kutusunun içine 0 (sıfır) yazalım. Çünkü, henüz hiçbir sayı toplanmadığı için toplam değeri başlangıçta sıfır olmalıdır: 0 Sayı Toplam 15
  • 16. PARAMETRELER Algoritmanın icrası esnasında , her adımda bir sayı istenecektir. Aşağıda 3 adımı, hiçbir sayı kalmayıncaya kadar tekrarla: 1.Verilen yeni sayıyı , sayı adlı kutuya kaydet; yeni bir sayı gelince , sayı adlı kutuda önceki sayının silineceğini unutma! 2.Toplam ve sayı adlı kutulardaki sayıların toplamını hesapla! İCRA 16
  • 17. 3. Bulunan değeri, toplam adlı kutuya kaydet! Bu kayıt işlemi, toplam adlı kutuda bir önceki adım sonucunda saklanan sayıyı silecektir. Aşağıda, yukarıda belirtilen,10,5,20 verileri için algoritmanın nasıl ilerlediğini şekilsel olarak verilmiştir: 10 0 Sayı Toplam 10 10 Sayı Toplam I. 1) 2) 10+0=10 3) 17
  • 18. 5 10 Sayı Toplam 5 15 Sayı Toplam II. 1) 2) 5+10=15 3) 18
  • 19. 20 15 Sayı Toplam 20 35 Sayı Toplam III. 1) 2) 20+15=35 3) SONUÇ Toplam adlı kutuda elde edilen sayı(35), arzu edilen sonuçtur; yani verilen sayıların toplamıdır. 19
  • 20. Algoritmalarda Kullanılan Operatörler İşlemleri belirten simgelere/sembollere, bilgisayar terminolojisinde “operatör” denir. 20
  • 21. Matematiksel işlem operatörleri ^ Üs alma * Çarpma / Bölme + Toplama - Çıkarma . Tam ve Ondalıklı kısımları ayırma 21
  • 22. Karşılaştırma Operatörleri = Eşittir <> Eşit değildir < Küçüktür > Büyüktür >= veya => Büyük eşittir <= veya =< Küçük eşittir 22
  • 23. Mantıksal işlem operatörleri ’ DEĞİL . VE + VEYA 23
  • 24. Küme işlem operatörleri + Birleşim - Fark * Kesişim = Eşit <> Eşit değil =< veya <= Soldaki küme, sağdakinin alt kümesi >= veya => Sağdaki küme, soldakinin alt kümesi 24
  • 25. Alfasayısal operatörler + Birleştirme Genel işlem operatörleri = Aktarma () Parantez 25
  • 26. ALGORİTMALARIN İFADE EDİLMESİ • Konuşma Dili • Sahte Kod (Pseudo Code) • Akış Diyagramı(flow-chart) 26
  • 27. •Konuşma Dili Bir algoritmanın, doğal dil kullanılarak ifade edilmesi. Kullanımında bazı sakıncalar vardır. Bu sakıncalar şunlardır: 1) Doğal dil ile ifade biçimlerinde belirsizlik ya da çok anlamlılık olabilir. Bazı ifadeler yanlış anlaşılabilir. 2) Doğal dil ile ifade edilmiş bir algoritmanın başka biçimlere mesela bilgisayar kodu haline dönüştürülmesinde güçlükler ve belirsizlikler olabilir. 27
  • 28. •Sahte Kod (Pseudo Code) Kaba Kod veyaYalancı Kod veya Sözde Kod, bir algoritmanın yarı programlama dili kuralı, yarı konuşma diline dönük olarak ortaya koyulması/ tanımlanmasıdır. Bu şekilde gösterim algoritmayı genel hatlarıyla yansıtır. 28
  • 29. •Akış Diyagramı(flow-chart) Akış diyagramı, algoritmanın görsel/şekilsel olarak ortaya koyulmasıdır. Problemin çözümü için yapılması gerekenleri, başından sonuna kadar, geometrik şekillerden oluşan simgelerle gösterir. 29
  • 30. ALGORİTMA YAZIMI • Sözde kod yada diğer deyimle algoritma hazırlanırken bazı kullanımlar vardır. Bunlar şunlardır: • OKU:Veri girişinin yapılacağını belirler. • EĞER…İSE…DEĞİLSE….: Şart belirtmek için kullanılır. • GİT… : Belirli bir adıma yönlendirmek için kullanılır. • DÖN ..DEN.. • DÖNGÜ SONU :Döngüleri belirtmek için kullanılır. 30
  • 31. ALGORİTMADA KULLANILAN TERİMLER • Tanımlayıcı(Değişken) • Sabit • Aktarma • Sayaç • Döngü • ArdışıkToplama • Ardışık Çarpma 31
  • 32. Tanımlayıcı(değişken) • Program yazan kişi tarafından düşünülüp oluşturulan ve programdaki değişkenleri, sabitleri, kayıt alanlarını, alt programları, vs.. adlandırmak için kullanılan kelimelere tanımlayıcı denir. • Bu kelimeler isimlendirilirken bu kurallara dikkat edilmelidir: • İngiliz alfabesindeki A-Z veya a-z arası 26 harf kullanılabilir. • 0-9 rakamları kullanılabilir. • Sembollerden alt çizgi kullanılabilir. ( _ ) • Tanımlayıcı ifadeleri harf veya altçizgi ile başlayabilir ama rakamla başlamaz. • İsimler oluşturulurken boşluk kullanılmamalıdır. maaş katsayısı değil maas_katsayisi 32
  • 33. Sabit •Programdaki değeri değişmeyen ifadelere “sabit” denir. “İsimlendirme kuralları”na uygun olarak oluşturulan sabitlere, sayısal veriler doğrudan; alfa sayısal veriler ise tek/çift tırnak içinde aktarılır. 33
  • 34. Aktarma Herhangi bir ifadenin sonucunu başka bir değişkende göstermedir. degisken = ifade ifade kısmında matematiksel, mantıksal veya harfsel (alfasayısal) ifade olabilir. = sembolü atama operatörüdür. Bu operatör, sağda hesaplanan ifadenin değerini degisken içine (sola) iletir. 34
  • 35. ÖRNEK Klavyeden girilen üç sayının toplamını bulan algoritma. 1. Başla 2. t=0 3. OKU a 4. t=t+a 5. OKU b 6. t=t+b 7. OKU c 8. t=t+c 9. Yaz t 10.Dur 35
  • 36. Sayaç Programlarda bazı işlemlerin belirli sayıda yaptırılması veya işlenen/üretilen değerlerin sayılması gerekebilir. say=say+1 Bu işlemde sağdaki ifadede değişkenin eski değerine 1 eklenmekte; bulunan sonuç yine kendisine yeni değer olarak aktarılmaktadır. Bu tür sayma işlemlerine algoritmada sayaç adı verilir. Sayacın genel formülü; Sayaç değişkeni=sayaç değişkeni+adım Örnek; X=X+3 36
  • 37. ÖRNEK Aşağıdaki algoritmada 1-5 arası sayılar, ekrana yazdırılmaktadır. 1-5 arası sayıları oluşturmak için sayaç(s=s+1) kullanılmıştır. 1) Başla 2) S=0 3) Eğer s>4 ise git 7 4) S=S+1 5) Yaz S 6) Git 3 7) Dur Eski S Yeni S Ekrana Yazılan 0 0+1=1 1 1 1+1=2 2 2 2+1=3 3 3 3+1=4 4 4 4+1=5 5 37
  • 38. Döngü • Bazı işlemler belli ardışık değerlerle veya belli sayıda gerçekleştirilmektedir. • Programda belirli komut bütünlerini belirli sayıda yaptırabilmek için döngüler kullanılır. • Algoritma yazarken döngü akış işlemlerinde genellikle sayaç kullanılır. 38
  • 39. Döngü oluşturma kuralları • Döngü değişkenine başlangıç değeri verilir. • Döngünün artma veya azalma miktarı belirlenir. • Döngünün bitiş değeri belirlenir. • Eğer döngü, karar / karşılaştırma ifadeleriyle oluşturuluyorsa; döngü değişkeni, döngü içinde adım miktarı kadar arttırılmalı / azaltılmalıdır. 39
  • 40. ÖRNEK Aşağıdaki algoritmada, 1 ile 10 arası tek sayıların toplamı hesaplanmaktadır. 1) Başla 2) T=0 3) J=1 4) Eğer j>10 ise git 8 5) T=T+J 6) J=J+2 7) Git4 8) Dur Eski J EskiT Yeni T Yeni J 1 0 0+1=1 3 3 1 1+3=4 5 5 4 4+5=9 7 7 9 9+7=16 9 9 16 16+9=25 11 11 - - - DÖNGÜ 40
  • 41. Ardışık Toplama Programlarda, aynı değerin üzerine yeni değerler eklemek için kullanılır. Toplam değişkeni=Toplam değişkeni + Sayı 41
  • 42. ÖRNEK Klavyeden girilen 5 sayısının ortalamasını bulan programın algoritması. 1) Başla 2) T=0 3) S=0 4) Eğer S>4 ise git 9 5) S=S+1 6) Sayıyı (A) gir 7) T=T+A 8) Git 4 9) Ortalama=T/5 10)Yaz Ortalama 11)Dur 42
  • 43. Ardışık Çarpma Ardışık veya ardışıl çarpma işleminde; aynı değer, yeni değerlerle çarpılarak eskisinin üzerine aktarılmaktadır. Çarpım değişkeni=Çarpım değişkeni * Sayı 43
  • 44. ÖRNEK Klavyeden girilen N sayısının faktöriyelini hesaplayan programın algoritmasını yazınız. 1) Başla 2) N sayısını gir 3) Fak=1 4) S=0 5) Eğer S>N-1 ise git 9 6) S=S+1 7) Fak=Fak*S 8) Git 5 9) Yaz Fak 10)Dur 44
  • 45. Algoritmada Yapılan İşlemler • Aritmetiksel işlemler toplama, çıkarma, .. • Mantıksal işlemler (LOGİC) ve, veya , değil 45
  • 46. Aritmetiksel işlemler • Toplama a+b • Çıkarma a-b • Çarpma a*b • Bölme a/b • Üs alma a^b 46
  • 47. Matematiksel işlemler içeren kümenizin içindeki matematiksel işaretlerin bir işlem önceliği vardır. • İşlem Önceliği Sırası 1. Parantezler ( ) 2. Üs alma a^b 3. Çarpma ve bölme a*b veya a/b 4.Toplama ve çıkarma a+b veya a-b • Aynı önceliğe sahip işlemler yan yana bulunuyorsa işlem önceliği genelde soldan sağa doğrudur. X=2*3/6+2 İşlem önceliği 47
  • 48. Mantıksal İşlemler • Programlarda, birden fazla karşılaştırma ifadesi bir anda kullanılmak istenebilir. Bu gibi durumlarda mantıksal ifadeler kullanılması zorunludur. MANTIKSAL KOMUTLAR İŞLEMLER • VE AND • VEYA OR • DEĞİL NOT 48
  • 49. Mantıksal İşlem Sonuçları Sonuç Rakam olarak Bilgisayar Dilinde Doğru 1 True (1) Yanlış 0 False(0) 49
  • 50. Mantıksal İşlemler VE (AND) VEYA (OR) DEĞiL (NOT) A B A VE B 0 0 0 0 1 0 1 0 0 1 1 1 A B A VEYA B 0 0 0 0 1 1 1 0 1 1 1 1 A DEGiL A 0 1 1 0 50
  • 51. ÖRNEK Bir işyerinde çalışan işçiler arasından yalnızca yaşı 23’ün üzerinde olup maaş olarak asgari ücret alanların isimleri istenebilir. Burada iki koşulun da doğru olması gerekmektedir. (Asgari ücret >=500) 1nci koşul 2nci koşul Eğer Yaş>23 ve Maaş>=Asgari ücret ise Yaz İsim 51
  • 52. Algoritma, programın temelidir. • Yapılacak iş/çözülecek problem iyice irdelenir.Tüm olasılıklar gözden geçirilir • En az komutla, en kısa sürede, en doğru-hassas sonuca ulaştıracak çözüm yolu /yöntem belirlenir • Tanımlayıcı isimleri belirlenir. • Algoritmada her işlem adımına bir numara verilir. • Problemin çözümü için gerekli olan veriler/işlenecek veriler girilir veya başka ortamlardan alınır. • Yapılacak işlemler/kullanılacak yöntemler açık şekilde verilir. • Bulunan sonuçlar görüntülenir veya belirli ortamlarda saklanır Algoritma hazırlama kuralları 52
  • 53. AKIŞ DİYAGRAMI •Akış şemalarında algoritmanın adımları simgeler şeklinde kutular içine yazılmaktadır ve adımlar arasındaki ilişkiler ve akış yönü oklar ile gösterilmektedir. 53
  • 54. Akış Şemasının Avantajları 1) Birbiri ile ilgili adımlar arasındaki mantıksal ilişkiyi gösterirler. 2) İzlenmesi ve anlaşılması kolaydır. 3) Şartlara bağlı olarak ortaya çıkan olayların takip edilmesi mümkündür. 4) Belli bir standarda göre hazırlandıklarından herkesçe anlaşılabilir ve birden fazla kişi aynı şema üzerinde çalışabilir. 54
  • 55. Akış Şeması Hazırlama Kuralları 1) Başlangıç ve bitiş uçları tanımlanmalıdır. 2) Standart semboller kullanılmalıdır. 3) Birbirini kesen akış hatları kullanılmamalıdır. 4) Basit kararlar alınmalıdır. 5) Şema belli bir yönde hazırlanmalıdır. 55
  • 56. Akış Şeması Elemanları Akış şemasının başlangıcını yada bitişini belirtir. Veri girişi ya da çıkışı yapılacağını belirtir. Ekranda görüntüleme yapılacağını belirtir. 56
  • 57. Akış Şeması Elemanları Yazıcıya çıktı olacağını belirtir. Hesaplama ya da değerlerin değişkenlere aktarımını gösterir. Aritmetik ve mantıksal ifadeler için karar verme ya da karşılaştırma durumunu gösterir. 57
  • 58. Akış Şeması Elemanları AkışYönü Yapılacak işler birden fazla sayıda yinelenecek ise yani iş akışında döngü var ise bu sembol kullanılır. İki nokta arası ilişkiyi gösterir. Döngü sonunu göstermek için ya da akış şemasının başka bir yere bağlantısını göstermek amacıyla kullanılır. Fonksiyon çağırılacağını belirtir. İş akışının yönünü belirtir. 58
  • 59. Akış Şemaları • Akış şemaları içerik ve biçimlerine göre genel olarak üç grupta sınıflandırılabilirler. 1. Doğrusal akış şemaları 2. Mantıksal akış şemaları 3. Döngü içeren akış şemaları 59
  • 60. 1) Doğrusal akış şemaları • İş akışları, giriş, hesaplama, çıkış biçiminde olan akış şemaları bu grup kapsamına girer. • Yapısında karar alma ya da döngü ifadeleri içermeyen akış şemalarıdır. 60
  • 61. • Algoritması Adım 1: Başla Adım 2: Birinci sayıyı gir Adım 3: İkinci sayıyı gir Adım 4: İki sayıyı topla Adım 5:Toplam sonucunu ekranda görüntüle Adım 6: Dur Adım 1: Başla Adım 2: A’yı gir Adım 3: B’yi gir Adım 4: C=A+B Adım 5: C’yi ekranda görüntüle Adım 6: Dur Değişkenler: A: Birinci sayı B: İkinci sayı C:Toplam sonucu ÖRNEK İki Sayıyı Toplama ve Görüntüleme. Başla C Dur A B C=A+B • Akış Şeması (doğrusal) 61
  • 62. 2)Mantıksal akış şemaları • Geniş ölçüde mantıksal kararları içeren akış şemalarıdır. • Hesap düzenleri genellikle basittir. • Verilen koşulun doğru yada yanlış olmasına göre iş akışı yönlendirilir. Koşul Evet (Doğru) Hayır (Yanlış) 62
  • 63. ÖRNEK Klavyeden Girilen 2 sayıdan birincisi büyük ise çarpma, aksi durumda toplama yapan algoritma ve akış şeması. • Algoritması Adım 1: Başla Adım 2: X’i gir Adım 3:Y’yi gir Adım 4: X>Y ise S=X*Y hesapla adım 6’ya git Adım 5: X<=Y ise S=X+Y hesapla Adım 6: S’i görüntüle Adım 7: Dur Değişkenler: X: Birinci sayı Y: İkinci sayı S:Toplam sonucu • Akış Şeması (mantıksal) Başla S Dur X Y S=X+Y X>Y Hayır Evet S=X*Y 63
  • 64. 3)Döngüsel Akış Şemaları • Sorunun çözümü için, çözümde yer alan herhangi bir adım ya da aşamanın birden fazla kullanıldığı akış şemalarına denir. • İş akışları genel olarak giriş ya da başlangıç değeri verme, hesaplama, kontrol biçiminde olmaktadır. 64
  • 65. ÖRNEK Klavyeden 5 kişinin doğum yılını girip 2013 yılındaki yaşını hesaplayan algoritma ve akış şeması. • Algoritması Adım 1: Başla Adım 2: i=1; Adım 3: dy’yi gir Adım 4: yas=2013-dy Adım 5: yas’ı ekrana yazdır Adım 6: i<5 ise i’yi 1 arttır, adım 3’e git Adım 7: Dur Değişkenler: dy : kişinin doğum yılı yas: kisinin yaşı i : sayaç (5 kişi olup olmadığını kontrol eder) 65
  • 66. • Akış şeması I (Döngü ifadesi içermeyen) • Akış şeması II (Döngü şekli içeren) i<5 Hayır Evet Başla yas Dur dy yas=2013-dy i=1 Başla yas Dur dy i,1,5,1 yas=2013-dy i i, 1, 5, 1 Döngü Değişkeni i=i+1 Bitiş değeri Başlangıç değeri Artım değeri 66
  • 67. ÖRNEK 1’den 10’a kadar sayıları ekranda görüntüleyen akış şeması. • Kontrol İfadesiyle i<10 Hayır Evet Başla i Dur i=1 i=i+1 Başla i Dur i,1,10,1 i • Döngü İfadesiyle 67
  • 68. ÖRNEK Girilen 15 sayıdan pozitif olanların adedini bulup görüntüleyen akış şeması. • Kontrol İfadesiyle • Döngü İfadesiyle i<15 Evet Başla adet Dur sayı adet=adet+1 i=1, adet = 0 i=i+1 sayı>=0 Hayır Evet Başla sayı i,1,15,1 i adet=adet+1 sayı >=0 Hayır Evet adet Dur adet = 0 68 Hayır
  • 69. ÖRNEK Klavyeden girilen 2 sayıyı karşılaştırıp sonucu ekrana yazdıran algoritma ve akış şemasını yazın? • Algoritması 1) Başla 2) OKU sayi1,sayi2 3) EĞER sayi1>sayi2 İSEYAZ “Sayi1 sayi2’den büyüktür” 4) Değilse EĞER sayi2>sayi1 İSEYAZ “Sayi2 sayi1’den büyüktür” 5) DEĞİL İSEYAZ “Sayi1 sayi2’ye eşittir” 6) BİTİR 69
  • 71. KAYNAKLAR • Prof.Dr. Mithat UYSAL ,’’Bilgisayar Bilimi Ve Mühendisliğine Giriş’’ BetaYay.,İstanbul, 1999. • Dr. FahriVATANSEVER ,’’Algoritma Geliştirme ve Programlamaya Giriş’’,SeçkinYay.,Ankara, 2007. • Yrd.Doç.Dr. Andaç MESUT,’’Bilgisayar Programlama’’, Algoritma ve Akış Şemaları Ders Notları,Trakya Üniversitesi. 71