Merhaba, iyi günler.
Bugün, kullanıcıların algoritmaları hem tasarlayıp hem de görselleştirebileceği; özellikle algoritma mantığını sembolik ve görsel bir biçimde modelleyerek, karmaşık yapıların anlaşılmasını kolaylaştıran ve teknik süreçlerin sade bir şekilde ifade edilmesine olanak tanıyan akış diyagramı tabanlı bir programlama aracı olan Flowgorithm hakkında notlarımı paylaşacağım.
Şimdiden iyi okumalar.
Makalede Neler Var ?
- 1. Flowgorithm’e Giriş: Algoritma Tasarımının Temel Taşı
- 2. Flowgorithm’in Kullanıcı Arayüzü ve Temel Bileşenleri
- Araçlar ve Kullanıcı Arayüzü
- Akış Diyagramı Bileşenleri
- a. Başlangıç ve Bitiş (Oval – Terminator)
- b. Giriş/Çıkış (Paralelkenar – Input/Output)
- c. İşlem (Dikdörtgen – Process)
- d. Karar (Elmas – Decision)
- e. Bağlantı (Daire – Connector)
- f. Döngü (Loop – Karar ve İşlem Bileşimi)
- g. Yorum Satırları (Comment)
- h. Oklar (Flowlines)
- 3. Algoritmaların Görsel Temsili ve Diyagramların Anlaşılması
- 4. Örnek Flowgorithm Algoritmaları
1. Flowgorithm’e Giriş: Algoritma Tasarımının Temel Taşı
Algoritma Nedir ve Neden Önemlidir?
Algoritma; belirli bir problemi çözmek veya bir amaca ulaşmak için, takip edilmesi gereken sonlu bir dizi adım veya işlemdir.
Bu işlem/işlemler; bir başlangıç noktası ve bir bitiş noktası (Son) içermek zorundadır.
Biraz, konuya teknik tanımlı olarak yaklaşacak olursak;
Algoritma; Giriş (input) olarak alınan verileri işleyerek, Çıkış (Output) olarak bir sonuç veya çözüm üreten yapıdır.
Teknik olarak algoritma yapısı, genellikle şu bileşenleri içerir;
- Giriş: Algoritmanın üzerinde çalışacağı veri veya başlangıç değerleri.
- Adımlar (Prosedür): Her bir işlemin açıkça tanımlandığı mantık dizisi.
- Çıkış: Algoritmanın ürettiği sonuç veya çözüm.
Algoritmalar; özellikle bilgisayar bilimleri ve matematikte yaygın bir şekilde kullanılır ve bir sürecin nasıl gerçekleştirileceğini sistematik bir şekilde tarif eder.
Bir algoritma, genellikle şu üç özelliği taşır;
- Doğruluk: Algoritma; her adımın belirli bir mantık ve kesinlik içinde çalışmasını gerektirir.
- Sonluluk: Algoritma; sonlu sayıda adımda tamamlanmalıdır.
- Belirginlik: Algoritmadaki her adım açık, anlaşılır ve belirli bir eylemi tarif etmelidir.
Algoritmaların temel önemleri ise;
- Verimlilik: Algoritmalar, bir problemin çözümüne en kısa sürede ve en az kaynak kullanımıyla ulaşmayı mümkün kılarak zaman ve maliyet açısından üstünlük sağlar.
- Uyarlanabilirlik: Güçlü bir algoritma, farklı türdeki problemlere kolayca entegre edilebilen esnek bir çözüm altyapısı sunar, böylece geniş bir uygulama yelpazesinde kullanılabilir hale gelir.
- Teknolojik İlerleme: Modern yazılım ve donanım teknolojilerinin temelinde, karmaşık sorunları çözme yeteneğine sahip yenilikçi ve optimize edilmiş algoritmalar yer alır; bu da teknolojik gelişimin motor gücünü oluşturur.
Flowgorithm: Genel Bakış
Flowgorithm; kullanıcıların algoritmaları kolayca tasarlayıp, görselleştirebileceği bir akış diyagramı tabanlı programlama aracıdır.
Flowgorithm’in geliştiricisi, Devin Cook; 2005’ten beri Sacramento State üniversitesinde öğretim görevliliği üstlenmektedir.Bu süreç dahilinde, 2014 yılında; öğrencilerin ihtiyaçları doğrultusunda geliştirdiği temel program, bugün yüzbinler tarafından sevilerek kullanılmaktadır.
Flowgorithm Wikipedia detayları için lütfen tıklayınız…

