Herkese merhaba arkadaşlar.
Bugün programlamaya girişin olmazsa olmazlarından Algoritmalar ve Veri Yapıları konusunu daha önceki öğrenimlerimlerim ile birlikte ilmim yettiğince sizlere anlatmak istiyorum uzun bir konu dizisi olarak bölüm bölüm parçalayacağım konuyu şimdiden hatam olursa aff'ola.
KONU BAŞLIKLARI

1- Algoritma Nedir?
1.a- Algoritmanın Özellikleri Nelerdir?
1.b- Algoritma Türleri
1.c- Algoritmanın Morfolojisi Nedir?
1.d- Algoritmaların Matematikte Yeri
2.Akış Şemaları Nedir?
2.a- Akış Şemaları Sembolleri
Bugün programlamaya girişin olmazsa olmazlarından Algoritmalar ve Veri Yapıları konusunu daha önceki öğrenimlerimlerim ile birlikte ilmim yettiğince sizlere anlatmak istiyorum uzun bir konu dizisi olarak bölüm bölüm parçalayacağım konuyu şimdiden hatam olursa aff'ola.
KONU BAŞLIKLARI

1- Algoritma Nedir?
1.a- Algoritmanın Özellikleri Nelerdir?
1.b- Algoritma Türleri
1.c- Algoritmanın Morfolojisi Nedir?
1.d- Algoritmaların Matematikte Yeri
2.Akış Şemaları Nedir?
2.a- Akış Şemaları Sembolleri
>Başla&Dur
>İşlem
>Veri (Girdi/Çıktı)
>Kara
>Belge
>Depolama
>Veri Ambarı
1- Algoritma Nedir?


Algoritma, belirli bir problemi çözmek veya bir hedefe ulaşmak için gereken adımları kesin ve sistematik bir şekilde tanımlayan bir dizi kurallar bütünüdür. Bu kurallar, problemi oluşturan verilerin işlenmesi, sıralanması ve analiz edilmesi sürecinde izlenir ve her adıma net bir şekilde yön verir. Algoritmalar, bir veya birden fazla çözüm yolu sunabilir ve çeşitli problemlerin çözülebilmesi için gerekli tüm materyalleri içerir. Bir algoritmanın amacı, verilen bir problemi en doğru ve en verimli şekilde çözmektir.Örneğin, matematiksel problemlerden yazılım geliştirmeye, veri işleme süreçlerinden günlük yaşamın rutin kararlarına kadar algoritmalar hayatımızın her alanında kullanılır. Bir algoritmanın başarılı olması, belirlenen adımların sıralı, kesin ve mantıklı bir yapıya sahip olmasına bağlıdır. Her adım, bir önceki adıma dayanır ve algoritma, başlangıçtan sonuca kadar birbiriyle bağlantılı süreçlerden oluşur. Bununla birlikte, etkin bir algoritma yalnızca doğru sonuçlar üretmekle kalmaz, aynı zamanda bu sonuçlara en kısa sürede ve en az kaynakla ulaşmayı hedefler.Bu bağlamda algoritma, bilgi işleme ve problem çözme süreçlerinde rehber niteliğindedir ve bilgisayar biliminin temel yapı taşlarından biridir.
1.a- Algoritmanın Özellikleri Nelerdir?
Belirlilik (Deterministik Olma)
Algoritmanın her adımı açık ve net bir şekilde tanımlanmalıdır. Yani her adımın ne yapacağı kesin olarak bilinir ve yoruma açık değildir. Her koşulda aynı girdiler, aynı sonuçları verir.


Sonluluk (Finiteness)
Algoritma, sonlu sayıda adımda tamamlanmalıdır. Sonsuz döngülere girmeden, belirli bir süre içinde bir sonuca ulaşmalıdır. Sonluluk, algoritmanın belirli bir zamanda duracağı ve sonuç üreteceği anlamına gelir.


Girdi (Input)
Algoritma, dışarıdan alınan verilerle çalışır. Bir algoritma, sıfır veya daha fazla girdiyle başlayabilir. Bu girdiler, problemin çözülebilmesi için gereken verileri içerir.


Çıktı (Output)
Her algoritma en az bir sonuç üretmelidir. Çıktı, algoritmanın çözüm süreci sonunda elde edilen cevaptır. Doğru bir algoritma, girdi verilerine dayanarak doğru ve anlamlı bir çıktı üretir.


