Algoritma Geliştirmek
Aritmetik İşlemler
Mantıksal İşlemler
Algoritma Yazımı
Problem çözmenin üçüncü adımı algoritma geliştirmektir. Gelişen algoritma bir şekilde ifade edilmeli, kağıt ya da bilgisayar ortamında yazılı hale getirilmelidir. Algoritmayı yazılı hale getirmenin üç yöntemi vardır:
■Satır diyagramı
■Akış diyagramı
■Sözde Kod(Pseudo- Code)
Yukarıdaki ilk iki yöntem; matematik, işletme, inşaat vb. herhangi bir konuda problem çözülürken kullanılabilir. Ancak sözde kod tamamen bilgisayar programlamaya yönelik bir gösterimdir. Aslında sözde kod algoritma yazımıyla kod yazımı arasında bir noktadır ve daha çok kodlamaya yakındır.
Satır Algoritma
Satır algoritmalar, problem çözümünü günlük yazı/konuşma diliyle ifade ederek ve sıra numarasıyla yazılarak oluşturulur. Konuşma diline ve insana en yakın ifade şekli olması nedeniyle, bir algoritmayı ifade etmenin en basit yoludur.
Örnek Problem - 1
Ekrana sırasıyla 10,20 ve 30 değerlerini yazdıran algoritmayı tasarlayın.
Örnek Satır Algoritma -1
----------------------------------------------------------------------------------------------------------
1. Başla
2. Yaz "10"
3. Yaz "20"
3. Yaz "30"
4. Dur
----------------------------------------------------------------------------------------------------------
Örnek Problem - 2
Kullanıcan iki sayı alıp, bu iki sayının çarpımını ekrana yazdıran algoritmayı tasarlayın.
Örnek Satır Algoritma - 2
----------------------------------------------------------------------------------------------------------
1. Başla
2. Oku (A,B)
3. C = A + B
4. Yaz C
5. Dur
----------------------------------------------------------------------------------------------------------
Örnek Problem - 3
Kullanıcıdan yaşını alıp, girilen değer 18'e eşitse yada 18' den büyükse ekrana "Reşitsiniz", girilen değer 18'den küçükse "Reşit değilsiniz"yazdıran algoritmayı tasarlayın.
Örnek Satır Algoritma - 3
----------------------------------------------------------------------------------------------------------
1. Başla
2. Oku "Yaşınız? :" (Y)
3. Eğer
3.1. ( Y >= 18 ) yaz "Reşitsiniz."
3.2. (DEĞİLSE) yaz "Reşit değilsiniz."
4. Dur
----------------------------------------------------------------------------------------------------------
Örnek Problem -4
Kullanıcıdan bir sayı alıp, 1'den başlayarak kullanıcıdan aldığı sayıya kadar bir artırarak ekrana yazdıran algoritmayı tasarlayın.
Örnek Satır Algoritma -4
----------------------------------------------------------------------------------------------------------
1. Başla
2. Sayac = 0 , Toplam= 0
3. Oku Sayı
4. Eğer Sayac >= Sayı, 8 no'lu adıma git
5. Toplam = Toplam + Sayac
6. ayac = Sayac +1
7. 4 no'lu adıma git
8. Yaz Toplam
9. Dur
----------------------------------------------------------------------------------------------------------
Akış Diyagramları
Örnek Problem -1 in Akış diyagramı
------------------------------
1. Başla
2. Yaz "10"
2. Yaz "10"
3. Yaz "20"
3. Yaz "30"
4. Dur
------------------------------
Örnek Problem - 2 nin Akış diyagramı
------------------------------
1. Başla
2. Oku (A,B)
3. C = A + B
4. Yaz C
5. Dur
------------------------------
Örnek Problem 3 ün Akış Diyagramı
------------------------------
1. Başla
2. Oku "Yaşınız? :" (Y)
3. Eğer
3.1. ( Y >= 18 ) yaz "Reşitsiniz."
3.2. (DEĞİLSE) yaz "Reşit değilsiniz."
4. Dur
------------------------------
Şimdi ise yeni bir algoritma oluşturup hem satır algoritmasını hemde akış diyagramını tasarlayalım.
Örnek Problem - 5
Kişiye adını soracak, daha sonra da adını kullanarak cisiyet unvanını ( bay/bayan ) soracak ve kullanıcının cinsiyet unvanıyla adını birleştirerek ekrana Merhaba X Bey/Hanım" yazdıran algoritmayı tasarlayın.
Örnek Satır Algoritması - 5
------------------------------
1. Başla
2. Yaz "Adınızı girin:"
3. Oku Ad
4. Yaz "Sayın" + Ad + ",Lütfen cinsiyet unvanınızı Bay/Bayan girin."
5. Oku Unvan
6. Yaz "Memnun oldum" + Unvan + " " + Ad
7. Dur
Python3 Kodu :
Ad = input("Adınız:")
print("Sayin",Ad,",lütfen unvaninizi(Beyfendi/Hanfendi) girin)")
unvan= input("Beyfendi/Hanfendi")
print("Memnun oldum",unvan,Ad)
------------------------------
Örnek Problem - 6
Kullanıcıdan bir sayı girmesini isteyip, pozitif mi negatif mi yoksa sıfır mı olduğunu söyleyen algoritmayı tasarlayın.
Örnek Satır Algoritma - 6
------------------------------
1. Başla
2. Oku "Bir sayı girin." (Sayı)
3. Eğer
3.1. ( Sayı > 0 ) Yaz ( "Girdiğiniz sayı pozitiftir.")
3.2. ( Sayı < 0 ) Yaz ( "Girdiğiniz sayı negatiftir.")
3.3 ( Değilse) Yaz ( "Girdiğiniz sayı sıfırdır.")
4. Dur
Python 3 Kodu:
sayi = int(input("Bir sayi girin."))
if ( sayi > 0 ):
print("pozitif")
elif ( sayi < 0 ):
print("negatif")
else:
print("sıfır")
------------------------------
Tekrarlı Yapılar İçin Algoritma Geliştirmek
Örnek Problem -7
Kullanıcıdan 100 ader sayı alarak, bu sayıların toplamını ekrana yazdıran algoritmayı tasarlayın.
Örnek Satır Algoritması - 7
------------------------------
1. Başla
2. Toplam = 0, Sayac = 1
3. Yaz "Bir sayı girin"
4. Oku Sayı
5. Eğer ( Sayac <= 100)
5.1. Toplam = Toplam + Sayı
5.2 Sayac = Sayac + 1
5.3 Git 4
6. Yaz Toplam
7. Dur
Python3 kodu:
toplam = 0
sayac = 1
while ( sayac <= 100):
sayi = int(input("sayi:"))
toplam = toplam + sayi
sayac = sayac + 1
print(toplam)
------------------------------
Koşullu Tekrar Yapıları
Örnek Problem - 8
Kullanıcının girdiği sayıları toplayan bir algoritma tasarlayın. Algoritma, Kullanıcı -1 girene kadar girdiği bütün sayıları alıp toplasın ve kullanıcı -1 girdiğinde kullanıcıdan sayı alma işlemini kesip, girilen sayıların toplamını ekrana yazdırsın.
Bu problemin bir öncekinden farkı, kaç kez tekrarlanacağnın bilinmemesidir. Kullancı iki sayı girdikten sonra -1 değeri girilebileceği gibi, belki de 100 tane ya da 200 tane sayıdan sonra -1 gelebilir. Kullanıcının -1 değerinin girmeden önce kaç tane sayı gireceğini bilmemiz mümkün değildir. Bu gibi durumlarda sayaç yapısını kullanamayız. Tekrarlama işlemini ancak kullanıcının girdiği -1 olup olmadığına bakarak gerçekleştirebiliriz.
Bu tip problemlerde tekrarlama işleminin bitmesi bir koşula bağlıdır. Bu koşul verilen problemin içerisinde yatar. Örneğimizde "Kullanıcıdan -1 "girmesi2, döngüden çıkış sinyalidir.
Örnek Satır Algoritması -8
------------------------------
1. Başla
2. Toplam = 0
3. Döngü
4. Oku " Bir sayı girin" Sayı
5. Toplam = Toplam + Sayı
6. DöngüSonu(Sayı > 0 )
7. Yaz Toplam
8. Dur
Python3 Kodu :
toplam = 0
sayi =0
while ( sayi !=-1):
sayi = int(input("Bir sayı girin:"))
toplam = toplam + sayi
print(toplam)
------------------------------
2.Bölüm Sonu
kaynak : Algorima "Kadir Çamoğlu"
kaynak : Algorima "Kadir Çamoğlu"
Asansör kullananların yaş ve cinsiyet bilgilerini kullanıcıdan isteyen ve buna göre 35-45 yaş arası asansör kullanan
YanıtlaSilbayanların, tüm asansör kullananlara oranını hesaplayan akış diyagramını
nasıl çizebiliriz.