Flowgorithm; ilgili bağlantı üzerinden indirilerek, basit ve hızlıca kurulumu sağlanmaktadır.
*Temel seviyede program yükleme adımları…

NOT: İlgili yazı döneminde; Flowgorithm sitesinde SSL sertifikası bulunmamaktadır.
Bu nedenle; site giriş adımında, Güvenli olmayan (Unsafe) site uyarısı yapılmaktadır.
2. Flowgorithm’in Kullanıcı Arayüzü ve Temel Bileşenleri
Araçlar ve Kullanıcı Arayüzü
Flowgorithm kurulumu sağlandıktan sonra, kullanıcıyı;

ana programlama ekranı (+Tuvali) karşılamaktadır.
İlgili arayüzde, ana uygulama kontrol alanları;

- [1] Dosya Aç (Open File – Klasör İkonu): Daha önce kaydedilmiş bir Flowgorithm dosyasını açar.
- [2] Dosya Kaydet (Save File – Disk İkonu): Mevcut diyagramı kaydetmek için kullanılır.
- [3] Çalıştır (Run – Yeşil Oynat İkonu): Algoritmayı baştan sona çalıştırır.
- [4] Adım Adım Çalıştır (Step – Tek Çizgi ve İleri Ok): Algoritmayı adım adım ilerleterek, çalıştırır; işlemleri daha ayrıntılı incelemeye olanak tanır.
- [5] Duraklat (Pause – Çift Çizgi): Algoritmayı ilgili adımda duraklatır.
- [6] Durdur (Stop – Kare İkon): Genel program çalışmasını durdurur.
- [7] Çalışma Hızı (Çalışma Hızı): Algoritmanın çalışma hızını (Adım geçiş hızını) belirler.

- [8] Kontrol Noktasını Yoksay (Ignore Breakpoints – Kırmızı Daire Çizgiyle): Çalışmakta olan algoritmanın kontrol noktalarını doğrudan geçer.
ve, algoritma (+Canvas iç kullanım alanı.) kontrol alanları;

- [9] Ana Metot (Main): Algoritmanın ana metodunu görüntüler veya düzenler.
- [10] Fonksiyon Yöneticisi (Function Manager): Algoritmada kullanılan tüm fonksiyonları düzenlemek, görüntülemek ve yönetmek için kullanılır.

- [11] Yakınlaştır (Zoom In – Büyüten Büyüteç İkonu): Diyagramı yakınlaştırır.
- [12] Uzaklaştır (Zoom Out – Küçülten Büyüteç İkonu): Diyagramı uzaklaştırır.
- [13] Otomatik Düzen (Auto Layout – Ekran ve Çok Yönlü Ok): Diyagram ekranlarını, otomatik olarak; ekran üzerinde düzenler.

- [14] Düzen Ekranları (Layout Windows – Kümelenmiş Ekranlar): Akışları; girdileri ve çıktıları takip edebilmenizi sağlayan, ek kontrol ekranları açar.

- [15] Değişken İzleme Penceresi (Variable Watch Window; X=x İkonu): Algoritmaların çalıştırılması sırasında; tüm değişkenlerin durumunu, gerçek zamanlı olarak takip etmenize olanak tanır.

- [16] Konsol Ekranı (Console Window): Algoritmaya yönelik girdilerin verilmesi ve sonuç/karşılıkların izlenmesini sağlar.

- [17] Grafik Arayüzü (Turtle Graphics Window): Görsel bir arayüzdür; algoritmalarınızın geometrik şekiller, çizgiler ve desenler oluşturmasını sağlar.

Örnek olarak ise;

- [18] Kaynak Kod Görüntüleyicisi (Source Code Viewer): Algoritmanızın kaynak kod olarak bir dile yönelik incelenmesi ve dönüştürülmesini sağlar.

Dil çeşitliliği ise;

şeklinde geniş bir kapsama sahiptir.
NOT: Dil seçiminiz ile, uygulama; doğrudan, algoritmanızı seçiminde bulunduğunuz dile dönüştürmektedir.
- [19] Kaynak Şema Rengi (Choose Color Scheme): Arayüzün temasını veya renk şemalarını değiştirir.

- [20] Renk Şeması Uygulama (Apply Color Scheme): Arayüzün temasını veya renk şemalarını uygular.
- [21] Farklı Dile Çevirme (Change Language): Flowgorithm arayüz dilini değiştirir.

bulunmaktadır.
Akış Diyagramı Bileşenleri
Flowgorithm’deki akış diyagramı bileşenleri;