Etkinlik (Effectiveness)
Algoritmanın her adımı, basit ve gerçekleştirilebilir olmalıdır. Her bir adımın, matematiksel veya mantıksal olarak uygulanabilir olması gerekir. Bu, algoritmanın uygulamada yapılabilir olduğunu gösterir.


Genellik (Generality)
Algoritma, sadece belirli bir problemi çözmekle kalmamalı, aynı türden farklı problemlere de uygulanabilir olmalıdır. Yani bir algoritma, belirli bir sınıftaki benzer problemlere de çözüm getirebilmelidir.


Doğrusallık (Sıralılık)
Algoritma, adım adım ilerler. Her işlem sırası, belirli bir mantığa göre sıralanmıştır. Adımlar birbirini takip eder ve doğru bir sırayla çalışırsa, algoritma istenen sonuca ulaşır.


Hafıza ve Zaman Karmaşıklığı (Verimlilik)
Algoritmanın verimliliği, ne kadar hafıza (bellek) kullandığı ve bir sonuca ulaşmak için ne kadar zaman harcadığı ile ölçülür. İyi bir algoritma, hem zaman açısından hızlı hem de hafıza kullanımında tasarruflu olmalıdır.
1.b- Algoritma Türleri
1.b- Algoritma Türleri
Arama Algoritmaları
Arama algoritmaları, bir veri yapısında belirli bir öğeyi bulmayı amaçlar. Verilerin düzenli veya düzensiz yapısına bağlı olarak farklı arama algoritmaları kullanılır.
Doğrusal Arama (Linear Search): Veri yapısında öğeleri sırayla kontrol ederek arama yapılır. Veriler sıralı veya sırasız olabilir. Zaman karmaşıklığı O[n] düzeyindedir.
İkili Arama (Binary Search): Verilerin sıralı olduğu yapılarda kullanılır. Her adımda arama alanını ikiye bölerek ilerler. Zaman karmaşıklığı O(log n) düzeyindedi

Doğrusal Arama (Linear Search): Veri yapısında öğeleri sırayla kontrol ederek arama yapılır. Veriler sıralı veya sırasız olabilir. Zaman karmaşıklığı O[n] düzeyindedir.
İkili Arama (Binary Search): Verilerin sıralı olduğu yapılarda kullanılır. Her adımda arama alanını ikiye bölerek ilerler. Zaman karmaşıklığı O(log n) düzeyindedi

Sıralama Algoritmaları
Sıralama algoritmaları, bir dizi veriyi belirli bir sıraya (artan ya da azalan) göre düzenler. Farklı sıralama algoritmaları, performans ve kullanım durumlarına göre değişiklik gösterir.
Kabarcık Sıralaması (Bubble Sort): Komşu öğeleri karşılaştırıp, yanlış sırada olanları yer değiştirir. En basit sıralama algoritmalarından biridir. Zaman karmaşıklığı O(n²) düzeyindedir.
Hızlı Sıralama (Quick Sort): Bir pivot seçerek, verileri pivotun etrafında ikiye böler ve bu işlemi rekürsif olarak devam ettirir. Ortalama zaman karmaşıklığı O(n log n)'dir.
Birleştirme Sıralaması (Merge Sort): Veriyi küçük parçalara bölüp, daha sonra sıralı bir şekilde birleştirir. Zaman karmaşıklığı O(n log n)'dir.
Kabarcık Sıralaması (Bubble Sort): Komşu öğeleri karşılaştırıp, yanlış sırada olanları yer değiştirir. En basit sıralama algoritmalarından biridir. Zaman karmaşıklığı O(n²) düzeyindedir.
Hızlı Sıralama (Quick Sort): Bir pivot seçerek, verileri pivotun etrafında ikiye böler ve bu işlemi rekürsif olarak devam ettirir. Ortalama zaman karmaşıklığı O(n log n)'dir.
Birleştirme Sıralaması (Merge Sort): Veriyi küçük parçalara bölüp, daha sonra sıralı bir şekilde birleştirir. Zaman karmaşıklığı O(n log n)'dir.
Böl ve Fethet (Divide and Conquer) Algoritmaları
Bu algoritmalar, büyük bir problemi daha küçük alt problemlere ayırıp her birini çözdükten sonra sonuçları birleştirerek çalışır. Bu tür algoritmalar genellikle rekürsif yapıdadır.
Hızlı Sıralama (Quick Sort) ve Birleştirme Sıralaması (Merge Sort) bu algoritma türüne örnektir.
Karatsuba Çarpımı: Büyük sayıların hızlı çarpımında kullanılan bir algoritmadır.
Hızlı Sıralama (Quick Sort) ve Birleştirme Sıralaması (Merge Sort) bu algoritma türüne örnektir.
Karatsuba Çarpımı: Büyük sayıların hızlı çarpımında kullanılan bir algoritmadır.
Dinamik Programlama Algoritmaları
Dinamik programlama, büyük problemleri daha küçük, birbirini tekrar eden alt problemlere ayırarak çözme yöntemidir. Bu algoritma, alt problemleri bir kez çözer ve çözümü daha sonra kullanmak üzere saklar (memoization).
Fibonacci Serisi: Fibonacci sayılarını hesaplamak için kullanılan dinamik programlama örneği.
Knapsack Problemi: Bir nesne kümesinden belirli bir ağırlık sınırını aşmadan en yüksek değeri elde etme problemi.
Fibonacci Serisi: Fibonacci sayılarını hesaplamak için kullanılan dinamik programlama örneği.
Knapsack Problemi: Bir nesne kümesinden belirli bir ağırlık sınırını aşmadan en yüksek değeri elde etme problemi.
Greedy (Açgözlü) Algoritmaları
Greedy algoritmalar, her adımda mevcut durum için en iyi gibi görünen seçimi yaparak çözümü oluşturur. Her zaman yerel optimum çözümü seçerek ilerler ve bazen küresel optimum çözüme ulaşabilir.
Kısa Yol Problemi (Dijkstra Algoritması): Bir grafikteki en kısa yolu bulmak için kullanılır.
Kapsama Problemi: Minimum maliyetle bir kümenin tamamını kapsayan alt kümeyi bulmaya çalışır.
Kısa Yol Problemi (Dijkstra Algoritması): Bir grafikteki en kısa yolu bulmak için kullanılır.
Kapsama Problemi: Minimum maliyetle bir kümenin tamamını kapsayan alt kümeyi bulmaya çalışır.
Geriye Dönük Arama (Backtracking) Algoritmaları
Bu algoritma türü, bir problemi çözmek için mümkün olan tüm çözümleri dener ve çözüm bulunana kadar geri adım atarak devam eder. Bu yöntem, bir çözüm yolunda tıkanıklık olduğunda geriye dönüp farklı yolları dener.
Sekiz Kraliçe Problemi: Bir satranç tahtasında sekiz kraliçeyi birbirine saldırmadan nasıl yerleştirebileceğinizi arar.
Sudoku Çözümü: Sudoku bulmacalarını çözmek için kullanılan yöntem.
Sekiz Kraliçe Problemi: Bir satranç tahtasında sekiz kraliçeyi birbirine saldırmadan nasıl yerleştirebileceğinizi arar.
Sudoku Çözümü: Sudoku bulmacalarını çözmek için kullanılan yöntem.
Ağ (Graf) Algoritmaları
Graf algoritmaları, düğümler ve bu düğümleri bağlayan kenarlardan oluşan grafiklerde kullanılan algoritmalardır. Genellikle en kısa yol, ağ bağlantıları ve dolaşım problemlerinde kullanılırlar.
Dijkstra Algoritması: Belirli bir düğümden diğer düğümlere en kısa yolu bulur.
Kruskal ve Prim Algoritmaları: Minimum ağırlıklı ağaç bulma algoritmalarıdır.
A Algoritması*: Grafiklerde yol bulma problemlerinde kullanılan sezgisel bir algoritmadır.
Dijkstra Algoritması: Belirli bir düğümden diğer düğümlere en kısa yolu bulur.
Kruskal ve Prim Algoritmaları: Minimum ağırlıklı ağaç bulma algoritmalarıdır.
A Algoritması*: Grafiklerde yol bulma problemlerinde kullanılan sezgisel bir algoritmadır.
Yinelemeli (Rekürsif) Algoritmalar
Yinelemeli algoritmalar, kendini tekrar eden problemleri çözmek için kullanılır. Bu algoritmalar bir problemi daha küçük bir problemle aynı şekilde çözerek ilerler. Yineleme, temel bir duruma ulaşana kadar devam eder.Örnek olması için:
Fibonacci Serisi Hesaplama: Fibonacci sayılarını hesaplamak için rekürsif yöntem.
Factorial Hesaplama: Bir sayının faktöriyelini bulmak için rekürsif algoritmalar kullanılır.
Fibonacci Serisi Hesaplama: Fibonacci sayılarını hesaplamak için rekürsif yöntem.
Factorial Hesaplama: Bir sayının faktöriyelini bulmak için rekürsif algoritmalar kullanılır.
Brüt Kuvvet (Brute Force) Algoritmaları
Brüt kuvvet algoritmaları, tüm olası çözümleri deneme yoluyla çalışır. Bu algoritmalar, en basit ve genellikle en yavaş çözüm yöntemlerindendir. Tüm olası kombinasyonları kontrol eder ve doğru çözümü bulur.
Parola Kırma: Brüt kuvvet yöntemiyle tüm olası parola kombinasyonlarını deneyerek doğru olanı bulur.
En İyi Eşleşme Problemi: Bir string içinde en iyi eşleşmeyi bulmak için kullanılır.
Parola Kırma: Brüt kuvvet yöntemiyle tüm olası parola kombinasyonlarını deneyerek doğru olanı bulur.
En İyi Eşleşme Problemi: Bir string içinde en iyi eşleşmeyi bulmak için kullanılır.
Evrimsel Algoritmalar
Evrimsel algoritmalar, biyolojik evrim süreçlerinden ilham alarak çözüm üretir. Genetik algoritmalar, popülasyonlar üzerinde genetik operatörler kullanarak çözüm üretir ve zamanla daha iyi çözümler elde eder.
Genetik Algoritmalar: Bir problemi, popülasyon, mutasyon, çaprazlama ve seçim işlemleriyle çözmeye çalışır.
Parçacık Sürüsü Optimizasyonu: Çok sayıda çözümün yerel ve küresel en iyi çözümlerle optimize edilmesi için kullanılır.
1.b- Algoritmanın Morfolojisi Nedir?


