Algoritma ve Programlama Mantığı-1


Selamlar, bu seride size algoritma tasarımının nasıl yapıldığına dair bilgiler vereceğim ve bunları C# programlama dilini kullanarak örneklendireceğim. Konuya giriş olması adına algoritmadan biraz bahsedelim.

Algoritma, bir problemi çözmek için gerekli olan sıralı, mantıksal adımların tümüne denir. Bir diğer deyişle algoritma, bir problemin çözümünün adımlarla ifade edilmesidir. Programlamanın temelinde algoritma yatar, hatta hayatımızda da sürekli fark etmesek de algoritmalar kullanırız. Örneğin birinin reşit olup olmadığını öğrenmek için öncelikle onun yaşını sorarız, yaşı 18’den küçükse reşit olmadığını, 18’e eşit veya büyükse reşit olduğunu anlarız. Bunu hızlıca yapmamıza rağmen adımlar halinde yaparız.

Algoritma, yapacağımız programın kodlarını yazmadan önce adımlar halinde yol haritası çıkarmamıza yarar.

Algoritmanın Özellikleri:

  • Sonlu çözüm adımları içermelidir.
  • Çözüm adımlarının anlaşılır yazılması gerekir.
  • Genellenebilir olmalıdır.

Problem çözümünde bazı adımlar vardır; analiz etme, olası çözümler elde etme, çözüm yollarının denenmesi ve en iyi çözüm yolunu seçmek.

Problem çözümlerinde izlenecek adımları oluşturmak için algoritma çeşitlerinden yararlanırız.

Problemimiz; birinin yaşını hesaplayarak reşit olup olmadığını bulmak olsun.

  • Sözde Kod ile ifade etme

Gündelik dille ifade ederek algoritma tasarımı yapabiliriz. Problemimizi bu yöntemle çözelim:

  1. Başla
  2. Bulunduğumuz yıldan kişinin doğum yılını çıkar.
  3. Çıkan sonuç 18’den küçükse ‘Reşit Değil’, 18’e eşit veya 18’den büyükse ‘Reşit’ yazdır.
  4. Bitir

Bunu matematiksel halde de yazıldığını görebilirsiniz, örneğin:

  1. Başla
  2. Bulunduğumuz yıl – kişinin doğum yılı
  3. Sonuç < 18 ise ‘Reşit Değil’, Sonuç ≥ 18 ise ‘Reşit’ yazdır.
  4. Bitir
  • Akış Diyagramları ile ifade etme

Akış diyagramlarındaki sembolleri Uluslararası Standardizasyon Örgütü (ISO) 1970 yılında kabul etti. Bu demek oluyor ki akış diyagramlarında kullanılan sembollerin anlamı tüm dünyada aynı. Algoritma şeması oluştururken herkes tarafından rahatça anlaşılması için akış diyagramlarını kullanmak akıllıca olur. Bu yüzden biz de bu seride problemleri akış diyagramıyla çözeceğiz. Akış diyagramlarında değişkenleri kullanacağız, kullanmadan önce onların ne anlama geldiğini yazacağız. Çözdüğümüz problemleri tablo ile kontrol edeceğiz.

Akış şemalarında kullanacağımız sembollerin anlamını öğrenmekle başlayalım;

  • Başla / Bitir

Açıklaması: Her akış şemasının bir başlangıç ve bitiş noktası vardır, bu sembol bunu belirtmemize yarıyor.

  • Girdi

Açıklaması: Akış şemasında bir veriyi kullanmak için öncelikle tanımlamamız gerekir, girdi sembolü ile akış şemasına giriş yapılacak veriyi tanıtıyoruz.

  • İşlem

Açıklaması: Adından da anlaşıldığı üzere işlem sembolünün içerisinde işlemler yapılır, değişkenler yeni değer alır veya değersizken değer kazanır. Diğer bir deyişle işlem ve atamalarda kullanılır.

  • Çıktı

Açıklaması: Genel olarak bitişten önce gelir, işlemlerden geçirdiğimiz değişkeni bilgisayara çıktı olarak yazdırmak için o değişkenin adını çıktı sembolünün içine yazarız.

  • Karar

Açıklaması: Karar sembolü koşul anlamına gelir, içine yazdığımız işleme göre bizi iki koldan birine götürür.

  • Döngü

Açıklaması: Akış şemasının belirli bir bölümünü birden fazla defa tekrar etmek için döngü sembolünü kullanırız.

  • Alt Akış Şeması

Açıklaması: Akış şemasının hacmini azaltmak, parçalara ayırmak amacıyla kullanırız. Akış şeması içerisinde kullandığımızda bu sembolün içerisine yazılan işlemin ayrı bir akış şeması vardır.

  • Bağlama

Açıklaması: Diğer akış şeması sembolleri arasında bağ kurarken, anlaşılır bir şekilde olması için kullanacağız.

  • Akış Yönü

Açıklaması: Akış şemasının yönünü ok sembolleriyle belirleriz. Genelde aşağıdan yukarı, soldan sağadır.

 

Şimdi başta belirlediğimiz problemi akış şeması yardımıyla çözelim.

Öncelikle değişkenlerimizi belirleyelim, sonra çözümleyelim.

Değişkenler:

dogum_yili: Bireyin doğduğu yılı temsil eder.

bulundugumuz_yil: Bulunduğumuz yılı temsil eder.

yas: Bireyin yaşını temsil eder.

 

 

Problemimizi akış şemasını kullanarak çözdük, her şey adım adım ve anlaşılır oldu. Tam anlamadıysanız yukarıda şekillerin anlamına bakıp tekrar şemayı incelerseniz size yardımı olacaktır. Bir programın kodlarını yazarken akış şemasındaki adımları izleyeceğiz.

Anlaşılmayan bir yer veya önerileriniz varsa halilcanulker@hotmail.com ‘a mail atabilirsiniz. Bir sonraki yazımda akış şemalarını nasıl test edebileceğimizi öğreneceğiz. İlerleyen günlerde de oluşturduğumuz akış şemalarının adımlarını izleyerek C# dilinde uygulayacağız. İyi günler diliyorum.

Algoritma ve Programlama Mantığı-1

Giriş Yap

Hoşgeldin
Don't have an account?
Kayıt Ol

Şifreni Yenile

Back to
Giriş Yap

Kayıt Ol

Ekimize Katılmaya Hazırmısın

Back to
Giriş Yap
Choose A Format
Personality quiz
Series of questions that intends to reveal something about the personality
Trivia quiz
Series of questions with right and wrong answers that intends to check knowledge
Poll
Voting to make decisions or determine opinions
Story
Formatted Text with Embeds and Visuals