Algoritma ve Akış Diyagramı Oluşturmak

Bilgisayar programlama dillerinden birisi olan C programlama dilinin PIC için geliştirilmiş sürümü CCS C dilidir. Kullanacağımız programın adı PIC C COMPLIER dir. Kullanacağımız mikroişlemciler PIC16F628A ve PIC16F877A dır.

C programlama dili basit yapısı ve kolay öğrenilmesi ile birçok alanda kullanılmaktadır. CCS C programlama dili ile mikro işlemcilerin giriş- çıkış kontrollerini kolayca ve kısa sürede yapabiliriz.

Program yapım aşamasında problemin (projenin) ne olduğunu tamamen anlamamız gerekir. Problemi veya projenin tanımını yaptıktan sonra giriş ve çıkış olarak kullanılacak elemanları belirleriz. Belirlenen elemanlara mikroişlemcinin uygun pinleri tayin edilir. Örneğin 1. Motor B portunun 2. Pinine bağlancak gibi, yada giriş olarak kullanılacaksa örneğin buton A portunun 1. Pinine bağlanacak gibi. Bu şekilde giriş – çıkış elemanları ve bağlandığı pinler kağıt üzerine not edilir. Not alma işleminde projenin yapılması için iki çözüm yolu uygulanır. Birincisi algoritma oluşturmadır. Algoritma oluşturmada projede kullanılacak elemanlar yazılır ve sırası ile hangi işlemlerin yapılacağı basitçe yazılır. Örneğin;

Bir LED lambanın 1 saniye yanıp 1 saniye sönmesini sürekli olarak yapan programın algoritmasını yazalım

  • Devreye enerjiyi ver
  • LED yansın
  • 1 saniye bekle
  • LED sönsün
  • 1 saniye bekle
  • işleme dön (işlemin sürekliliği sağlanır: program tekrar 1. Sıradan başlar) Yani: DÖNGÜ OLUŞTURULUR

Şimdide bu programın akış diyagramını yapalım

blink akış

Algoritma Nedir? ve Algoritma Çeşitleri

Algoritma genel anlamda matematiksel işlem olan mantık konusuna ait bir terim olarak tanımlanır. Tam olarak amacı ise yapılan bir işin doğru olarak yapılabilmesi için izlenmesi gereken adım sırasıdır. Aslında insanlar yaptıkları tüm işleri bir algoritma sırası ile mantıklı hale getirir. Eğer yapılan bir işte algoritmik sıra yok veya izlenmiyorsa yapılan işin sonu büyük bir ihtimalle iyi bitmeyecektir. Bundan dolayı eğer bir mühendislik veya matematik dalına ait bir meslek seçmişseniz dolaylı ya da dolaysız ilk göreceğiniz konulardan biri de algoritma ve algoritma çeşitleridir. Algoritma nedir? Sorusunun tam olarak cevaplanması için belki de bir örneği başvurulması en doğrusudur. Bundan dolayı aşağıdaki örneği incelemek sizin açınızdan önemli olacaktır.

Bir mühendislik çalışmasında yapılacak ilk işlem işin algoritmasını (işlem sırasını) çıkarmak olacaktır. Bu yüzden matematik mühendisliği gibi meslek gurupları ortaya çıkmıştır. Mühendislikte nasıl uygulandığını anlamak için şu örneği inceleyelim.

Öyle bir makine yapılacak ki start düğmesine basıldığında çalışacak, stop düğmesine basıldığında duracak ve bir insan makine alanında tehlikeli bir bölgeye girerse kendisini otomatik olarak durduracak.

İşte böyle bir uygulamada ilk önce işlem sırası oluşturulursa makine için gerekli malzemeler, nasıl çalışacağı, nasıl bir yol izlemesi gerekir gibi pek çok sorunu tespit edilir ve doğru işlemleri sırasıyla uygulanabilir. Aksi taktirde makine yapılırken sürekli yeni şeyler eklemek yada çıkarmak durumunda kalınabilir. Hatta bu süreç tüm işin baştan masa üstünde tartışılmasını gerektirebilir. Bu makinenin algoritmasını grafiksel olarak basitçe hazırlayalım.

makina örn akış

Yukarıda basit bir algoritma örneği verdikten sonra tekrardan yolumuza devam edelim.Algoritma sistemleri mühendislik alanında en çok yazılımcılar tarafından kullanılır. Eğer bir yazılım uygulamasına algoritma oluşturmadan başlarsanız yaptığınız işlemlerin bir çoğu boşa gidebilir ve saatlerinizi boş boşuna harcamış olursunuz. Artık bu kısımdan sonra algoritma temelleri ve algoritma örnekleri ile devam edeceğiz.

Programlamada Algoritma Temelleri

Eğer bir program geliştirmeye karar verdiyseniz başarılı bir başlangıç ve mutlu bir son için sırayla şu adımları izlemeniz en doğrusu olacaktır.

Değişkenleri Belirleme

Programın akışı için dışarıdan girdi olarak alınacak verilerin tamamını belirlemek gerekir. Bu sayede programın temelleri oluşturulmuş olur. Değişkenler programın çalışmasını etkileyen en temel bileşenlerdir. Bundan dolayı başarılı bir şekilde değişkenleri belirlemek oldukça önemlidir. Örneğin; ışık şiddeti, sıcaklık, sayaç, butona veya çıkışa verilen etiket v.b.

Algoritma Oluşturma

 Tüm değişkenleri belirledikten sonra yapılması gereken adım tabi ki de onları doğru şekilde sıralamak olmalıdır. Yapılacak olan işlemleri doğru bir şekilde sıralamak algoritma oluşturmak için yeterli olacaktır. Algoritma oluşturulurken basit ve  problemi en kısa yoldan çözüme ulaştırması için çalışılmalıdır.

Örnek: Telefon kulübesinden telefon açmak için örnek bir algoritma

  1. Telefon kulübesinegit
    2. Telefonkartı al
    3. Telefon sırasında kaç kişi olduğuna bak
    4. Kişi sayısı sıfırdan fazlaysa 3 e dön
    5. Kapı kapalıysa kapıyı aç
    6. İçeri gir, kapıyı kapat
    7. Telefon kartını telefona yerleştir
    8. Ahizeyi kaldır
    9. Numarayı çevir
    10. Konuşmanın bitip bitmediğine bak
    11. Konuşma bittiyse kartı al, bitmediyse 10 a dön
    12. Bir daha konuşma yapılacaksa 7 e dön
    13. Kapıyı aç, dışarı çık

Bu algoritmanın işlemesi için, her ihtimal gözden geçirilerek, algoritma akışı gerekli yerlere yönlendirilir. Örneğin kapının kapalı olması durumunda kapıyı açmak 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ı, telefon kartı gibi veriler kullanıcı tarafından sağlanmış; çevrilecek numara, algoritma başlamadan önce belirlenmiştir.

Akış Diyagramı

Yukarıda verilen makine örneğinde zaten bir akış diyagramı oluşturulmuştur. Akış diyagramı, yapılacak olan işin algoritması çıkarıldıktan sonra şema gurupları ile gösterilmesidir. Oluşturulan akış diyagramı ile karmaşık algoritmalar görselleştirildiği gibi mühendislikle pek ilişkisi olmayan insanlar içinde anlaşılır hale getirilir.

Akış Diyagramı Sembolleri

Akış diyagramı oluşturulurken kullanılan sembollerin standart geometrik şekilleri vardır. Bu şekiller yardımı ile işlemler anlaşılabilir. Aşağıda paylaştığım görselde akış diyagramı oluştururken kullanılan sembolleri görebilirsiniz.

algoritma sembol