şekildeki gibidir.
Çalışma tuvali içerisinde, eklemek istediğiniz bileşeni; Main–>End arasındaki oklara tıklayarak, ekleyebilirsiniz.
Bu eklenebilen bileşenler ve kullanım amaçları ise;
a. Başlangıç ve Bitiş (Oval – Terminator)
- Simge: Oval
- Kullanım Alanı: Programın başladığı veya bittiği noktaları belirtir.
- Özellikler:
- Her akış diyagramı bir Başlangıç ile başlar ve bir Bitiş ile sona erer.
- Genellikle “Start” ve “End” metinleriyle ifade edilir.
b. Giriş/Çıkış (Paralelkenar – Input/Output)
- Simge: Paralelkenar
- Kullanım Alanı: Kullanıcıdan veri almak (input) veya ekrana çıktı vermek (output) için kullanılır.
Örnekler:
Giriş:Bir sayı giriniz: a
Çıkış:Çıkış değeri: b
c. İşlem (Dikdörtgen – Process)
- Simge: Dikdörtgen
- Kullanım Alanı: Matematiksel işlemler, atama işlemleri veya değişken değerlerinin değiştirilmesi gibi işlemler için kullanılır.
Örnek:sum = num1 + num2
d. Karar (Elmas – Decision)
- Simge: Elmas
- Kullanım Alanı: Koşullu dallanmayı ifade eder.Mantıksal bir ifadeye göre “Evet” (True) veya “Hayır” (False) olarak iki farklı akış yolu sunar.
Örnek:if x > y
şeklinde bir karşılaştırma yapılabilir.
e. Bağlantı (Daire – Connector)
- Simge: Daire
- Kullanım Alanı: Büyük veya karmaşık diyagramlarda farklı bölümleri birbirine bağlamak için kullanılır.
Özellikle diyagram bir sayfadan daha büyükse, bu bileşen kullanılır. - Özellikler:
- Diyagramın okunabilirliğini artırır.
f. Döngü (Loop – Karar ve İşlem Bileşimi)
- Flowgorithm’de döngüler genellikle Karar bileşeni ile başlar ve bir İşlem bileşeni ile devam eder.
Örnek Döngüler;
While Döngüsü: Bir koşul; doğru olduğu sürece çalışır.
For Döngüsü: Belirli bir sayı kadar, tekrar eder.
g. Yorum Satırları (Comment)
- Simge: Dikdörtgen (Köşede etiket simgesiyle)
- Kullanım Alanı: Algoritmayı açıklamak için eklenen notlardır.
Program akışını etkilemez, sadece belgelemeyi kolaylaştırır.
Örnek:// Bu hesaplama iki sayıyı toplamaktadır.
h. Oklar (Flowlines)
- Simge: Düz veya yönlü çizgiler
- Kullanım Alanı: Akış diyagramındaki bileşenler arasındaki bağlantıları temsil eder.
Programın hangi sırayla işleyeceğini gösterir.
şeklindedir.
3. Algoritmaların Görsel Temsili ve Diyagramların Anlaşılması
Algoritma ve Akış Diyagramlarının İlişkisi
Algoritmalar, bir problemin çözümüne yönelik adım adım talimatları içeren mantıksal süreçlerdir.Akış diyagramları ise bu süreçleri görselleştirerek daha kolay anlaşılabilir hale getirir.Özellikle Flowgorithm gibi araçlar, algoritma kavramını görsel bir yaklaşımla kullanıcıya sunarak şu avantajları sağlar:
Anlaşılabilirlik
Metin tabanlı algoritmalar, özellikle programlamaya yeni başlayanlar için karmaşık görünebilir.Akış diyagramları ise bu süreci sembollerle ifade ederek görselleştirir.
Örneğin; bir “Karar” sembolü (elmas) bir ifadenin koşulunu açıkça belirtirken, bu koşula bağlı yollar okunabilir bir şekilde gösterilir.
Hata Ayıklama Kolaylığı
Flowgorithm, kullanıcıların algoritmalarını adım adım çalıştırmasına olanak tanır.Bu, kodlama sırasında ortaya çıkabilecek mantıksal hataları tespit etmeyi kolaylaştırır.
Her bir adım görsel olarak temsil edildiğinden, hangi adımın yanlış çalıştığını hızlıca belirlemek mümkün hale gelir.
Algoritma Mantığını Takip Etme
Görsel temsil, karmaşık süreçlerin daha basit ve anlamlı bir şekilde gösterilmesine yardımcı olur.
Örneğin; bir döngü yapısı ya da koşullu ifadeler, diyagramdaki akış yolları ile net bir şekilde izlenebilir.
Flowgorithm, algoritmayı simüle ederek çıktıları dinamik olarak gösterir ve kullanıcıların her adımı anlamasını sağlar.
Akışın Düzenlenmesi
Akış diyagramlarının düzenli ve mantıklı bir şekilde oluşturulması, kullanıcıların diyagramı kolayca takip etmesini sağlar.
Bunun için:
–Soldan sağa veya yukarıdan aşağıya doğru bir akış tercih edilmelidir.
-Diyagramın gereksiz karmaşık hale gelmesini önlemek için; semboller arasında yeterli boşluk bırakılmalıdır.
-Karar noktalarında “True” ve “False” yolları açıkça belirtilmelidir.
Modüler Yaklaşım
Akış diyagramını segmentlere ayırmak, özellikle karmaşık algoritmalar için büyük kolaylık sağlar.
Modüler bir yaklaşımla: her alt problem veya işlev, kendi alt diyagramı ile gösterilebilir.
Bu sayede; ana diyagramın karmaşıklığı azalır ve her modül kendi içinde daha anlaşılır hale gelir.
Örnek: Bir e-ticaret uygulamasında ödeme süreci, kullanıcı giriş işlemleri ve ürün arama işlemleri ayrı segmentlerde ifade edilebilir.
İsimlendirme ve Yorumlama
Diyagramdaki her sembolün işlevi açıkça ifade edilmelidir.
Örneğin, işlem kutusunda “sum = num1 + num2” gibi bir açıklama yer almalıdır.
Gerektiğinde yorum balonları eklenerek kullanıcıya ek bilgi sağlanabilir.
4. Örnek Flowgorithm Algoritmaları
Flowgorithm üzerindeki program yükleme sayfasında; hızlıca uygulamayı deneyimleyebileceğiniz, birkaç hazır program bulunmaktadır.
Örnek uygulama bağlantısı için lütfen tıklayınız…
Ek dokümantasyon sayfası için lütfen tıklayınız…
Bunlar;

