Merhabalar dostlar bugün sizlere ALGORİTMA konusunu anlatacağım uygulamalı olarak . Konu bitiminde aklınızda herhangi bir soru işareti kalırsa ö.m yolu ile dilediğiniz gibi bana ulaşabilirsiniz .
ALGORİTMA
Programlamanın temelinde çalışma akışını , izlenecek yolları belirleyen algoritmalar vardır . Bir iş yapılmaya başlanmadan önce nasıl planlanıyorsa , kodlamaya başlamadan/geçilmeden önce de bir çalışma planı belirlenmelidir . Yazılımlar , bu planda yazılan kodları belirli bir sıra ile okur ve işler . Dolayısıyla algoritma çok iyi kurmak gerekir . Kurulan algoritmalar akış diyagramlarına ile görsel zenginlik kazanırlar .
Bu yazıyı okuduktan sonra :1) Algoritma kurmayı öğrenecek
2) Akış diyagramları ile algoritmaları görsel olarak elde edebileceksiniz .
Algoritma Nedir Ne Değildir ?
Algoritma , bir programın hangi yolları izleyeceğini gösteren çalışma mantığıdır . Algoritma bir programlama dili değildir . Programlama dillerine yol gösteren yöntem dizisidir . Her dilde kodlama için algoritma uygalanır/uygulanabilinir . Mesela bir oyunu başlatırken ki gördüğümüz ana ekran ardından oyunun gelmesi bir algoritma işidir .
Algoritma yazarken uygulamanın çalışması için kullanılan kaynakların , yapılması gereken kontrollerin veya işlemlerin açıkça ifade edilmesi gerekir . Ayrıca tam destekli bir algoritmanın bütün ihtimalleri göz önünde bulundurarak kontrol edip istenmeyen durumlarda ne yapılması gerektiğini belirlemesi gerekir .
!!! Örneğin bir öğrenci uygulamasında öğrenci puanları algoritması çıkarılır . Öğrenci seçildikten sonra , kullanıcıdan puanı değerinde okulları seçmesi istenir . Uygulama yazılırken , bu değerin int veri tipinden olacağına karar verildiği düşünülürse ; kullanıcının girdiği okulun puanı değişkene atanmadan önce kontrol edilmelidir . Eğer int veri tipinin tutmayacağı bir değer girilmişse ( yani öğrencinin puanının yetmediği bir okul seçilmiş ise ), çalışma anında uygulamanın beklenmedik bir şekilde durduğu ya da istenmeyen sonuçların üretildiği gözlemlenir . Ayrıca sistemin verdiği hata kullanıcının anlayamayacağı bir mesaj içeriği için , uygulamanın imajını da kötü yönde etkiler .
Veri Girişi
Çalışma zamanında çoğu zaman , işleyişin tamamlanması için dışarıdan bir bilgi girilmesi gerekir. Algoritmanın çalışması için ihtiyaç duyduğu veriler , işlemi başlatan kişiden veya belirtilen bir kaynaktan alınabilir . Bu bilgiler sağlanmadan işlem devam etmez .
Kararlar
Karar ve kontrol yapıları algoritmanın akışını yönlendiren en önemli kavramlardır . Girilen veya işlem sonucunda elde edilen veriler , işlemin amacına göre kontrol edilir ve sonucuna göre algoritma akışı istenilen yere yönlendirilir .
İşlemler
Algoritmanın akışı boyunca veriler üzerinde değişiklikler , yeni değer atamaları gibi işlemlere ihtiyaç duyulur . Algoritmalar kurulurken , yapılan işlemlerin yalın halde tek tek yazılması okunabilirliği arttırır .
Algoritmalar adım sırası ile çalışır ve karar yapıları sonucunda farklı bir yere yönlendirilmediği müddetçe , bir sonraki adım ile işlemeye devam eder .
Bunların sonucunda örnek olarak bir tane yapalım : Atm'den para havale etmek
1- Bankana ait Atm'ye git
2- Kredi Kartını çıkart
3- Sırada kaç kişi olduğuna bak
4- Kişi sayısı 2'den fazla ise 3'e dön
5- Kişi sayısı 2'den az ise sıraya geç
6- Sıra yok ise ATM'ye geç
7- Kredi Kartını çıkart
8- Kartla müşteri menüsüne giriş yaptıktan hemen sonra para gönderme yahut para transferi seçeneğini bulunuz.
9- Ardından, banka hesabına seçeneğini bularak gerekli bilgileri, istenenleri doldurunuz. Muhtemelen sizden hesap numarası yahut IBAN ve elbette T.C. Kimlik numarası istenecektir.
10- Sonrasında işlemi onaylayarak hesabınızdan, havale gerçekleştirmeniz mümkün.
2- Kredi Kartını çıkart
3- Sırada kaç kişi olduğuna bak
4- Kişi sayısı 2'den fazla ise 3'e dön
5- Kişi sayısı 2'den az ise sıraya geç
6- Sıra yok ise ATM'ye geç
7- Kredi Kartını çıkart
8- Kartla müşteri menüsüne giriş yaptıktan hemen sonra para gönderme yahut para transferi seçeneğini bulunuz.
9- Ardından, banka hesabına seçeneğini bularak gerekli bilgileri, istenenleri doldurunuz. Muhtemelen sizden hesap numarası yahut IBAN ve elbette T.C. Kimlik numarası istenecektir.
10- Sonrasında işlemi onaylayarak hesabınızdan, havale gerçekleştirmeniz mümkün.
Bu algoritmanın işlemesi için , her ihtimal ( benim örneğim de her ihtimal olmayabilir :mahcup:mahcup ) gözden geçirilerek , algoritma akışı gerekli yerlere yönlendirilir . Örneğin Sıra yok ATM'ye geç komutunda ATM'ye geçmek için gerekli komutlar verilmelidir . Bu algoritmanın ihtiyaç duyduğu veriler , ya kullanıcı tarafından verilir ya da işlem başlamadan önce belirlidir . Sıradaki kişi sayısı , atm kartı gibi veriler kullanıcı tarafından sağlanmış ; havale yapacağınız kişi önceden belirlenmiştir .
Akış Diyagramı
Madde madde yazılan algoritmaların okunması kolaydır ancak işleyişin bütünün görmek çoğu zaman mümkün değildir . Akış diyagramları , algoritmaları görsel biçimde göstermeyi , dolayısıyla daha anlaşılır hale getirmeyi sağlar . Algoritmada yapılacak işlemlerin çeşitlerine göre çeşitli semboller kullanılır .
Başla-Bitir
Algoritmanın hangi aşamadan başlayacağını ve ne zaman bitireceğini gösteren sembolüdür . Bir algoritmayı temsil eden akış diyagramında , bir tane Başla ve bir tane Bitir sembolü olmalıdır .
Veri Girişi
Kullanıcıdan veya başka bir kaynaktan alınan verilerin isimleri tutar .
Kullanıcıdan veya başka bir kaynaktan alınan verilerin isimleri tutar .
Karar Verme
Karar yapısını belirten semboldür . Üstünde koşul ifadesi belirtilir.
Veri Tabanı
Veri tabanında okuma yazma işlemi yapıldığını gösterir .
Ekran
Üzerinde yazılan yazının bilgi olarak ekranda görüneceğini belirtir.
Printer
Üzerinde yazılan yazının yazıcıdan çıkarılacağını belirtir .
İşlem
Bir işlem yapılacağını belirten semboldür. Her işlem için ayrı bir fonksiyon sembolü kullanılması , akış diyagramını daha anlaşılır kılar .
Fonksiyon
İşlem sembolüne yazılamayacak büyüklükte işlemler , alt işlem olarak bu sembolle belirtilir .
Karar yapısını belirten semboldür . Üstünde koşul ifadesi belirtilir.
Veri Tabanı
Veri tabanında okuma yazma işlemi yapıldığını gösterir .
Ekran
Üzerinde yazılan yazının bilgi olarak ekranda görüneceğini belirtir.
Printer
Üzerinde yazılan yazının yazıcıdan çıkarılacağını belirtir .
İşlem
Bir işlem yapılacağını belirten semboldür. Her işlem için ayrı bir fonksiyon sembolü kullanılması , akış diyagramını daha anlaşılır kılar .
Fonksiyon
İşlem sembolüne yazılamayacak büyüklükte işlemler , alt işlem olarak bu sembolle belirtilir .
UYGULAMA
Üniversite Eğitim Notunu Hesaplama
Üniversitede bir dersin başarı notu , genelde bir vize ve bir final notu ile hesaplanır . Vize notunun katsayısı finalden daha düşüktür . Sonuçta çıkan not 50 ve üstüyse öğrenci geçer , 50 altıysa öğrenci kalır . Bu örnek vizenin %30 ve finalin %70 ağırlıklı olduğu başarı notunun hesaplanmasını akış diyagramı ile gösterilir .
1. Notu hesaplanacak öğrencinin numarası kullanıcıdan alınır .
2. Veritabanından öğrencinin vize ve final notları çekilir .
3. Eğer final notu 28 veya daha düşükse öğrenci kalır ve 9. etaba gidilir . Bu durumda vize notu 100 olsa dahi , sonuç olarak toplanan not 50 altında olur . Dolayısıyla öğrencinin kalması kesinleşir . Böyle bir kontrol yapılması , gereksiz işlemlerin yapılmasını engeller .
4. Vize değişkenine veritabanından alınan vize notunun %30'u atanır .
5. Final değişkenine veritabanından alınan vize notunun %70'i atanır .
6. Sonuç değişkenine final ve vize değerlerinin toplamı atanır .
7. Sonuç değerinin 50'den büyük olup olmadığı kontrol edilir .
8. Sonuç 50'den büyükse ekrana " Geçtiniz " yazan bir mesaj çıkartılır . Algoritma kapanır .
9. Sonuç 50'den küçükse ekrana " Kaldınız " yazan bir mesaj çıkartılır .
Son düzenleme: