instagram twitter linkedin github youtube

24.11.15

ALGORİTMA

1 ALGORİTMA Belirli bir problemi çözmek için gerekli adımlar kümesidir. Algoritma bir işi çözmek için kullanılan yöntemdir. Gündelik yaşantımızda da algoritmalar kullanırız. Yol tarifi, yemek pişirme işlemleri birer algoritmadır. Bir algoritmanın özellikleri şu şekildedir: 1) Başlangıcı olmalı 2) Basit olmalı 3) Problemin çözümünü, mümkün olan en az adım ile en kısa sürede gerçekleştirmeli 4) Sonu olmalı ‘Algoritma’ kelimesinin kökeni: Algoritma batılı bir bilim adamı tarafından değil, ünlü Arap matematikçi El-Harizmi tarafından bulunmuştur. Harizmi‟nin 830 yılında yazdığı „El Cebr vel-Mukabele‟ isimli eseri batı dünyasının eline geçtikten sonra, asıl kitap kaybolmuştur. Bu kitaptan edinilen bilgiler batı dünyasının ürünüymüş gibi ilgi görmüştür. Algoritma da el-Harizmi‟nin değişik telâffuzlarının bir neticesi olmuştur. Algoritmanın Akış Diyagramı ile İfade Edilmesi Akış diyagramı (flow chart), bir algoritmanın adımlarının mantıksal sırasını, adımların birbiri ile bağlantısını, bir işlemden diğerine nasıl gidileceğini belirten kontrol mekanizmalarını, özel bazı şekil ve sembollerle anlatan bir ifade biçimidir. Aşağıda bu semboller görülmektedir: Programın başlangıç ve bitişi için kullanılır. Bilgi giriş çıkışı için kullanılır. Aktarma, aritmetik hesaplama, işlem Karar alma için kullanılır. Döngü Birleştirme çizgileri Yazdır Bağlantı 2 Programlama Dilleri Çeşitleri 1- Derecelerine göre diller : Yüksek Orta Alçak İnsan diline yakın, anlaşılması kolay dillerdir. Pascal, Basic vb. . İnsana yaklaşan dillerdir. C vb. İnsan diline çok uzak, bilgisayar dillerine yakın dillerdir. Assembly 2- Yapılarına göre diller: :. Yapısal Diller Yapısal Olmayan Diller Alt program veya fonksiyon kullanılarak oluşturulan programlardır.(Pascal, C vb.) Program içinde dallanmalar olan, go to ile işlem yapılan dillerdir..( Basic gibi) Algoritma Ve Akış Şeması Örnekleri Örnek-1 : Bir ücretlinin sicil numarası, çalışma saati ve saat ücreti bilgisayara giriş olarak veriliyor. Ücretlinin bu bilgilerle maaşını hesaplayan algoritmayı ve akış şemasını çiziniz. Algoritması 1) Başla 2) Sicilno., calsa, saucret oku 3) Maas= calsa x saucret 4) Sicilno, Maas yaz 5) Dur. Akış Şeması BAŞLA SicilNo Calsa Sauc Maas = Calsa X Sauc DUR SicilNo Maas 3 Örnek-2 : Örnek-1‟deki işçiden %14 SSK, %15 gelir vergisi kesildiğini hesaba katarak net maaşı, sicil numarasını, SSK primini ve vergi miktarını ekrana yazdıran algoritma ve akış şemasını hazırlayınız. Algoritması 1) Başla 2) Sicilno, Calsa, Saucret oku 3) Maas = Calsa x Saucret 4) Prim = Maas x 0.14 5) Vergi = Maas x 0.15 6) Netmaas = Maas -(Prim + Vergi) 7) Sicilno, Netmaaş,Vergi, Prim yaz 8) Dur. Akış Şeması BAŞLA SicilNo Calsa,Sauc Maas = Calsa x Sauc DUR SicilNo Netmaas Prim Vergi Prim = Maas x 0.14 Vergi = Maas x 0.15 Netmaas = Maas – (Vergi + Prim) 4 Örnek-3 : Klavyeden girilen iki sayıdan büyük olanını bulup ekrana yazdıran algoritma ve akış şemasını hazırlayınız. Algoritması 1) Başla 2) A ve B sayılarını oku 3) Eğer A = B ise A B „ye eşit‟ yaz Git 6 4) Eğer A > B ise A B „den büyük‟ yaz git 6 5) Yaz B A „dan büyük‟ 6) Dur Akış Şeması E H E H BAŞLA A, B A = B ? A > B ? A eşit B A büyük DUR B büyük 5 Örnek-4 : Bir okuldaki 35 öğretmenin maaşlarını okuyup maaş toplamını ekrana yazdıran algoritma ve akış şemasını hazırlayınız. Algoritması 1) Başla 2) TM = 0 3) S = 0 4) Maas‟ı oku 5) TM = TM+ Maas 6) S = S +1 7) Eğer S < 35 ise git 4 8) Yaz TM 9) Dur Akış Şeması E H BAŞLA TM = 0 S = 0 TM = TM + Maas S = S + 1 S < 35 ? TM Maas DUR 6 Örnek-5 : 1 – 100 arasında yer alan çift sayıların toplamını bulan algoritma ve akış şemasını hazırlayınız. Algoritması 1) Başla 2) T = 0 3) Döngü I = 2 den 100‟e 2‟şer ilerle 4) T = T+I 5) Döngü sonu I 6) Yaz T 7) Dur Akış Şeması BAŞLA T = 0 T = T + I I : 2,100,2 I T DUR 7 Örnek-6 : Klavyeden girilecek n tane sayının ortalamasını alan algoritma ve akış şemasını hazırlayınız. Algoritması 1. Başla 2. T = 0 3. N „ i oku 4. I = 1 5. Eğer I >= N ise Git 6 değilse git 10 6. Sayi oku 7. T = T + Sayi 8. I = I + 1 9. Git 5 10. Ort = T / N 11. Yaz Ort 12. Dur Akış Şeması E H BAŞLA T = 0 I = 1 ORT = T/N T = T + Sayi I = I + 1 I =< N ? Sayi ORT DUR N 8 Örnek-7 : Verilen kenarlarına göre bir üçgenin, ne çeşit olduğunu bulan algoritma ve akış şemasını hazırlayınız. Algoritması 1) Başla 2) a, b ve c kenarlarını oku. 3) Eğer (a = b) ve (b = c) ise Yaz “eşkenar” Git 6 4) Eğer (a = c) veya (b = c) ise Yaz “ikizkenar” Git 6 5) Yaz “çeşitkenar” 6) Dur Akış Şeması E E H H E H BAŞLA a, b, c a=c ? a=b ? EŞKENAR İKİZKENAR ÇEŞİT KENAR DUR b=c ? 9 Örnek-8 : Klavyeden girilen n sayısının faktoriyelini alan algoritma ve akış şemasını hazırlayınız. Algoritması 1) Başla 2) N‟i oku 3) Faktor = 1 4) S = 1 5) Faktor = Faktor x S 6) Eğer S <= N ise S = S + 1 git 5 7) Yaz Faktor 8) Dur Akış Şeması E H BAŞLA N Faktor = 1 S = 1 Faktor = Faktor x S S< = N ? S = S + 1 Faktor DUR 10 Örnek-9 : İkinci dereceden bir denklemin köklerini bulan algoritma ve akış şemasını hazırlayınız. Algoritması 1) Başla 2) Denklemin katsayılarını oku a,b,c 3) Diskriminant = b x b – 4 x a x c 4) Eğer Diskriminant < 0 ise Yaz “kökler sanal” Git 9 5) K = Karekök(Diskriminant) 6) X1 = (-b + K) /(2 x a) 7) X2 = (-b - K) / (2 x a) 8) Yaz X1, X2 9) Dur Akış Şeması E H BAŞLA a,b,c D = b x b - 4 x a x c D < 0 ? Kökler Sanal X1 = (-b+D1/2)/(2 x a) X2 = (-b-D 1/2)/(2 x a) X1, X2 DUR 11 Örnek-10 : İlk 7 terim ,için fibonacci sayılarını bulan algoritma ve akış şemasını hazırlayınız. Algoritması 1) Başla 2) A1 = 1 3) A2 = 2 4) I = 3 5) Yaz A1 6) Yaz A2 7) Eğer I > 7 ise Git 14 8) A3 = A1 + A2 9) Yaz A3 10) A1 = A2 11) A2 = A3 12) I = I + 1 13) Git 5 14) Dur Akış Şeması BAŞLA A1=1, A2=2 A1, A2 yaz I: 3,7,1 A3=A1+A2 A3 A1=A2, A2=A3 I DUR 12 Örnek-11 : 10 tabanında verilen bir sayıyı 2 tabanına çeviren algoritmayı yazınız. Algoritması 1) Başla 2) Oku sayi 3) I = 1 4) Eğer sayi = 0 ise Git 12 5) Bolum = sayi / 2 6) Kalan = sayi – Bolum x 2 7) A[I] = Kalan 8) Yaz I, Bolum, Kalan 9) sayi = Bolum 10) I = I + 1 11) Git 4 12) k = I dan 1 e kadar döngü 13) Yaz A[I] 14) Döngü sonu k 15) Dur Örnek-12 : Klavyeden girilen 10 sayıyı sıralayan algoritmayı yazınız. Algoritması 1) Başla 2) I = 1”den 10”a kadar döngü Oku A[I] Yaz A[I] 3) Döngü sonu I 4) I = 1”den 9”a kadar döngü 5) J = 1 + 1”den 10”a kadar döngü 6) Eğer A[I] > a[J] ise Ara = A[I] A[I] = A[J] A[J] = Ara 7) Döngü sonu J, I 8) I = 1„den 10‟a kadar döngü 9) Yaz A[I] 10) Döngü sonu I 11) Dur