Blackjack – Functions: Bu örnek; bir blackjack oyununun temel mantığını ve fonksiyonların kullanımını gösterir.Fonksiyonlar yardımıyla; modüler bir yapı oluşturulur ve oyunun işleyişi algoritmik olarak kolaylaştırılır.
Euclid’s GCD Algorithm: Öklid algoritması, iki sayının en büyük ortak bölenini (EBOB) bulmak için kullanılan bir matematiksel yöntemdir.Bu örnek; algoritmanın, akış diyagramı ile nasıl modellenebileceğini göstermektedir.
Age Vote: Kullanıcıdan bir yaş değeri alarak; kişinin oy kullanma hakkına sahip olup olmadığını belirler.Karar yapıları (Decision) kullanılarak; algoritmik yapıdaki koşul süreçleri değerlendirilmektedir.
Area of a Circle: Bir çemberin alanını hesaplamak için kullanılan bir algoritmadır. Kullanıcıdan çemberin yarıçapını alır ve sonucu hesaplar.Matematiksel işlemler (Process) ile algoritma süreçleri bu örnekle ele alınmaktadır.
Area of a Triangle: Bir üçgenin alanını bulmak için taban ve yükseklik değerlerini kullanır. Formülü uygulamak için yine matematiksel işlemlerden faydalanılmaktadır.
Tip Calculator: Kullanıcıdan bir toplam hesap tutarı ve bahşiş yüzdesi alarak; bahşiş miktarını hesaplar.Giriş/Çıkış işlemleri ve temel hesaplamalar için algoritma süreçleri örneklendirilmektedir.
Ek Türkçe kaynaklı örnekler;
1-Hüseyin Enes Ertürk

Hüseyin Enes Ertürk’ün;
https://github.com/huseyineneserturk/flowgorithm-flowchart-ornekleri
paylaşımı, Üniversite kaynak sayfası olarak;
./ Dersler
Ders kaynaklarına ve materyallerine erişmek için aşağıdaki bağlantıyı kullanabilirsiniz.
Sayfaya Gitdetaylı anlatım sayfası incelenebilir.
2-Yusuf Bıyık

Yusuf Bıyık’ın;
https://github.com/yussufbiyik/flowgorithm-turkce-ornekler
paylaşımı incelenebilir.
3-Harun Uyguç

Harun Uyguç’un;
https://github.com/HarunUYGUC/Algorithm_with_Flowgorithm
paylaşımı incelenebilir.
Genel olarak, gündelik hayat ve iş dünyasının vazgeçilmezi algoritmalar üzerine; yanısıra, Flowgorithm aracına değinerek kısa notlarımı paylaşmaya çalıştım.
Umarım faydalı olur.
İyi çalışmalar.