Algoritmalar ve Programlama Temelleri

  Der Notları Oku / İndir

1. Problemin farkına varmak,
2. Problemi analiz etmek,
3. Çözüm yolları düşünmek,
4. İyi çözüm yolları seçip algoritma oluşturmak,
5. Akış diyagramı çizmek,
6. Uygun bir dilde kodlamak,
7. Programı test etmek,
8. Programı dağıtmak.

Algoritma Nedir?

Adım adım işlem basamaklarının yazılmasıdır.

Programlamaya Giriş

Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

Önceki bölümde bir problemin çözümü ile ilgili teknikler sunmuştuk. Bir problemi bilgisayar ile çözmek için geliştireceğimiz programın yazımında izleyeceğimiz adımlar:

1. Problemin ne olduğunu kavra. Çözüm için gereksinimleri belirle.
2. Problemin girdilerini, çıktılarını ve diğer kısıtlama ve gereksinimleri belirle ( bilgilerin giriş ve çıkış biçimlerinin nasıl olacağına kadar).
3. Problemin çözümünü veren algoritmayı yaz.
4. Algoritmayı bir programla dili ile yaz.
5. Programın doğru çalışıp çalışmadığını test et. Bu testi değişik veriler (girdiler) için tekrarla.

Problem Çözme ve Algoritmalar

1.1 Problem Çözme

Problem çözmede, soruna hemen girişmek yerine, dikkatli ve sistematik yaklaşım ilke olmalıdır. Problem iyice anlaşılmalı ve mümkün olduğu kadar küçük parçalara ayırılmaladır.

Descartes tarafından “Discourse on Method” isimli kitabında anlatılan problem çözme teknikleri;[2]

1. Doğruluğu kesin olarak kanıtlanmadıkça, hiçbir şeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının.
2. Karşılaştığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün.
3. Düzenli bir biçimde düşünün; anlaşılması en kolay olan şeylerle başlayıp yavaş yavaş daha zor ve karmaşık olanlara doğru ilerleyiniz.
4. Olaya bakışınız çok genel, hazırladığınız ayrıntılı liste ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olsun.

1.2 Algoritmalar

Belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir. İ.S. 9.yy da İranlı Musaoğlu Horzumlu Mehmet (Alharezmi adını araplar takmıştır) problemlerin çözümü için genel kurallar oluşturdu. Algoritma Alharezmi’nin Latince okunuşu.

Her algoritma aşağıdaki kriterleri sağlamalıdır.

1. Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli.
2. Çıktı: En azından bir değer üretilmeli.
3. Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli.
4. Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli.
5. Etkinlik: Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır.

Not: Bir program için 4. özellik geçerli değil. işletim sistemleri gibi program sonsuza dek çalışırlar .

Algoritma Kurma

Algoritma, verilen herhangi bir sorunun çözümüne ulaşmak için uygulanması gerekli adımların hiç bir yoruma yer vermeksizin açık, düzenli ve sıralı bir şekilde söz ve yazı ile ifadesidir. Algoritmayı oluşturan adımlar özellikle basit ve açık olarak sıralandırılmalıdır. Algoritmik çözüm yöntemlerine ilk örneği günlük yaşantımızdan verelim.

Örnek 1: Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

Çözüm 1:

Evden dışarıya çık
Otobüs durağına yürü
Durakta gideceğin yöndeki otobüsü bekle
Otobüsün geldiğinde otobüse bin
Biletini bilet kumbarasına at
İneceğin yere yakınlaştığında arkaya yürü
İneceğini belirten ikaz lambasına bas
Otobüs durunca in
İşyerine doğru yürü
İş yeri giriş kapısından içeriye gir
Mesai arkadaşlarınla selamlaş
İş giysini giy
İşini yapmaya başla.

Yukarıdaki örnekte görüldüğü gibi, evden işe gidişte yapılabilecek işlemler adım adım sırasıyla, kısa ve açık olarak tanımlanmaya çalışılmıştır. Yukarıdaki algoritma kişinin otobüsü kaçırma olasılığı düşünülmeden oluşturulmuştur. Kişi durağa geldiğinde bineceği otobüsü kaçırmış ise algoritmamız aşağıdaki şekilde değiştirilebilir.

