Evet yazılıma giriş postumuzun üçüncü postundan selamlar. İlk postumuzda yazılıma ufak bir giriş yaptık nedir, ne değildir, nasıl başlayabiliriz diye ikinci postumuzda ise "Hello world" ile yazılım dünyasına bir selam çaktık. Şimdi ise yazılımın BABASI algoritma'dan bahsedeceğiz.Aslında çok iddialı olacak ama yazılımcı olmanız için yazılım dili bilmenize gerek yok ALGORİTMA bilin yeterli bile diyebilirim sanırım.
Peki bu kadar önemli ama nedir bu algoritma.
Algoritma Nedir?
Bir problemi kısa, kolay, düşük maliyetli, ve güvenli bir şekilde ortadan kaldıran çözüm yoluna “algoritma” denir. Aslında sadece yazılımda değil hayatın her alanında kullanılır. Örnek olarak bir bebek karnı acıktığında ağlamaya başlar. Bu bebeğin kendi acıkma problemini çözmesi için ürettiği veya kodlandığı algoritmadır. Yada evinizden çıkıp işinize giderken hangi rotasyonu kullanacağınızı düşünmenizde bir algoritmadır.
Source
Steve Jobs - Mark Zuckerberg - Barack Obama bu insanların hepsi yazılım ve programlamanın öğrenilmesi gerektiği ve size en azından düşünmeyi öğreteceğini söylediler. Bende onlara katılıyorum.
Yazılım ile uğraşan arkadaşlarında bana katılacağını düşünüyorum, yazılım düşünme biçiminizi evrimleştirir. Yazılım yazarken kullandığınız algoritmik düşünme biçimini farketmeden tüm hayatınıza uyarlamaya başlarsınız. Hatta bazı mühendisler tarafından bu düşünce biçimi "mühendis kafası" altında reklamı yapılarak satılmaktadır.
Peki konumuza geri dönelim algoritmanın ne olduğunu ve ne kadar yararlı olduğunu öğrendik ama yazılım ile alakası nedir?
Algoritmanın yazılım ile bağlantısı
Tüm yazılımların temelinde algoritma kullanılır. Algoritmalar programlama dilleriyle beraber uygulanırlar. Kullanılan programlama dilleri algoritmanın gerçekleştirilmesi bir araçtır. Aslında bilgisayara ne yapacağını anlatmanın bir yoluda diyebiliriz algoritma için. Yazılımda kullanılan dil ve kullanım alanı ne olursa olsun algoritması olmayan bir program yoktur. Programda kullanılan tüm veriler "değişken" olarak tanımlanır ve algoritma ile bu veriler işlenilir ve kullanılır. Değişkenler (gelen veriler) adındanda anlaşılabileceği gibi değişebilir ama algoritma sabittir.
Hayattan bir örnekle açıklamam gerekirse diş fırçalamanın algoritmasını düşünebiliriz. Diş fırçalamanında beynimizde bir algoritması vardır sadece biz bunu farketmeyiz.
- Diş macununu al
- Diş fırçasını al
- Diş macunun kapağını aç, diş fırçasına macunu sık
- Dişlerini fırçala
Bu programda değişkenler yani kimin dişini fırçaladığı sürekli değişebilir ama algoritma hepsi için aynıdır. Tabi bu algoritma daha da güçlendirilebilir örnek eğer varsa diş macununu al yoksa markete gidip diş macunu al gibi (yazılım dilllerindeki sabit if-else). Tabi bu sefer markete gitmek için yazılan algoritmalar devreye girecektir :D.
Bir yazılımcının bir programın algoritmasındaki tüm olasıkları düşünmesi ve bunların algoritmasını yazması gerekir. Yoksa programda hatalar ve buglar ortaya çıkar. Örnek steemit'e kayıt olmanın algoritmasını yazan kişi eğer kişinin şifreyi boş bırakıp kayıt olmaya çalışmasını düşünüp programa bunun algoritmasınıda yazmazsa kişiler kayıt olurken şifresiz kayıt olabilir. Veya kullanıcı adı olmayan kullanıcılar :D boş postlar bunlar çok kötü olabilir.
Algoritma ve Programlama Örnekleri
Şimdi "yazılımcı olmanız için yazılım dili bilmenize gerek yok ALGORİTMA bilin yeterli" sözüme geri dönüp size bir kaç program örneği vermek istiyorum.
Örnek olarak iki sayıyı çarpmanın ve sonucu göstermenin algoritmasını yazalım.
Değişkenler
- Birinci sayı
- İkinci sayı
- Çarp
Algoritma
Adım 1-Birinci sayıyı al
Adım 2-İkinci sayıyı al
Adım 3-"Çarp=Birinci sayı*İkinci sayı" işlemini yap
Adım 4-Çarp'ı yaz
Şimdi bu işlemi yazılım dillerini kullanarak program olarak yazalım.
C# Yazılım dili:
- int sayi1, sayi2, carp; // Değişkenler tanımlandı
- sayi1 = int.Parse(Console.ReadLine()); // Birinci sayı alındı
- sayi2 = int.Parse(Console.ReadLine()); // İkinci sayı alındı
- carp = sayi1 * sayi2; // İşlem yapıldı
- Console.WriteLine(“sonuç=” + carp); // Sonuç ekrana yazdırıldı
Python Yazılım dili:
- sayi1 = input("Sayı1 = ") // Birinci sayı alındı
- sayi2 = input("Sayi2 = ") // İkinci sayı alındı
- carp = sayi1 * sayi2 // İşlem yapıldı
- print "\tsonuç=",carp // Sonuç ekrana yazdırıldı
Gördüğünüz gibi yazılım diline göre program'ın yazılma biçimi birazcık değişti ama algoritma hep aynı kaldı. Eğer programı nasıl yapacağınızın algoritmasını biliyorsanız tek yapmanız gereken o dilde o algoritma adımının nasıl yapılacağını öğrenmek oluyor.
Örnek:
C# 'da değişken nasıl tanımlanır.
C# 'da dışarıdan bir sayı nasıl alınır.
C# 'da iki sayı nasıl çarpılır.
C# 'da bir değişken nasıl yazdırılır.
Bir dil ile programlamadaki algoritma mantığını öğrendiğinizde ve bu örneklerdeki baştaki "C# 'da" bölümünü istediğiniz dil ile değiştirdiğinizde algoritmanızla istediğiniz dilde program yazmış oluyorsunuz.
Bu algoritma konusunun üzerine çok daha fazla gidilebilir ama şimdilik burada bitirmek istiyorum. Sonraki yazılarda görüşmek dileğiyle.
Yazı sonu müziği:
Pixies - Where Is My Mind
İyi günler dilerim, yazınız @try-market ve @kusadasi tarafından yürütülen küratör projesi için seçildi.
Proje ile ilgili ayrıntılı bilgiye buradan ulaşabilirsiniz.
Cointurk Discord Kanalı
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Teşekkürler ❤️
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Örnekte Python 2'yi vermişsin gözümden kaçmadı sanma 😀 , Python öğrenecek olanlar varsa python 3 u öğrenin arkadaşlar.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Algoritma ve yazılım hatta bilgisayar matematiğin ürünüdür bu yüzden ,matematigi sevin ve öğrenin.❤️
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Kardeşim git matematikle python 3 'ün reklamını kendi postlarında yap benim postumu kullanma rica ediyorum :D
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Yazılım hakkında bilgi sahibi olduğun için çok şanslısın bu bilgilerini bir çok alanda paraya dönüştürebilirsin.
Bol şans 🍀
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Yazılımda para yok abla efsane onlar hep 😂😂😂
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Bem iyi diye duymuştum hatta oğlum için tercihlerinde yazdırmıştım ama tutmamıştı. Sonra metalurji ve malzeme mühendisliği kazandı
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
😂 Her meslekte olduğu gibi yazılımda da "şans,bilgi,emek"abla bu üçü varsa zaten limon bile satsan para var.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Haklısın ablacım şansın bol olsun inşallah ☺️
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Bu yazı Curation Collective Discord Sunucusunda küratörlere önerilmiş ve manuel inceleme sonrasında @c-squared topluluk hesabından oy ve resteem almıştır.
This post was shared in the #turkish-curation channel in the Curation Collective Discord community for curators, and upvoted and resteemed by the @c-squared community account after manual review.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit