Yazılıma Giriş | Algoritma (Problem Çözme) | #3

in tr •  7 years ago  (edited)

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.

unordered-3192273_640.png

Image Source

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.

26341716_1416426705150474_6509140309954265088_n.jpg

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?

neo-urban-1734495_640.jpg


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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

İ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ı

Teşekkürler ❤️

Örnekte Python 2'yi vermişsin gözümden kaçmadı sanma 😀 , Python öğrenecek olanlar varsa python 3 u öğrenin arkadaşlar.

Algoritma ve yazılım hatta bilgisayar matematiğin ürünüdür bu yüzden ,matematigi sevin ve öğrenin.❤️

Kardeşim git matematikle python 3 'ün reklamını kendi postlarında yap benim postumu kullanma rica ediyorum :D

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 🍀

Yazılımda para yok abla efsane onlar hep 😂😂😂

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ı

😂 Her meslekte olduğu gibi yazılımda da "şans,bilgi,emek"abla bu üçü varsa zaten limon bile satsan para var.

Haklısın ablacım şansın bol olsun inşallah ☺️


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.