Çözüm 2:

Evden dışarıya çık
Otobüs durağına yürü
Otobüsün saati geçmiş ?
Durakta gideceğin yöndeki bir sonraki otobüsü bekle
Bir sonraki otobüs gelene kadar 4. adımı uygula
Otobüsün geldiğinde otobüse bin
Biletini bilet kumbarasına at
İneceğin yere yakınlaştığında arkaya yürü
İneceğini belirten ikaz lambasına bas
Otobüs durunca in
İşyerine doğru yürü
İş yeri giriş kapısından içeriye gir
Mesai arkadaşlarınla selamlaş
İş giysini giy
İşini yapmaya başla.

Her iki örnekte görüldüğü gibi sorunu çözüme götürebilmek için gerekli olan adımlar sıralı ve açık bir biçimde belirlenmiştir. Algoritmanın herhangi bir adımındaki küçük bir yanlışlık doğru çözüme ulaşmayı engelleyebilir. Bu nedenle algoritma hazırlandıktan sonra dikkatle incelenmeli ve varsa adımlardaki yanlışlıklar düzeltilmelidir.

Programlamanın temeli olan algoritma hazırlanmasında dikkat çekici bir nokta, aynı sorunu çözmek için hazırlanabilecek olası algoritma sayısının birden çok olmasıdır. Başka deyişle, bir sorunun çözümü için birbirinden farklı birden fazla sayıda algoritma hazırlanabilir. Bu da gösteriyor ki herhangi bir problemin çözümü için birbirinden farklı yüzlerce bilgisayar programı yazılabilir.

Bir bilgisayar programı için hazırlanacak olan algoritma da aynı şekilde çözüm yolunu bilmeyen bir kişiye, çözüme ulaşmak için neler yapması gerektiği anlatılıyormuş gibi hazırlanmalı ve eksik bir nokta bırakmaksızın gerekli tüm adımları açık ve düzenli olarak içermelidir. Çözüm için kullanılacak bilgilerin nereden alınacağı, nerede saklanacağı ve çözümün program kullanıcısına nasıl ulaştırılacağı algoritma adımları arasında belirtilmelidir.

Aşağıda değişik işlemlere ilişkin algoritma örnekleri verilmiştir.

Örnek 2: İki sayıyı toplamak için gerekli programa ait algoritmanın oluşturulması.

Algoritma:

A1 :Birinci sayıyı gir
A2 :İkinci sayıyı gir
A3 :İki sayının toplamını yap
A4 :Toplamın değerini yaz
A5 :Bitir.

Bu tam bir algoritmadır. Sözcüklerin ortaya çıkaracağı yanlış anlamaların ortadan kaldırmak amacıyla semboller ve matematik dilini gerektiren bazı kısaltmalar kullanmak daha uygun olacaktır. Bir algoritma yazılırken şu metot izlenmelidir:

1.Programda kullanılacak elemanları temsil etmek üzere uygun isimler veya değişkenler seç.

2.Bazı isimlere başlangıç değeri olarak çözümün gerektirdiği uygun değerler ver.

3.Gerekirse programa girilecek verileri düzenle.

4.Cebirsel notasyon ve kararlar kullanarak aritmetik işlemleri gerçekleştir.

5.Çıkışı düzenle.

6.Bitir.

Yukarıda iki sayının toplanması için oluşturduğumuz algoritmayı bu yeni gereksinimlere uyarak yeniden yazalım.

Toplam adı için Z
Birinci Sayı için X
İkinci Sayı için değerleri kullanılırsa;

Algoritma:

A1 :X değerini gir
A2 :Y değerini gir
A3 :Z ¬ X+Y
A4 :Z’ yi yaz
A5 :Bitir

Görüldüğü üzere bu şekilde bir algoritma ile çözüm yolunu izlemek daha kolaydır. Bundan sonra bu tip algoritma kullanılacaktır.

A6 :Bitir

Bu örnekte Ort değeri ile iki sayının ortalaması temsil edilmiştir.

Örnek 4: Beş sayının toplamını ve ortalamasını veren programa ait algoritmanın oluşturulması