Algoritmanın morfolojisi, bir algoritmanın yapısal bileşenlerini işleyişini ve sistematik düzenini inceleyen bir yaklaşımdır. Algoritmalar temel bir problemin çözümüne yönelik olarak belirli bir mantık dizisi ile hareket eder. Bu yapısal elemanlar, algoritmanın hem içsel mekanizmasını hem de dışsal sonuçlarını şekillendirir. Algoritmanın morfolojisini anlayabilmek, bir problemin nasıl ele alındığını, hangi süreçlerden geçildiğini ve sonucun nasıl elde edildiğini anlamak açısından kritik öneme sahiptir.

1.c- Algoritmaların Matematikte Yeri

Algoritmalar, matematik dünyasında önemli ve vazgeçilmez bir yere sahiptir. Matematik, sayıların şekillerin, yapılarının ve ilişkilerin incelenmesinden ibaret bir disiplin olarak görünsede, matematiksel düşüncenin merkezinde sistematik yöntemler, prosedürler ve işlemler yer alır. Bu noktada algoritmalar devreye girer. Algoritmalar, belirli bir matematiksel problemin çözümüne ulaşmak için adım adım izlenen yöntemlerdir ve matematiksel hesaplamaların, analizlerin ve kanıtlamaların sistematik bir şekilde yürütülmesini sağlarlar.Algoritmanın matematikte yerini daha iyi anlamak için bir kaç başlık altında örneklendirelim.
Genetik Algoritmalar: Bir problemi, popülasyon, mutasyon, çaprazlama ve seçim işlemleriyle çözmeye çalışır.
Parçacık Sürüsü Optimizasyonu: Çok sayıda çözümün yerel ve küresel en iyi çözümlerle optimize edilmesi için kullanılır.
1.b- Algoritmanın Morfolojisi Nedir?


