1. Reklam


    1. joysro
      ledas
      jungler
      keasro
      zeus
      karantina

Algoritma Geniş Anlatım


  1. Defearius

    Defearius Gözlemliyorum rank8

    Kayıt:
    23 Ekim 2010
    Mesajlar:
    61
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    Lejyoner.
    Şehir:
    T.C. İST ^^
    Algoritma

    İnsanlar her zaman düşünür ve problem çözerler. Birçok problem, az ya da hiç
    düşünülmeden çözülebilir.

    Her gün evden çıkarken ne giyilmelidir?
    Bunun için muhtemelen pencereden dışarıya bakılır.
    Hava yağmurlu ise mevsim gereklerine göre giyinmenin yanı sıra dışarıya çıkarken bir de
    şemsiye alınması gerekir. Hava güneşli ve sıcak ise o takdirde daha ince giyinilerek dışarıya
    çıkılır.
    Böylece problemin çözümü kendiliğinden oluşturulan bir kararla sağlanır.
    Yukarıdaki basit örnekte yapılan iş, önce problemin belirlenmesi ve sonra problemin
    tanımından yola çıkarak çözüm için değişik alternatiflerin değerlendirilmesidir.
    Bilgisayar programlaması sırasında izlenebilecek birçok yol ve yöntem vardır. Bilgisayar
    programcısının probleme ilişkin çözümü ortaya çıkarabilmesi için problem çözümü ile ilgili
    bilgileri bilmesi gerekir. Bilgisayar programlamasında genel olarak belirli kalıp ve kurallara
    uyulur. Bir bilgisayar yazılımının olusturulması sırasında asağıda sıralanan ana adımlara
    uyulur.

    1-Problemin tanımı
    2-Çözüm yönteminin belirlenmesi
    3-Programın kodlanması
    4-Programın çalışır duruma getirilmesi
    5-Belgeleme ve güncelleştirme


    Problemin tanımı: Problemin normal yazı diliyle tanımlanması işlemlerini
    kapsamaktadır. Problem çözümüne ilişkin iyi bir program yapabilmek için, problemin iyi bir
    şekilde tanımlanması gerekir.

    Çözüm Yönteminin Belirlenmesi: Bu adımda çözümün genel yaklaşımı, temel
    giriş/çıkışlar belirlenir.

    Programın kodlanması: Program ayrıntılı olarak tanımlanıp çözüm yolları açıkca
    belirtildikten sonra program kodlama calışmalarına başlanabilir.

    Programın çalışır Hale Getirilmesi: Programın kodlanması sırasında yapılan imla hataları,
    kodlama ve mantık hatalarının giderilmesi işlemlerini kapsar. İyi bir bilgisayar programının
    doğruluğundan emin olmak için defalarca test edilmiş olması gerekmektedir.

    Belgeleme ve güncellestirme:
    Oluşturulan bir yazılımı, sadece o yazılımı geliştiren
    kişilerin kullanabilmesi gibi bir kısıtlamanın önüne geçmek için ayrıntılı referanslar
    hazırlanmalı ve programla ilgili bilgiler verilmelidir.
    Bir yazılımda, o yazılımı kullanan kişi veya kuruluşların yeni gereksinimleri ve değişen
    koşullar nedeniyle değişiklikler yapılması gerekli olabilir. İyi bir programda bulunması gereken özellikler arasında güncelleşebilme ön sıralarda yer almaktadır.


    Nedir bu bilgisayar programcılığı?

    Evet birçok kişi bilgisayar programcılarının ne ile uğrastığını bilir fakat nasıl uğrasıp neler yaptığını pek bilmez. Önce bilgisayar dünyasında sıkca kullanılan bir kelimeden bahsedelim “yazılım”. Yazılım (software) kelimesi bilgisayar programlama dilleriyle oluşturulan dökümanları, dosyaları ifade eder. Yani bilgisayarınızda işletilmek, calıştırılmak üzere tasarlanmış dosyalar yazılım kapsamına girer. Yazılım programlama dilleri ile tasarlanır ve yazılır. Programlama dilleri, bilgisayarınızın donanımını (ekran kartı,ses kartı,modem...) sizin en rahat biçimde kullanabileceğiniz düzeye getirmeye calışır. Yani bilgisayarın o soğuk 1100110 gibi rakamlarını sizin zevkle kullandığınız programlara, işletim sistemlerine çevirir.
    Örneğin kullanılmakta olan işletim sistemi onbinlerce sayfadan, milyonlarca bilgisayar kodunun bir araya gelmesinden oluşur. İşin tüm zorluğu, o kodların arasında dolaşan, hata mesajlarını günlerce o kodları gözden geçirerek arayan, sandalye tepesinde saatlerce aynı ekrana bakarak ilginç görüntüler sergileyen programcıların üzerindedir. Bilgisayar programcıları işini zevkle yapan ve işini bir hobi edinmiş insanlardan oluşur. Aksi halde yoğun konsantrasyon ve sabır isteyen bu işi yapmak aşırı zorlaşır. Programlama dilleri kendi aralarında sınıflara ayrılmışlardır. İnsanın en zor öğrenebileceği, anlayabileceği yani 1100110 gibi makina kodlarına yakın diller en alt seviyeli programlama dilleri, insanın en kolay anlayıp kullanabileceği ve insan diline yakın özellikler gosteren diller ise en yuksek seviyeli programlama dilleridir.

    1- Çok yüksek seviyeli diller: VisualBasic, Acces, Foxpro vb.
    2- Yüksek seviyeli diller: Pascal,Basic,Fortran vb.
    3- Orta seviyeli diller: C,C++,ADA vb.
    4- Düşük seviyeli diller: Assembly.
    5- Makina dilleri: Bilgisayarın çalısma dilleri 1 ve 0’lardan olusur.

    Bu dillerin kullanıldığı alanlara ornek verirsek;

    1- Bilim ve Muhendislikte: Pascal,C,C++,Fortran vb.
    2- Veritabanı Programcılığında: Dbase,Acces,Foxpro,Sql vb.
    3- Yapay Zeka Kullanımında: Prolog,Lisp vb.
    4- Sistem Programcılığında: C,C++ ve sembolik makina dilleri.


    Bir bilgisayar programı nasıl yazılır?

    Bir yazılım değişik dillerle oluşturulabilir fakat izlenen yöntemler genelde birbirine benzer. Örneğin Algoritma, elimizdeki sorunun çözümüne gidebilmek için tasarlanan yollar, yöntemlerdir.
    Bilgisayar programlama dilleri de programcılıkta bunun gibi yöntemler kullanarak çözüme gider. Algoritmanın uzunluğu kullanılan programlama dilinin seviyesi ve problemin karmasıklığı ile doğru orantılıdır. Yapılan algoritma ve tasarımdan sonra yazılım aşamasına gelinir ve bu aşamada yapılacak programın kullanım ömrü, programın kullanım düzeyi ve hangi amaçla kullanılacağı gibi soruların cevaplarına bakılarak programlama dili seçilir. Dil secimi bazı kriterlere göre yapılmaktadır, orneğin kısa surmesi ve görsel tasarım içermesi, veritabanı iletişimi yoğun kullanılması gereken bir program yapmamız gerekiyor olsun. Bu durumda Assembly dili ile yola çıktığımızda bahsedilen proje birkaç kişilik deneyimli bir programcı grubu ile birkaç yıl alır. C ile iki programcı aynı işi üç dört ayda VisualBasic veya Delphi ile bir programcı bahsedilen işi bir iki aya yakın bir sürede yapabilir. Başka bir açıdan örnek verirsek bir ekran kartı programlamamız gerekiyor ve bu kartın driver’ını ( surucusunu ) biz yazacağız. Bu durumda bu işi VisualBasic veya Delphi ile yapmamız imkansızdır, kullanmamız gereken diller öncelikle Assembly ve C/C++ olmalıdır. Evet, programlama dillerinin kendi alanları vardır ve her dil kendi alanında kullanıldığı sürece başarılı ve etkili kullanılmış olur. Buraya kadar anlatılanı özetlersek:
    Bir bilgisayar programı yazmak için belli aşamalar vardır ve bu aşamalar geçildiğinde
    kodlamaya başlanabilir.


    Bunlar:
    1- Analiz
    2- Algoritma
    3- Dil Secimi
    4- Kodlama

    Analiz ile gerçekleştirilmek istenen proje tasarlanır ve parametreleri araştırılır. Algoritma ile adımlar tayin edilir. Dil seçimi ile en uygun programlama dili seçilir. Ve kodlamaya başlanır.





    Problem Çözme ve Algoritmalar

    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 ayrılmalıdır.

    2- Algoritmalar: Kısaca algoritma belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir. Geniş anlamda ise 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.
    M.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şudur.
    Her algoritma asağıdaki kriterleri sağlamalıdır.
    Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli.
    Çıktı: En azından bir değer üretilmeli.
    Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli.
    Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli.
    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 .

    PROGRAM YAZMA SÜRECİ
    · Problemin farkına varmak,
    · Problemi analiz etmek,
    · Çözüm yolları düşünmek,
    · İyi çözüm yolları seçip algoritma oluşturmak,
    · Akış diyagramı çizmek,
    · Uygun bir dilde kodlamak,
    · Programı test etmek,
    · Programı dağıtmak.


    Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.
    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.

    Algoritmik çözüm yöntemlerine ilk örneği günlük yaşantımızdan verelim.

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

    Çözüm:
    Evden dışarıya çık
    Otobüs durağına yürü
    Durakta gideceğin yöndeki otobusü bekle
    Otobusü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 yuru
    İş yeri giriş kapısından içeriye gir.

    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 calışılmıştır. Yukarıdaki algoritma kişinin otobusü kaçırma
    olasılığı düşünülmeden oluşturulmuştur. Kişi durağa geldiğinde bineceği otobusu kaçırmış ise
    algoritmamız asağıdaki sekilde değiştirilebilir.

    Çözüm:
    Evden dışarıya çık Otobüs durağına yürü
    Otobusün saati geçmiş?
    Durakta gideceğin yöndeki bir sonraki 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 yuru
    İş yeri giriş kapısından içeriye gir.

    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.

    Akış Diyagramları

    Geliştirilecek olan yazılımın genel yapısının şematik gösterimine akiş diyagramı adi verilir.
    Akiş 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 akiş 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 akiş 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.
    Akiş 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.​

    Saygılar,
    Defearius
     
  2. Warrison1

    Warrison1 Bilgiliyim rank8

    Kayıt:
    6 Eylül 2010
    Mesajlar:
    2.519
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    WebMaster Öğrenci
    Şehir:
    Seoul
    güzel paylasım. programı temelleri dersinin en sıkıcı konusudur ^^