Toplam adı için Top
Ortalama adı için Ort
Girilen sayılar için X
Arttırma için Sayac kullanılırsa

Algoritma:

A1 :Top ¬ 0, Sayac ¬ 0
A2 :X’i gir
A3 :Top¬ Top+X
A4 : Sayac ¬ Sayac +1
A5 :Eğer Sayac <5 ise A2’ye git
A6 :Ort¬ Top/5
A7 :Top ve Ort değerlerini yaz
A8 :Bitir

Örnek 5: Kenar uzunlukları verilen dikdörtgenin alan hesabını yapan programa ait algoritmanın hazırlanması. Kenar uzunlukları negatif olarak girildiği durumda veri girişi tekrarlanacaktır.

Dikdörtgenin kısa kenarı : a
Dikdörtgenin uzun kenarı : b
Dikdörtgenin alanı : Alan

Algoritma:

A1 :a değerini gir
A2 :a<0 ise 1. adımı tekrarla
A3 :b değerini gir
A4 : b<0 ise 3. adımı tekrarla
A5 :Alan ¬ a*b
A6 :Alan değerini yaz
A7 :Bitir

Örnek 7: Verilen bir sayının faktöriyelini hesaplayan programın algoritmasının oluşturulması

Sayının faktöriyeli :Fak
Faktöriyel degişkeni :X
Faktöriyeli hesaplanacak sayı :Y

Algoritma:

A1 :Fak¬ 1, X¬ 0
A2 :Y’i gir
A3 :Y<0 ise 2. adımı tekrarla
A4 :X¬ X+1
A5 :Fak¬ Fak*X
A6 :X<Y ise 4. adıma geri dön
A7 :Fak değerini yaz
A8 :Bitir

Bu algoritmada 1. adımda X e 0 ve Fak değişkenine 1 değeri atanıyor. 2. adımda Y değeri giriliyor ve 3. adımda Y değerinin 0 dan küçük bir değer olup olmadığı denetleniyor ve denetim sonucuna göre gerekli komut veriliyor. 4. adımda X’in değeri 1 arttırılıyor ve 5. adımda X için Fak değeri hesaplanıyor. 6. adımda X in değerinin faktöriyeli hesaplanacak sayıdan küçük olması durumunda 4. adımdan itibaren işlemlerin tekrarlanması komutu veriliyor, X’ in değerinin Y’ye eşit olması durumunda işlemler tamamlanarak hesaplanan değerin yazdırılması işleminden sonra programın çalışması sona ermektedir.

Akış Diyagramları

Geliştirilecek olan yazılımın genel yapısının şematik gösterimine akış diyagramı veya blok diyagramı adı verilir. Akış diyagramları, yazılımı oluşturacak program parçalarını ve bu parçaların birbirleri ile olan ilişkilerini belirler. Bir bilgisayar programının oluşturulmasında akış diyagramlarının hazırlanması, algoritma oluşturma aşamasından sonra gelmektedir. Bilgisayar programının oluşturulması sırasında algoritma aşaması atlanarak, doğrudan akış diyagramlarının hazırlanmasına başlanabilir. Programlama tekniğinde önemli ölçüde yol almış kişiler bu aşamayı da atlayarak direkt olarak programın yazımına geçebilirler.

Akış diyagramlarının algoritmadan farkı, adımların simgeler şeklinde kutular içinde yazılmış olması ve adımlar arasındaki ilişkilerin (iş akışı) oklar ile gösterilmesidir.

Akış diyagramlarında kullanılan semboller, anlamları ve kullanış amaçları aşağıdaki tabloda verilmiştir.

Tablo 1. İş akış diyagramlarında kullanılan semboller ve anlamları

Simge Simgenin Adı ve Anlamı
ElipsAkış diyagramının başlangıç ve bitiş yerlerini gösterir. Başlangıç simgesinden çıkış oku vardır. Bitiş simgesinde giriş oku vardır.Paralel Kenar: Programa veri girişi ve programdan elde edilen sonuçların çıkış işlemlerini gösterir.Dikdörtgen Aritmetik işlemler ve değişik atama işlemlerinin temsil edilmesi için kullanılır.Eşkenar Dörtgen Bir karar verme işlemini temsil eder.