Algoritmanın morfolojisi, bir algoritmanın yapısal bileşenlerini işleyişini ve sistematik düzenini inceleyen bir yaklaşımdır. Algoritmalar temel bir problemin çözümüne yönelik olarak belirli bir mantık dizisi ile hareket eder. Bu yapısal elemanlar, algoritmanın hem içsel mekanizmasını hem de dışsal sonuçlarını şekillendirir. Algoritmanın morfolojisini anlayabilmek, bir problemin nasıl ele alındığını, hangi süreçlerden geçildiğini ve sonucun nasıl elde edildiğini anlamak açısından kritik öneme sahiptir.

1.c- Algoritmaların Matematikte Yeri

Algoritmalar, matematik dünyasında önemli ve vazgeçilmez bir yere sahiptir. Matematik, sayıların şekillerin, yapılarının ve ilişkilerin incelenmesinden ibaret bir disiplin olarak görünsede, matematiksel düşüncenin merkezinde sistematik yöntemler, prosedürler ve işlemler yer alır. Bu noktada algoritmalar devreye girer. Algoritmalar, belirli bir matematiksel problemin çözümüne ulaşmak için adım adım izlenen yöntemlerdir ve matematiksel hesaplamaların, analizlerin ve kanıtlamaların sistematik bir şekilde yürütülmesini sağlarlar.Algoritmanın matematikte yerini daha iyi anlamak için bir kaç başlık altında örneklendirelim.
Temel Matematiksel İşlemler
Matematiksel işlemlerin çoğu, basit algoritmalar yardımıyla gerçekleştirilir. Örneğin, toplama, çıkarma, çarpma ve bölme gibi temel aritmetik işlemleri bile belirli algoritmalarla yapılır. Herhangi bir iki sayının çarpılması için kullanılan adımlar bir algoritmadır; sayılar sırayla işlenir, toplama işlemleri yapılır ve sonuç elde edilir. Bölme işlemi de benzer bir şekilde adım adım ilerler ve bölen ile bölünen arasındaki ilişkiye dayalı olarak tekrar eden işlemler sonucunda bölüm bulunur.
Sayısal Yöntemler
Algoritmalar, matematiksel problemleri sayısal olarak çözmede kritik rol oynar. Özellikle cebirsel denklemler, diferansiyel denklemler ve integral problemlerinin analitik çözümleri her zaman mümkün olmayabilir. Bu tür durumlarda sayısal yöntemler devreye girer ve belirli algoritmalar yardımıyla yaklaşık çözümler elde edilir. Newton-Raphson yöntemi, Gauss eliminasyon yöntemi gibi sayısal algoritmalar, özellikle mühendislik ve uygulamalı matematikte yaygın olarak kullanılır. Bu algoritmalar, çok karmaşık matematiksel ifadelerin çözümünü hızlandırır ve büyük veri kümeleri üzerinde işlem yapmayı mümkün kılar.
Kriptografi ve Sayı Teorisi
Algoritmalar, kriptografi ve sayı teorisi gibi matematiğin daha soyut alanlarında da önemli bir yere sahiptir. Sayı teorisinde algoritmalar, asal sayıların bulunması, büyük sayıların çarpanlarına ayrılması veya modüler aritmetik işlemlerinin gerçekleştirilmesi için kullanılır. Asal sayılar üzerinde çalışan Euclid'in algoritması, matematik tarihinin en eski ve en bilinen algoritmalarından biridir. Kriptografide ise güvenli şifreleme yöntemleri algoritmalar yardımıyla gerçekleştirilir. RSA gibi şifreleme algoritmaları, büyük asal sayılar ve modüler aritmetik üzerine kuruludur ve bilgi güvenliği için kritik önem taşır.
Kombinatorik ve Grafik Teorisi
Kombinatorik, belirli bir düzen içinde nasıl kombinasyonlar oluşturulacağını ve bu kombinasyonların nasıl sayılacağını inceleyen bir matematik dalıdır. Kombinatorik problemlerin büyük bir kısmı algoritmalarla çözülür. Örneğin, belirli bir küme içindeki elemanların tüm olası permütasyonlarını veya kombinasyonlarını bulmak için algoritmalar kullanılır. Benzer şekilde, grafik teorisi de algoritmalardan büyük ölçüde faydalanır. Grafik teorisi, düğümler ve kenarlarla temsil edilen ilişkileri inceleyen bir matematik dalıdır ve birçok algoritma bu yapı üzerinde en kısa yol, en düşük maliyetli bağlantılar veya en uygun ağ yapıları bulmak için kullanılır. Dijkstra algoritması, en kısa yol bulma problemlerinde yaygın olarak kullanılan bir örnektir.


Veri Analizi ve İstatistiksel Hesaplamalar
Algoritmalar, istatistiksel analiz ve veri madenciliğinde de önemli bir rol oynar. Büyük veri kümeleri üzerinde istatistiksel analizler yapılırken, bu verileri işlemek ve sonuçları elde etmek için algoritmalar kullanılır. Regresyon analizi, kümelendirme, sınıflandırma gibi istatistiksel yöntemler, belirli algoritmalara dayanarak çalışır. Bu algoritmalar, verilerdeki eğilimleri, ilişkileri ve anormallikleri bulmayı sağlar. Büyük veri setleri üzerindeki bu analizler, özellikle veri bilimi ve yapay zeka gibi alanlarda kritik önem taşır.

2- Akış Şemaları Nedir?


Akış şeması, bir algoritmanın ya da bir işlemin adım adım nasıl ilerleyeceğini gösteren bir diyagramdır. Her adım, belirli şekillerle gösterilir ve şekiller arasındaki oklar işlemin bir sonraki aşamaya nasıl geçtiğini ifade eder. Akış şemaları, özellikle programlama ve iş süreçlerinin optimizasyonunda yaygın olarak kullanılır. Kodlamaya geçmeden önce, bir algoritmanın akışını kağıt üzerinde görmek, olası hataları ve gereksiz adımları belirlemeye yardımcı olur.Akış şemaları sadece yazılımcının anlayacağı gibi değil normal bir okuyucunun da anlayacağı şekilde tasarlanır.
2.a- Akış Şemaları Sembolleri

Başla&Dur

Algoritmanın veya işlemin başlangıcını ve bitişini gösteren sembol. Genellikle bir oval veya daire olarak gösterilir.

İşlem

Bir eylemi veya adımı temsil eder. Genellikle dikdörtgen şeklinde çizilir ve üzerinde işlemle ilgili açıklama yer alır.

Veri (Girdi/Çıktı)

Veri girişini (input) veya çıktısını (output) ifade eden sembol. Bu sembol, bir işlem sırasında verilerin alındığı veya sonuçların çıktığı durumları gösterir. Genellikle yamuk şeklinde çizilir.

Karar


Şartlı kararların alındığı noktayı ifade eder. Genellikle bir karar kutusu (romb) kullanılır ve evet/hayır gibi iki veya daha fazla seçenek sunar.
Belge(Çıktı)


Fiziksel veya dijital bir belgenin oluşturulmasını veya kullanılmasını ifade eder. Bu, bir rapor veya form gibi bir belgeyle ilişkili işlemi gösterir
Depolama


Verilerin uzun süreli olarak depolandığı alanı temsil eder. Bu, genellikle veritabanı veya disk depolama için kullanılır
Veri Ambarı


Büyük miktarda verinin depolandığı ve analiz için kullanılabileceği yerleri ifade eder. Genellikle bir silindirik şekille gösterilir
İç Depolama


Verilerin sistemin içinde geçici olarak saklandığı yeri ifade eder. Genellikle kısa süreli bellek (RAM) gibi geçici depolama alanlarını gösterir.
Teyp Kütüğü


Eski depolama yöntemlerinden biri olan manyetik teyp gibi lineer depolama sistemlerini temsil eder.
Manuel Girdi


Kullanıcının manuel olarak veri girişi yaptığı adımı gösterir. Bu, klavye, fare gibi araçlarla yapılan girişleri ifade eder.
Önceden Tanımlı İşlem


Sıkça tekrarlanan veya standartlaştırılmış bir işlemi ifade eder. Bu işlemin detayları algoritma dışında önceden belirlenmiştir.
Hazırlık/Döngü


Bir işlemi başlatmak veya döngü yapısına hazırlık yapmak için kullanılan adımı ifade eder. Genellikle döngüler başlamadan önce yapılan hazırlıkları gösterir.
Bekleme


