Algoritma //K3YL0CK3R

K3YL0CK3R

Katılımcı Üye
24 Eyl 2016
594
0
24
Ankara
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

PDQJRQ.png


2- Kredi Kartını çıkart

5yY14L.png


3- Sırada kaç kişi olduğuna bak

r1EoQ3.png


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 .

lZE6dB.png

Veri Girişi

Kullanıcıdan veya başka bir kaynaktan alınan verilerin isimleri tutar .

Y647Nj.png


Karar Verme

Karar yapısını belirten semboldür . Üstünde koşul ifadesi belirtilir.

3zAnM2.png


Veri Tabanı

Veri tabanında okuma yazma işlemi yapıldığını gösterir .

pnEpkm.png


Ekran

Üzerinde yazılan yazının bilgi olarak ekranda görüneceğini belirtir.

7DArrN.png


Printer

Üzerinde yazılan yazının yazıcıdan çıkarılacağını belirtir .

RDQlN6.png


İş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 .

WDbLa2.png


Fonksiyon

İşlem sembolüne yazılamayacak büyüklükte işlemler , alt işlem olarak bu sembolle belirtilir .

yqVrJy.png

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 .

LDQqPz.png
 
Son düzenleme:

PikseL

Yeni üye
30 Haz 2018
12
0
İzmir
Eline sağlık,atm örneğin güzel olmuş diper örnekleri de farklı bir bakış açısından vermişsin hoş olmuş
 

K3YL0CK3R

Katılımcı Üye
24 Eyl 2016
594
0
24
Ankara
eline sağlık bide tht kredi kartını nerden alabilirim
Henüz satışlar başlamadı :) Teşekkürler güzel yorumunuz için ayrıca ..

Ellerine Sağlık :}
Teşekkürler

Teşekkürler

Ellerine Sağlik Bu Tür Kaliteli Konularin Devamini Bekliyoruz..
Sağolasın dostum .. İnşallah

Eline sağlık,atm örneğin güzel olmuş diper örnekleri de farklı bir bakış açısından vermişsin hoş olmuş
Teşekkürler :)
 

ENİGMA1

Uzman üye
31 Ocak 2016
1,961
39
Bilmeyenler için yararlı bir konu olmuş. flowchart programı ile daha detaylı akış diyagramları çizerek anlatabilirsiniz bilmeyen kullanıcılar için pekiştirmiş olursunuz. bir dahaki konuda beklerim hocam :)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.