Altıgen Program içinde belirli blokların ard arda tekrar edileceğini gösterir.

Oklar Diyagramın akış yönünü ,yani her hangi bir adımdaki işlem tamamlandıktan sonra hangi adıma gidileceğini gösterir.

Ayrıntılı bir akış diyagramı, yazılımı oluşturan işlemleri ve ilişkilerini en küçük detayına kadar belirler.

Bir bilgisayar programının geliştirilmesinde kullanılan programlama dili ne olursa olsun bu programların akış diyagramlarında genel olarak yalnız üç basit mantıksal yapı kullanılır. Bu mantıksal yapılardan en basiti sıralı yapıdır. Sıralı yapı, hazırlanacak programdaki her işlemin mantık sırasına göre nerede yer alması gerektiğini vurgular. Bu yapı sona erinceye kadar ikinci bir işlem başlayamaz.

Şekil 1.2 Sıralı Yapı

Mantıksal yapılardan ikincisi Karar Verme yapısıdır (Şekil 1.3). Programlama sırasında If…Then… Else yapısı ile tanıyacağımız bu mantıksal yapılar, birden fazla sıralı yapı seçeneğini kapsayan modüllerde, hangi şartlarda hangi sıralı yapının seçileceğini belirler.

Şekil 1.3 Karar Verme Yapısı

Üçüncü mantıksal yapı çeşidini tekrarlı yapılar oluşturmaktadır. Bu yapılara Pascal programlama dilinde For(Şekil 1.4.a), While ve Repeat..Until (Şekil 1.4.b), yapısı adı da verilir. Şartlara göre değişik işlem gruplarının yapılmasını sağlar. Bu yapı yukarıda sözü edilen iki yapının çeşitli kombinezonların tekrarlanmasından oluşmuştur.

Söz konusu üç değişik yapı, değişik kombinezonlarda kullanılarak istenilen işlevleri yerine getirecek programlar hazırlanabilir. Programların bu üç basit yapı ile sınırlandırılması program modüllerinin daha kolay tasarlanmasını sağlar.

A

ALGORİTMA ÖRNEKLERİ

Bu bölümde yazılım oluşturma evrelerinden biri olan akış diyağramları ile ilgili örnekler verilmiştir. Sözlü veya yazılı olarak oluşturduğumuz algoritmanın programa dönüştürülmesi sırasında programın çalışma sırasını da gösteren akış diyagramlarıyla ilgili örnekler aşağıda verilmiştir.

Örnek 1: İki sayının toplamını ve ortalamasını yapan bilgisayar programının akış diyagramını çiziniz.

Örnek 2: 1’den 100’e kadar olan sayıların toplamlarını ve ortalamalarını veren programın akış diyagramını çiziniz.

Örnek 3: Ax+b=0 şeklinde verilen 1.derece denklemin çözümünü veren programa ait akış diyagramını çiziniz.

Örnek 4: Ax²+Bx+C=0 şeklinde verilen 2. derece denklemin köklerini bulan programın akış diyagramını çiziniz.

Yukarıdaki örnekte A=0 girilmesi durumunda denklem 1.derece olmaktadır. Bu durumu dikkate alarak gerekli çözümü de gösterecek şekilde akış diyagramını değiştiriniz.

Örnek 5: 1’ den 100’e kadar sayıların karelerini, kareköklerini, küplerini, küpköklerini toplamlarını ve ortalamalarını veren programın akış diyagramını çiziniz.

Örnek 6: Yukarıda karar mantığı yapısı ile çözümlediğimiz problemi döngü yapısı ile çözümleyelim.

Örnek 7:10 tane N sayısının faktöriyelini hesaplayan programın akış diyagramını çiziniz.

Örnek 8: Yukarıdaki örneği tekrarlı yapı olarak tanımladığımız döngü yapısı ile çözelim.

Örnek 9: Elimizde bulunan A,B, ve C gibi 3 adet sayıdan en büyüğünü ve en küçüğünü bulan programın akış diyagramını çiziniz.

Örnek: İki sayının toplamını yazan algoritmayı yazınız.

Çözüm: Adım 1 –> İlk sayıyı oku, Sembolik olarak A1 S1=?
Adım 2 –> İkinci sayıyı oku A2 S2=?
Adım 3 –> Sayıları topla A3 T S1+S2
Adım 4 –> Sonucu görüntüle. A4 T’yi göster.

1.Soru : Kullanıcının girdiği iki sayının karelerinin toplamını görüntüleyen algoritmayı yazınız.
Çözüm
A0 –> Başla
A1 –> Sayaç=0 (Sayaç’ın ilk sayısı 0 olarak başlar.)
A2 –> Sayı=? : TßT+Sayı (Sayıyı giriniz. T’ye sayıyı ekle veT’yi göster.)
A3 –> Sayaç=Sayaç+1 (Sayaç’a bir ekle ve sayacı göster.)
A4 –> Sayaç<4 ise A2′ye git. (Eğer sayaç 4′ten küçükse Adım 2′ye git.)
A5 –> O=T/4 (Ortalama için T değerini 4′e böl)
A6 –> O’yu göster. (Ortalamayı göster.)
A7 –> Dur

2.Soru : 20′den 50′ye kadar olan sayıların toplamını bulan algoritma yazınız. BAŞLA
Çözüm A0 –> Başla
A1 –> S=20 : T=0 (Sayı 20 T değeri 0 ile başla)
A2 –> TßT+S (T’ye sayıyı ekle T’yi göster.)
A3 –> S=S+1 (Sayıyı bir artır.)
A4 –> S<50 ise A2′ye git. (Eğer sayı 50′den küçük ise Adım 2′ye git)
A5 –> T’yi göster. (T’nin değerini göster.)
A6 –> Dur Akış Şeması à

3.Soru : 30 ile 90 arasındaki çift sayıların toplamını bulan algoritma yazınız.
Çözüm:
A0 –> Başla
A1 –> S=0 : T=0 (Sayı 0, Toplam değeri 0 olsun)
A2 –> S=S+1 (Sayıyı bir artır, sayıyı göster.)
A3 –> T=T+2S+28 (28 sayısına çift sayı olması için sayıyı 2 ile çarp ve toplama ekle, toplamı göster)
A4 –> 2S+28<90 ise git A2 (Eğer Çift sayı 90 değerinden küçük ise Adım 2′ye git)
A5 –> O=T/S (Toplam değeri sayıya böl ve ortalamayı bul)
A6 –> O’yu yaz. (Ortalamayı göster)
A7 –> Dur

4.Soru : Klavyeden girilen 10 adet sayıdan çift sayıların toplamının tek sayıların toplamına oranını bulan algoritma yazınız.
Çözüm:
A0 –> Başla
A1 –> S=0 : T=0 : Ç=0 (Sayı, tek ve çift sayılar 0 değerini alsın)
A2 –> Sayı? (Sayıyı giriniz)
A3 –> (-1)sayı=1 ise Ç=Ç+Sayı (Eğer -1′in sayı üssü 1 sayısına eşitse sayıyı çift sayıya ekle ve çift sayıyı bul.)
A4 –> (-1)sayı=+1 ise T=T+Sayı (Eğer -1′in sayı üssü +1 sayısına eşitse sayıyı tek sayıya ekle ve tek sayıyı bul.)
A5 –> S=S+1 (Sayaça 1 ekle ve sayacı göster)
A6 –> S<10 ise A2′ye git. (Eğer Sayaç 10′dan küçük ise Adım 2′ye git.)
A7 –> V ß Ç/T (Çift sayıların toplamını tek sayıların toplamına böl.)
A8 –> V’yi göster. (Bölme sonucunu göster.)
A9 –> Dur

5.Soru : Klavyeden girilen iki sayıdan en büyüğünü bulup gösteren algoritmayı yazınız.
Çözüm :
A0 –> Başla
A1 –> S1=? : S2=? (İlk sayıyı gir ; ;İkinci sayıyı gir.)
A2 –> S1>S2 ise git A4 (Sayı 1 sayı 2′den küçükse Adım 4′e git.)
A3 –> S2>S1 ise git A5 (Sayı 2 sayı 1′den küçükse Adım 5′e git.)
A4 –> S1′i göster git A6 (sayı 1 değerini göster ve işlemi durdur)
A5 –> S2′yi göster. (Sayı 2 değerini göster)
A6 –> Dur