Süreçte bir bekleme aşamasını ifade eder. Genellikle işlem yapılmadığı ve belirli bir durumun oluşmasının beklendiği adımları temsil eder.
Akış diyagramları başlığı altında anlattığım bu semboller algoritma ve akış diyagramlarının farklı aşamalarını tanımlamak için kullanılır ve her biri sürecin nasıl ilerlediğini göstermek için gösterilir.
Konunun sonuna geldik 2.bölümde sizlere akış şemalarının nasıl tasarlandığını, tasarlanırken hangi ortamlar kullanıldığını ve günlük hayattan problemler ile akış şeması örnekleri sunacağım.Şimdilik hoşçakalın.

2- Akış Şemaları Nedir?


Akış şeması, bir algoritmanın ya da bir işlemin adım adım nasıl ilerleyeceğini gösteren bir diyagramdır. Her adım, belirli şekillerle gösterilir ve şekiller arasındaki oklar işlemin bir sonraki aşamaya nasıl geçtiğini ifade eder. Akış şemaları, özellikle programlama ve iş süreçlerinin optimizasyonunda yaygın olarak kullanılır. Kodlamaya geçmeden önce, bir algoritmanın akışını kağıt üzerinde görmek, olası hataları ve gereksiz adımları belirlemeye yardımcı olur.Akış şemaları sadece yazılımcının anlayacağı gibi değil normal bir okuyucunun da anlayacağı şekilde tasarlanır.
2.a- Akış Şemaları Sembolleri

Başla&Dur

Algoritmanın veya işlemin başlangıcını ve bitişini gösteren sembol. Genellikle bir oval veya daire olarak gösterilir.

İşlem

Bir eylemi veya adımı temsil eder. Genellikle dikdörtgen şeklinde çizilir ve üzerinde işlemle ilgili açıklama yer alır.

Veri (Girdi/Çıktı)

Veri girişini (input) veya çıktısını (output) ifade eden sembol. Bu sembol, bir işlem sırasında verilerin alındığı veya sonuçların çıktığı durumları gösterir. Genellikle yamuk şeklinde çizilir.

Karar


Şartlı kararların alındığı noktayı ifade eder. Genellikle bir karar kutusu (romb) kullanılır ve evet/hayır gibi iki veya daha fazla seçenek sunar.
Belge(Çıktı)


Fiziksel veya dijital bir belgenin oluşturulmasını veya kullanılmasını ifade eder. Bu, bir rapor veya form gibi bir belgeyle ilişkili işlemi gösterir
Depolama


Verilerin uzun süreli olarak depolandığı alanı temsil eder. Bu, genellikle veritabanı veya disk depolama için kullanılır
Veri Ambarı


Büyük miktarda verinin depolandığı ve analiz için kullanılabileceği yerleri ifade eder. Genellikle bir silindirik şekille gösterilir
İç Depolama


Verilerin sistemin içinde geçici olarak saklandığı yeri ifade eder. Genellikle kısa süreli bellek (RAM) gibi geçici depolama alanlarını gösterir.
Teyp Kütüğü


Eski depolama yöntemlerinden biri olan manyetik teyp gibi lineer depolama sistemlerini temsil eder.
Manuel Girdi


Kullanıcının manuel olarak veri girişi yaptığı adımı gösterir. Bu, klavye, fare gibi araçlarla yapılan girişleri ifade eder.
Önceden Tanımlı İşlem


Sıkça tekrarlanan veya standartlaştırılmış bir işlemi ifade eder. Bu işlemin detayları algoritma dışında önceden belirlenmiştir.
Hazırlık/Döngü


Bir işlemi başlatmak veya döngü yapısına hazırlık yapmak için kullanılan adımı ifade eder. Genellikle döngüler başlamadan önce yapılan hazırlıkları gösterir.
Bekleme


Süreçte bir bekleme aşamasını ifade eder. Genellikle işlem yapılmadığı ve belirli bir durumun oluşmasının beklendiği adımları temsil eder.
Akış diyagramları başlığı altında anlattığım bu semboller algoritma ve akış diyagramlarının farklı aşamalarını tanımlamak için kullanılır ve her biri sürecin nasıl ilerlediğini göstermek için gösterilir.
Konunun sonuna geldik 2.bölümde sizlere akış şemalarının nasıl tasarlandığını, tasarlanırken hangi ortamlar kullanıldığını ve günlük hayattan problemler ile akış şeması örnekleri sunacağım.Şimdilik hoşçakalın.

