Merhaba arkadaşlar, bu yazımızda sizlere matematikte ve programlamada sıkça karşımıza çıkan algoritma teriminden bahsedeceğim.
Algoritma Nedir? Ne Demek?
Bir sorunu çözmek veya belirlenmiş bir amaca ulaşmak için tasarlanan yola, takip edilen işlem basamaklarına algoritma denir.
Algoritmalar açıkça belirtilmiş bir başlangıcı ve sonu olan işlemler kümesidir. Amaca ulaşmak için işlenecek çözüm yolları ve sıralamaları belirlenir ve algoritma bu sırayı takip ederek en mantıklı çözüme ulaşır.
İlk algoritma,, 9. yüzyılda yaşayan ve cebir konusunda önemli çalışmalar yapmış olan Persli matematikçi El-Harezmi’den türetilmiştir. Algoritmalar, karmaşık sorunları basit ve anlaşılır adımlara bölerek çözüm sürecini kolaylaştırır. Algoritmalar, bir problemin çözümünü sistematik ve tekrar edilebilir hale getirir.
Algoritma Niçin Kullanılır? Ne İşe yarar?
Algoritma matematikte bir sonuca ulaşmak için takip edilmesi gereken işlem basamaklarını belirlemede kullanılır. Örneğin, 3 ve 5 sayılarının ortalamasını bulmak istediğinizde önce (3+5) işlemini yaptıktan sonra sırada “çıkan sonuç/2” işlemini yapmanız gerekmektedir.
Bilgisayar biliminde algoritmalar yazılımdaki her yerdeler.. Bilgisayar programları, algoritmaların bir dizi kod ile ifade edilmiş halleridir.
Örneklendirecek olursak, bilgisayarda offline olarak yapılan tüm işlemler, oynanan oyunlar, çalıştırılan programlar, web siteleri, mobil uygulamalar, robotlar… Kısacası sanal ortamdaki her işlem algoritmalar ile gerçekleşiyor. Gelin beraber algoritma ile programlama arasındaki bağlantıyı inceleyelim.
Algoritmanın Özellikleri
Algoritmaların belirli özellikleri vardır:
Kesinlik: Her adım açık ve net bir şekilde tanımlanmıştır. Herhangi bir belirsizlik içermez.
Sonluluk: Algoritma, sonlu sayıda adımda sonlanır.
Girdiler ve Çıktılar: Algoritma, belirli girdiler alır ve bu girdilere dayalı olarak çıktılar üretir.
Etkililik: Her adım, belirli bir sürede tamamlanabilecek işlemler içerir.
Genellik: Algoritma, belirli bir problem sınıfını çözmek için tasarlanmıştır, tek bir özel duruma değil.
Algoritma Türleri
Algoritmalar farklı türlere ayrılabilir:
Arama Algoritmaları: Veri yapılarında belirli bir öğeyi bulmak için kullanılır. Örneğin, ikili arama algoritması.
Sıralama Algoritmaları: Verileri belirli bir sıraya koymak için kullanılır. Örneğin, kabarcık sıralama, hızlı sıralama algoritmaları.
Graf Algoritmaları: Graf yapıları üzerinde işlemler yapmak için kullanılır. Örneğin, Dijkstra’nın en kısa yol algoritması.
Dinamik Programlama Algoritmaları: Karmaşık problemleri daha küçük alt problemlere bölerek çözmek için kullanılır. Örneğin, Fibonacci sayılarının hesaplanması.
Böl ve Fethet Algoritmaları: Problemi daha küçük parçalara bölerek ve her parçayı ayrı ayrı çözerek çalışan algoritmalardır. Örneğin, hızlı sıralama, merge sort.
Algoritma ve Programlama Bağlantısı
Tüm programlama dillerinin temelinde algoritma vardır. Algoritmalar, programlama dillerinin vasıtasıyla uygulanabilirler.
Programda kullanılan dil ve kullanım alanı ne olursa olsun algoritması olmayan bir program yoktur. Programda bir algoritmanın işlemesi için dışarıdan gelen tüm girdiler “değişken” olarak tanımlanır. Algoritmadaki döngüler ve işlemler, bu değişkenler üzerinden gerçekleşir.
Algoritmadaki tüm ihtimaller belirtilmiş ve net olmalıdır. Hiçbir ihtimal şansa bırakılmamalıdır.
Algoritmaların Günlük Hayattaki Önemi
Algoritmalar, sadece bilgisayar biliminde değil, aynı zamanda günlük hayatımızda da önemli bir rol oynar. Örneğin, bir tarif kitabındaki yemek tarifleri, bir matematik problemini çözme yöntemi veya yol tarifleri algoritma olarak düşünülebilir. Algoritmalar, karmaşık ve zor problemleri daha yönetilebilir hale getirir ve sistematik bir şekilde çözülmesini sağlar.
Algoritmaların Geleceği
Algoritmalar, yapay zeka, makine öğrenimi ve büyük veri analitiği gibi alanlarda da kritik bir rol oynamaktadır. Bu alanlardaki ilerlemeler, daha karmaşık ve güçlü algoritmaların geliştirilmesini ve uygulanmasını gerektirmektedir. Algoritmaların etkin ve verimli bir şekilde tasarlanması, gelecekteki teknolojik gelişmelerin temelini oluşturacaktır
Algoritmalar, sadece bilgisayar biliminde değil, aynı zamanda günlük hayatımızda da önemli bir rol oynar. Örneğin, bir tarif kitabındaki yemek tarifleri, bir matematik problemini çözme yöntemi veya yol tarifleri algoritma olarak düşünülebilir. Algoritmalar, karmaşık ve zor problemleri daha yönetilebilir hale getirir ve sistematik bir şekilde çözülmesini sağlar.
Akış Diyagramları – Şemaları
Her algoritma kağıt halinde yazılabilecek şekilde basit olmalıdır. Algoritmalar metin olarak düz yazı ile veya akış diyagramları ile gösterilebilirler.
Akış diyagramları, algoritmanın işleyişini neden-sonuç ilişkisini göstererek sırayla aktarılmasını sağlar.
Basit Algoritma Örnekleri, Şekilleri ve Çözümleri
Yazımızın son kısmında sizlere metin halinde ve akış diyagramı şeklinde 2 farklı algoritma örneği göstermek istiyorum.
Örnek 1 : Kullanıcı tarafından belirlenen 3 farklı sayının ortalamasını alalım.
Bu algoritmadaki değişkenlerimiz : x, y, z, sonuc
1: Başla. 2: x sayısını gir. 3: y sayısını gir. 4: z sayısını gir. 5: sonuc = (x+y+z)/3 işlemini yap. 6: sonuc değişkenini göster. 7: Dur.
Örnek 2 : Yükseklik ve taban uzunluğu klaveden girilen üçgenin alanını hesaplayan uygulamanın algoritmasını bulalım.
1: Başla 2: Sayısal ( yükseklik ve taban ) 3: Ondalıklı (alan) 4: Yaz (‘’yükseklik nedir’’) 5: Yükseklik <- oku() 6: Yaz (‘’taban uzunluğu nedir ‘’) 7: Taban <- oku() 8: Alan = (yükseklik*taban) /2 9: Yaz ( alan ) 10: Dur
Örnek 3 : Bir iletkenin kutupları arasındaki gerilim (V) iletkenden geçen amper türünde akım (I) iletken üzerinde var olan direncin (R) çarpımına eşittir. V=I*R formülüyle gösterilir. Formülden faydalanarak kullanıcı tarafından girilen akım ve direnç değerlerine göre iletkenin kutupları arasındaki gerilimi hesaplayan programın algoritmasını bulalım.
1: Başla 2: Sayısal ( V,I,R) 3: Yaz (‘’akım nedir’’) 4: I <- OKU() 5: Yaz (‘’direnç nedir’’) 6: R <- oku () 7: V = I*R 8: Yaz (V) 9: Dur
Örnek 4: 1’den 100’e kadar tek sayıları yazdıran programın algoritmasını yazalım.
1: Başla 2: Sayac=1 3: Toplam=0 4: EĞER Sayac Mod2 != 0 İSE 5: YAZ Sayac 6: Sayac=Sayac+1 7: Eğer Sayac<100 ise Git Adım 4 8: Dur.
Örnek 5 : Daha önce yaptığımız Engelden Kaçan Robot uygulamasındaki algoritmayı inceleyelim. Robottaki sensörün gördüğü mesafe değeri 15 cm’den büyük ise ileri gitsin, 15 cm’ye eşit veya 15 cm’den küçük ise robot sağa dönsün.
Algoritma Öğrenmenize Yardımcı Olacak Ürünler
Algoritma ve programlama arasındaki bağlantıyı öğrendin, şimdinin ve geleceğin mesleği olan yazılımı tam anlamıyla öğrenmen için algoritma kavramını biraz daha geliştirmen gerekiyor. Bu nedenle sana tavsiye edebileceğimiz birkaç ürün grubu var!
Makeblock mBot
Algoritma oluştururken ve bir algoritma dizisini yazılıma döktükten sonra uygulamalar ile karşılığını görebilmek öğrenmeye daha çok motive eden en önemli unsurlardan biridir. Bu sebeple öğrenciler ve programlamaya yeni başlayanlar sıkça fiziksel ortamda çalışmaların yapıldığı robotik-kodlama uygulamalarına yönlendirilirler. Çünkü bilgisayar ortamındaki veri çıktısından daha somut karşılıklar elde edilir. Makeblock markasının mBot robot kiti de başlangıç seviyesi için en ideal ürün setlerinden biridir.
mBot, sürükle-bırak mantığı ile algoritmaların oluşturulduğu grafiksel programlama dili olan Scratch tabanlı bir yazılım arayüzüne sahiptir. Yapısal olarak da kolay sökülüp monte edildiği için çocuklar için de mekaniği kolay kavrayabilmeleri için uygun bir kittir. Aynı zamanda LEGO yapıları ile uyumlu olduğu için robotunuzun fiziksel görünüşünü istediğiniz gibi eklemeler yapabilirsiniz.
Sensörler ve motorlar gibi elektronik komponentlerin de bulunması sebebi ile böylece yazılım ve mekaniğin yanında elektronik bağlantılar konusunda da bilgi edinme şansına sahip olma imkanı sağlıyor. mBot hakkında daha detaylı bilgiye buradan ulaşabilirsiniz.
U-Bot
U-Bot çocuklar için okul eğitimleri öncesinde kendilerini problem çözme, analitik düşünme gibi yeteneklerini keşfedebilmeleri ve geliştirebilmeleri için tasarlanmış bir robottur. mBot’tan farklı olarak programlama için bir bilgisayar kullanılmamaktadır. Bilgisayar olmadan kodlama yaparak bir robot ile bundan geri bildirim elde etmek üzerine bir çalışma mantığı vardır. Set içeriğinde destekleyici metin ve görseller bulunmaktadır. U-Bot eklenti paketleri ile daha kapsamlı ve çeşitli uygulamalar yapılabilir.
BBC Micro:Bit
Micro:Bit geliştirme kartı İngiltere’de BBC tarafından geliştirilmiştir. Arduino, Raspberry Pi gibi bir geliştirme kartıdır. Çocuklar ve programlamaya yeni başlayanlar için tasarlanmıştır. Basit programlama arayüzü ve elektronik bağlantılar için gayet kolay kullanımlı bir donanıma sahip olması ile sıkça tercih edilmektedir.
micro:Maqueen
micro:Maqueen, BBC’nin geliştirdiği ve micro:Bit ile uyumlu bir robot kitidir. Grafiksel programlama dilleri ile kodlanabilen, STEM eğitim modeli için özellikle tasarlanmış bir uygulama aracıdır. Scratch ile programlamak mümkündür. micro:Bit ile uyumlu olması dolayısı ile Arduino ile de uyumludur ve ayrıca Python ve diğer programlama platformları ile programlanabilmektedir. micro:Maqueen içeriğinde kızılötesi çizgi ve ultrasonik mesafe sensörlerinin yanısıra RGB LED’ler ve kumanda bulunmaktadır.
Bu yazımızda sizlere algoritmanın ne olduğundan ve nasıl algoritma oluşturduğumuzdan bahsettim. Bir sonraki yazımızda görüşmek üzere, takipte kalın 🙂
Algoritma mantığını eğlenerek öğrenmek isterseniz, elektronik ve robotik eğitim setlerimizi hemen incelemenizi tavsiye ederiz:
saolun çok işime yaradı
ben izledim ama hiç bşy anlamadımmm
AYNEN.
tekrar yapabilirsin
yolayana çok sağol
sizce hoca beyebirmi
Bir ünitenin konusunu, konu başlıklarını ,içeriklerini belirli bir sistematiğe göre tablolaştırmak mı acaba?’ bu kadarını anlayabildim sadece.
kader konusunu anlamamda ilham kaynağı oldu…
aynen Mehmet
aynen Beşir
aynen arda
aynen Arda
aynen arda
aynen selami
aynen mehmet
aynen habasi
Aynen saalık
aynen saalık
aynen saalık
🙂
Bu konu fazla kafan karıştırıcı,bende birşey anlamadım
de ayrı
şey her zaman ayrı yazılır
Beşir , bu en kolay konu.aslında bende bilişimden zorlanıyorum ee tabii çok gerekli sayılacak bir ders bu yüzden önemli gibieee…Bu kadarr…
İçecek hazırlayan Kahve, çay otomatlarını bilirsiniz. Bardağa kahveyi ve kaynar suyu ekler, biraz şeker ve sütten sonra Çın!sinyalini verir, işte size bir bardak kahve. Bu bir algoritmadır.
ben mark zuckenberg gibi zengin olmak istiyorum.
yoo
Sarp bey bunu herkes ister. Önemli olan çalışmayı istemek.
çok teşekkür ederim klavyenize saalık
merhaba
çok iyi bigi vermişsiniz
Bilgisayara verilen komutların şema halinde gösterimi
@musapbayar
merhabalar teşekkürler
merhaba teşekkürler rica ederim saolun varolun
bynim yndı
benimde
benimde beynim yandı
bizımde
Çok teşekürler
hiç yardımcı olmadınız
gök güzel olmuş
çok güzel
çok teşekkürler
anlayılmayacak ne var
BENCE ÇOK İYİ BİŞEY BOOOOOO
Aynen saalık
Yoo gayet te güzel anlattı
sağolun
çok güzel be
teşekkürler
hoca sözlü yapıyo yardım lazım
Çok teşekkürler ♥
Alogritma sirali giden 1 2 3 4 5 6 gibi syailar bir alogritma dir 123454 bir alogritma dildir alogritma hem nesen yoneli hemde matamatiksel de denilebilir
her girdi bir işlemdir. işlem1 X İŞlem1’=çıktı
Yani şuan anda pek bişey anlamadım galiba anlamak için bir yaş sınırı var …
HOCAM ÇOK TŞK ÇOK İŞİME YARADI SAOL BEN 2-C’DEN ARDA ÖZDEM
Evet ya benim de. Ben de 4/A dan Hikmet.
sayin yazar goruldugu gibi anlattiginiz konu ve verilen ornekler konuyu dahada anlasilmaz hale getirdi.
bilinmesi gereken algoritma neden zorluyorsunuzki?
biraz bilenler icin cok guzel basic anlatim.
çok teçekurler
İnsan hareketleri de bir algoritmik olaydır.
Musluktan bir bardak su almak için
Musluğa git…yaklaş..mesafe yeterli mi?
Hayır..yaklaşmaya devam et..mesafe yeterli mi?
Evet…dur. sağ elinle musluğu çevir, su yeterli akana kadar
Çok akıyorsa geri çevir
Bardağı musluğa uzat..mesafeyi kontrol et..
Bundan sonrasını kendiniz düşünebilirsiniz…
Algoritma İngilizce’den geldiği için havalı duruyor, ama bu bildiğin yöntem demek.
Algoritma = Yöntem
yöntem
1. bir şey yaparken tutulan, bir amaca erişmek için izlenen düzenli yol.
2. bilimde, belli bir sonuca erişmek için, bir plana göre izlenen dizgesel yol.
Umut, algoritma yöntem benzetmen çok doğru. 👍👍
Yardımcı olurmusunuz
İnşallah yorumum kabul edilir amin
Duâlarınız kabul oldu 🙂
Hocam yorum atmak paralımı?
Bedava 🙂