6.Soru : Klavyeden girilen üç sayıdan en büyüğünü bulup gösteren algoritmayı yazınız.
Çözüm :
A0 –> Başla : EB=-¥ : S=0 (Başla olabilecek EB:en küçük sayı olsun, Sayı 0 olsun)
A1 –> Sayı? (Sayıyı giriniz.)
A2 –> Sayı>EB ise EB=Sayı (Eğer Sayı EB’den küçükse EB sayıyla aynı değeri alsın.)
A3 –> S=S+1 (Sayaca 1 ekle ve sayacı göster)
A4 –> S<3 ise git A1 (Eğer sayac 3′ten küçükse adım 1′e git.)
A5 –> EB’yi göster (En büyük sayıyı göster.)
A6 –> Dur

Örnek 1.2.1 : 1′den 100′e kadar olan sayıların toplamını veren algoritma.
1. Toplam T, sayılar da i diye çağırılsın.
2. Başlangıçta T’nin değeri 0 ve i’nin değeri 1 olsun.
3. i’nin değerini T’ye ekle.
4. i’nin değerini 1 arttır.
5. Eğer i’nin değeri 100′den büyük değil ise 3. adıma git.
6. T’nin değerini yaz.

Algoritmaların yazım dili değişik olabilir. Günlük konuşma diline yakın bir dil olabileceği gibi simgelere dayalı da olabilir. Akış şeması eskiden beri kullanıla gelen bir yapıdır. Algoritmayı yazarken farklı anlamlar taşıyan değişik şekildeki kutulardan yararlanılır. Yine aynı amaç için kullanılan programlama diline yakın bir (sözde kod = pseudo code) dil , bu kendimize özgü de olabilir, kullanılabilir.

Aynı algoritmayı aşağıdaki gibi yazabiliriz.
1. T=0 ve i=0
2. i’nin değerini T’ye ekle.
3. i’yi 1 arttır.
4. i<101 ise 2.adıma git.
5. T’nin değerini yaz.

Algoritmayı bir de akış şeması ile gerçekleyelim.

T=0
İ=0
İ’nin Değrini T’ye ekle
İ’yi bir arttır
İ<101
T’yi yaz

Örnek 1.2.2 : ax2+bx+c=0 tipi bir denklemin köklerini veren algoritma.
Girdi : a, b ve c katsayıları Çıktı : denklemin kökleri
1. a, b ve c katsayılarını al.
2. D = b2-4ac değerini hesapla.
3. D<0 ise gerçel kök yok. 7. adıma git.
4.
5 .
6. değerlerini yaz.
7. Dur.

Döngü Gösterimi
Tekrarlanan adımlar
n. Koşul sağlandığı sürece
n.1 …
n.2 … tekrarlanan adımlar
n.3 …

Örnek 1.2.3 : İki tamsayının çarpma işlemini sadece toplama işlemi kullanarak gerçekleyin.
Girdi : iki tamsayı
Çıktı : sayıların çarpımı
1. a ve b sayılarını oku
2. c =0
3. b>0 olduğu sürece tekrarla
.3.1. c=c + a
3.2. b = b-1
4. c değerini yaz ve dur

Örnek 1.2.4 : Bir tamsayının faktoriyelini hesaplayınız.
Girdi : Bir tamsayı
Çıktı : sayının faktoriyel
İlgili formul: Faktoriyel(n)=1*2*…*n
1. n değerini oku
2. F=1
3. n >1 olduğu sürece tekrarla
.3.1. F=F*n
3.2. n= n-1
4. F değerini yaz

Örnek 1.2.5 : İki tamsayının bölme işlemini sadece çıkarma işlemi kullanarak gerçekleyin. Bölüm ve kalanın ne olduğu bulunacak.
1. a ve b değerlerini oku
2. m=0
3. a>=b olduğu sürece tekrarla
3.1 a=a-b
3.2 m = m + 1
4. kalan a ve bölüm m ‘yi yaz

