Algoritmaya Giriş


Bilgisayar Nedir ?

Çok sayıda aritmetiksel veya mantıksal işlemlerden oluşan bir işi, önceden verilmiş bir programa göre yapıp sonuçlandıran elektronik araç. -TDK

Doğru verileri alırsa hatasız ve hızlı problemlerimizi çözebilecek bir araç.

Bilgisayarlarla İletişim

Programlama ve haberleşmede, bir bit bilgi depolama ve haberleşme veya bağlantının en küçük ve temel ünitesidir. Bir cihaz ya da fiziksel bir sistem tarafından depolanabilecek bilginin maksimum değeri normal olarak sadece 2 farklı şekilde bulunabilir. Bu durumlar genellikle (özellikle numerik veride) ikili sayılar 0 ve 1 olarak yorumlanır. Ayrıca mantıksal değerler logical values , doğru ya da yanlış, flag ya da switch, on ya da off olarak yorumlanabilir.

Mantıksal değerlerin elektronikteki karşılıkları ise 0 için 0 Volt(aslında sıfıra çok yakın bir gerilimdir.), 1 için de 5 Volt olarak tanımlıdır.

Teoride, bir bit genel anlamda ikili rastgele değişken belirsizliği (eşit ihtimallerle 0 ya da 1)olarak nitelendirilebilir. - Wikipedia

Matematikte ki ikili sayı sistemini bu teoriye uygular ve tekrarlarsak bilgisayarlara düzenli olarak veri alışverişi yapabiliriz.

İkili Sayı Sistemi ve İletişim

İkili sayılar sayıların 2 tabanında yazılmasıyla elde edilir. Dolayısıyla tüm sayılar 0 ve 1 rakamları kullanılarak ifade edilirler. Elektronik devrelerindeki kolay uygulanabilmeleri nedeniyle günümüz bilgisayarlarının neredeyse tamamında kullanılırlar.

İkili kod (İngilizce: Binary code), metinlerin ya da bilgisayar işletim yapısının ikili rakam sistemi 0 ve 1 kullanılarak gösterilmesidir. Bu işlem her özel sembole ya da yapıya bir bit dizgisinin atanmasıyla yapılır. Örnek olarak, 8 haneden oluşan İkili Kod dizgisi 256 farklı değer alır dolayısıyla bu değerler çeşitli varyasyonlarda sembollere, harflere ya da yapılara denk gelir.

İkili kod sistemindeki 0 ve 1'lerin her biri 1 bit değerindedir ve 8 haneli değerler 8 bit yani 1 byte'a denk gelir.

ASCII (İngilizce: American Standard Code for Information Interchange, Türkçe: Bilgi Değişimi İçin Amerikan Standart Kodlama Sistemi) Latin alfabesi üzerine kurulu 7 bitlik bir karakter kümesidir. İlk kez 1963 yılında ANSI tarafından standart olarak sunulmuştur. Wikipedia

Byte Kavramı

Programlama billimlerinde genellikle 8 bitlik dizilimler boyunca sadece 1 ve 0 değerleri alan ve kaydeden bir bellek ölçüm birimi.

8 bit = 1 byte (Türkçede: bayt)

İkinci en küçük sayısal bilgisayar birimi olan byte 0 ile 255 arasında ki değerleri alabilir. Yani 2 üssü 8'dir

63 sayısı ikilik düzlemde : 00111111

Descartes'ın Problem Çözme Bakış Açısı

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. Descartes’in "Discourse on Method" isimli kitabında problem çözme teknikleri şu dört madde ile özetlenir:

Doğruluğu kesin olarak kanıtlanmadıkça, hiçbir şeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının.

Karşılaştığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün.

Düzenli bir biçimde düşünün; anlaşılması en kolay olan şeylerle başlayıp yavaş yavaş daha zor ve karmaşık olanlara doğru ilerleyiniz.

Olaya bakışınız çok genel, hazırladığınız ayrıntılı liste ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olsun.

Problem Çözme Sırası

  1. Problemi anlama(Understanding,Analyzing),
  2. Bir çözüm yolu geliştirme(Designing),
  3. Algoritma ve program yazma(Writing)
  4. Tekrar tekrar test etme (Reviewing) Polya,George (1957) 'How to solve it'

Algoritma Nedir?

Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne algoritma denir veya belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisi.

  • Algoritmanın her adımı belirleyici olmalı hiç bir şey şansa bağlı olmamalı.
  • Algoritmalar karşımıza çıkacak bütün ihtimalleri hesaba katacak kadar genel olmalı
  • Algoritmalar bir sonuca ulaşmalı - sonlanmalı

Algoritmanın etkin bir şekilde oluşturulması program yazma adımından daha önemlidir.

Hazırlanan algoritmanın programla diliyle yazılması işin basit kısmıdir

Tasarladığınız algoritma iyi değilse, kullandığınız dilin hiç bir önemi yoktur.

Algoritmaların Genel Özellikleri

Giriş-Çıkış Bilgisi

Her algoritmada giriş ve çıkış bilgisi olmalıdır. Giriş bilgileri kabaca dışarıdan gelen bilgiler, çıkış bilgiler ise bu verilerin algoritmada işlenip çıkan sonuçlara verilen isimdir. Algoritmanın temel amacı giriş bilgilerini işleyerek bir çıkış bilgisi verme prensibi üzerine oluşturulur. Çıkış bilgisi her zaman problemin sonucunu, istenenleri tam olarak karşılamıyor olabilir. Böyle durumlarda bir algoritmanın çıkış bilgisi bir diğeri için giriş bilgisi olarak değerlendirilebilir.

Sonluluk

Algoritma belirli yada belirsiz adımda bitmelidir yani bir sonu olması gerekmedir. Eğer algoritma sonsuz döngüye girerse bir sonu olmadığı için çıkış bilgisine ulaşamayız.

Kesinlik

Algoritmanın her adımı anlaşılır ve kesin bir biçimde ifade edilmiş olmalıdır. Yorum gerektirmemeli veya belirsizlik söz konusu olmamalıdır. Eğer 1 defa bile farklı sonuç veren bir algoritmamız varsa o algoritma içerisinde bütün olasılıklar hesaba katılmamış olabilir.

Etkinlik

Oluşturulan algoritmalar gereksiz tekrarlardan uzak problemin çözümüne yönelik bir amaç üzerine kurulmalıdır. Bazı algoritmalar genel amaçlı yazılıp yapısal bir ana algoritma ve alt algoritmalardan oluşturulmalıdır. Böylece daha önceden yazılmış bir algoritma daha sonra başka bir iş için kullanılabilir.

Performans Değerlendirme

Algoritmanın performans kriterlerini(çalışma süresi,donanımsal gereksinimler) dikkate alarak yüksek başarımlı programlar yazılmalı ve performans değerlendirirken bazı temek kriterlere önem verilmelidir.

  • Birim işlem zamanı
  • Veri arama ve getirme zamanı
  • Kıyaslama zamanı
  • Aktarma zamanı

results matching ""

    No results matching ""