Merhaba arkadaşlar bu yazımda sizlerle algoritma ve
programlama temeli hakkındaki bilgilerimi paylaşacağım.
Öncelikle algoritma tanımı ile başlayalım.
Algoritma : Bir
problemi çözüme kavuşturmak için kullanılan sıralı , mantıksal adımların bütünüdür.
Çeşitli dillerde yazılabilir. Algoritma yazarken dikkat
edilmesi gereken bazı hususlar vardır.
· * Her adım belirleyici olmalıdır.
· * Mutlaka sonlandırılmalıdır.
· * En önemli özellik olarak ta karşılaşılabilecek
tüm durumlar göz önüne alınarak oluşturulmalıdır.
Algoritma kelimesi Türk Matematikçi olan El-Harezmi’nin
isminden türemiştir.
Algoritma bir çok dille ifade edilebilir bir kavramdır.
Genel olarak ortak kullanılan “pseudo code
(sahte kod)” ile ifade edilir.
Programlama dilini de tanımlayacak olursak bir problemin
algoritmik çözümününün bilgisayar ortamında olmasını sağlayan belirli kurallar
dizisidir.
Genel tanımlamaları
kısa tutup örnekler vermenin daha yararlı olacağını düşünüyorum.
Genel anlamda açıklayıcı bir örnekle başlayalım.
Örnek:
1. Pastanın yapımı için gerekli
malzemeleri hazırla
2. Yağı bir kaba koy
3. Şekeri aynı kaba yağın üzerine koy
4. Yağ ve şekeri çırp
5. Karışımın üzerine yumurtayı kır
6. Tekrar çırp
7. Kıvama geldi mi diye kontrol et
8. a. Kıvamlı ise 9. adıma devam et b.
Değilse 6. adıma dön.
9. Karışıma un koy
10.Karışıma vanilya, kabartma tozu vb.
koy
11.Karışımı Kıvama gelinceye kadar çırp
12.Pastayı Kek kalıbına koy
13.Yeteri kadar ısınan fırına pastayı
koy
14.Pişimi diye kontrol et
15. a. Pişmiş ise 16. adıma devam et b.
Değilse 14. adıma dön
16.Keki fırından çıkart
17.Fırını kapat
18.Kekin ı kapat
19.Kekin soğumasını bekle
20.Keki servis edebilirsin.
Örnekten de anlayabileceğimiz gibi aslında hepimiz yaşantımızda
bazı çözümler yaparken bir algoritma oluşturup uygulamış oluruz.
“Matematik Hayattır. “ sözüne istinaden algoritmalar
oluşturulurken temelinde matematiksel işlemler çok büyük önem taşır.
Örnek : : Bir
marangoz atölyesinde 4 tür sandalye üretilmektedir. Her sandalye türünden kaçar
tane üretildiğini bulan bir algoritma yazalım. (Her bir sandalye türünü T1,T2,T3 ve T4 ile gösterelim.)
A1: Başla.
A2: T1, T2, T3 ve T4 ün başlangıç değerleri sıfır al.
A3: Üretilen sandalye türünü öğren.
A4: Eğer tür T1 ise T1 in değerini 1 arttır ve sonucu T1
e ata ve A8 e git.
A5: Eğer tür T2 ise T2 in değerini 1 arttır ve sonucu T2
ye ata ve A8 e git.
A6: Eğer tür T3 ise T3 in değerini 1 arttır ve sonucu T3
e ata veA8 e git.
A7: Eğer tür T4 ise T4 in değerini 1 arttır ve sonucu T4
e ata ve A8 e git.
A8: Başka sandalye üretildimi öğren. (Evet veya Hayır
yanıtını belirtiniz)
A9: Yanıtınız Evet ise A11 e git.
A10:Yanıtınız
Hayır ise A12 ye git.
A11:A3 e git.
A12: T1,T2,T3 ve T4 değerlerini belirt.
A13: Dur.
Tabii ki algoritmalar çok daha zor ve karmaşık problemlerin çözümünde
kullanılırlar. Benim amacım sizlere basit bilgiler vermekten çok anlaşılır
örnekler verebilmek.
Örnek :
** Verilen
bir k pozitif tamsayısına kadar olan tüm tamsayılar için
·
T(k)=k²-3k+5/4 ifadesini hesaplayan,
·
T(k)>25 lerin toplamını bulan,
·
Negatif T(k)ların ortalamasını bulan algoritmayı yazın.
Print ‘pozitif bir tamsayı öğren’
read k
i = 0 , top = 0, topneg = 0, sn = 0
basla: i= i+1
T=i*i-3*i+5/4
If T>25 Then
top=top+T
Endif
If T<0
Then topneg =topneg+T
Sn=sn+1
Endif
If i<k
then go to basla
Print
‘T(k)>25 lerin toplamı’,top
Print
‘T(k)<0 ların ortalaması’, topneg/sn
End
Yukarıda verilen
bir fonksiyona göre istenilen yargıların sonuçlarını bulduran bir algoritma
yazdım.
Algortimalar
konusu çok derin detaylı bir konu olduğundan çok fazla detayına girmek
istemiyorum. Birkaç algoritma örneği daha verip yazımı bitiriyorum.
Örnek : Klavyeden girilen bir N
değerine kadar Fibonacci Dizisi bulan algoritma.
A1 : Başla
A2 : A=1
A3 : B=1
A4 : A,B yaz
A5 : C=A+B
A6 :EĞER C>N ise A11 e git.
A7 : C yaz
A8 : A=B
A9 : B=C
A10 : A5 e
git.
A11:
Bitir.
Örnek : Girilen bir sayının asal sayı olduğunu
bulduran program.
A1 : Başla
A2 : A
sayısını giriniz.
A3 : t=2
A4 : Amod
t = 0 ise “Sayı asal değildir” Aksi halde “sayı asaldır.”
A5 : t=
t+1
A6 : Eğer
t < TAM(A/2) ise A4 e git.
A7 :
Bitir.
Örnek : Girilen sayının faktöriyelini bulan
program.
A1 : Başla
A2 : A
sayısını giriniz
A3 : i =1
, fak =1
A4 : Eğer
i = A ise A8 e git.
A5 : fak =
fak*i
A6 : i =
i+1
A7 : A4 e
git.
A8 : “fak
değeri sayının faktöriyelidir.”
A9 :
Bitir.
İlerleyen zamanlarda algoritma ve karmaşıklıklar konuları hakkında da yazmaya çalışacağım Umarım faydalı olmuştur.
Hiç yorum yok:
Yorum Gönder