Örnek 1.2.6 : 100 tane sayıyı okuyup, ortalamasını bul
1. T=0, i=0
2. i<101 olduğu sürece tekrarla
2.1 m değerini oku
2.2 T = T + m
2.3 i = i + 1
3. T = T / 100
4. Ortalama T ‘yi yaz
5. Dur

Örnek 1.2.7 : Bir sınava giren öğrencilerin not ortalamasının hesaplanması
1. Tüm sınav kağıtlarını inceleyip notların toplamını hesapla
2. Ortalamayı notların toplamını incelenen sınav kağıdına bölerek hesapla
3. Ortalamayı yaz.

1. Notların toplamını ve incelenen sınav kağıdı sayısını sıfır kabul et
2. Sıradaki sınav kağıdının notunu notların toplamına ekle
3. İncelenen sınav kağıdı sayısını Bir arttır
4. İncelenecek sınav kağıdı var ise 2. Adıma git
5. Ortalamayı notların toplamını incelenen sınav kağıdına bölerek hasapla
6. Ortalamayı yaz

1. Notların toplamını ve incelenen sınav kağıdı sayısını sıfır kabul et
2. Her bir sınav kağıdı için
3. 1. Sıradaki sınav kağıdının notunu notların toplamına ekle
4. 2. İncelenen sınav kağıdı sayısını bir arttır
5. Ortalamayı notların toplamını incelenen sınav kağıdına bölerek hesapla
6. Ortalamayı yaz

Koşul Gösterimi

n. Koşul doğru ise
n.D.1
n.D.2 doğru olduğunda işlenen adımlar
n.D.3
aksi halde
n.Y.1
n.Y.2 yanlış olduğunda işlenen adımlar
n.Y.3

Kök bulma örneğinde 3. Adımı tekrar yazarsak
3. D>=0 ise
3.D.1
3.D.2
aksi halde
3.Y.1 Reel kök yoktur

Sorular:
* Girilen üç sayıdan en büyüğünü bulan algoritmayı yazınız.
* Tamsayılarda üs alma işlemini gerçekleştiren algoritmayı yazınız ( ab ).
* 1-100 arasında tutulan bir sayıyı tahmin eden algoritmayı yazınız.

Örnek 1.2.8 : Aracın otopark ücretinin hesaplanması. Araçların en fazla 24 saat kaldığını varsayın.
0 – 2 saat 150 bin
2 – 8 saat 300 bin
8-24 saat 500 bin

1. Aracın kaç saat kaldığını öğren ( t olsun ).
2. t <= 2 ise
2.D.1. ücret = 150 bin
Aksi halde
2.Y.1. t<=8 ise
2.Y.1.D.1. ücret = 300 bin
Aksi halde
2.Y.1.Y.1. ücret = 500 bin
3. ücreti yaz
4. Dur

Örnek 1.2.9: Sınavdaki en büyük notun bulan algoritma.

1. En büyük = ilk sınav kağıdındaki not (ya da olabilecek en düşük değer kabul edilebilir).
2. İncelenecek sınav kağıdı var ise
3. 1 Sınav kağıdındaki not > En büyük ise En büyük = Sınav kağıdındaki not
4. En büyük değerini yaz.
5. Dur

Algoritmanın yazımı daha simgesel olabilir. Ni i. Öğrencinin notu olsun.

1. EB = N1
2. i = 2
3. İncelenecek sınav kağıdı var ise
4. 1 Ni>EB => EB = Ni
5. 2 i = i + 1

6. EB’ yi yaz.
7. Dur

Örnek 1.2.10 : Programın C dili ile yazılıp çalışır hale getirilmesi.

1. Programı bilgisayara gir
2. Kaynak dosya olarak kaydet
3. Kaynak dosyayı derle ( compile)
4. Derleme sonucunda hata var ise
5. 1 Hataları düzelt
6. 2 3. Adıma git
7. Oluşan amaç dosyasına diğer dosyaları bağla (link)
8. Bağlama sonucunda hata var ise
9. 1. Hataları düzelt
10. 2. Hatalar kaynak dosya ile ilgili ise 2. adıma aksi halde 5. adıma git
11. Program çalıştırılmaya hazır

LEAVE A COMMENT