Algoritma ve Programlama Dünyası — Uygulama 1

Turhan Can Kargın
Kodcular
Published in
4 min readJan 14, 2023

--

Herkese merhabalar!! Algoritma ve programlama dünyası serisinin bir önceki bölümünde dizilerden bahsetmiştik ve bu bizim son teorik yazımızdı. Artık JAVA, C++ ve Python ile bol bol uygulama yapacağız. Bu yazıdan önceki bölüm olan Algoritma ve Programlama Dünyası — Diziler yazısını daha okumadıysanız bu linke tıklayarak ulaşabilirsiniz.

Bu yazıda ise C++ ile girilen sayının tek mi çift mi olduğunu bulacağımız bir kısa bir örnek yapacağız. Hadi başlayalım.

Bu uygulamada kullanıcıdan bir tamsayı (integer) alacağız ve daha sonra bu tamsayının çift mi tek mi olduğunu bulacağız. Öncelikle, aşağıdaki gibi bir kod bloğu yazalım:

#include <iostream>

using namespace std;

int main() {
// Kullanıcıdan bir tamsayı alalım
int number;
cout << "Lütfen bir tamsayı girin: ";
cin >> number;

// Tamsayının çift mi tek mi olduğunu bulalım
if (number % 2 == 0) {
cout << "Girilen tamsayı çift." << endl;
} else {
cout << "Girilen tamsayı tek." << endl;
}

return 0;
}

Bu uygulamanın nasıl çalıştığına dair açıklamalar şu şekildedir:

  • İlk olarak, #include <iostream> satırı ile iostream kütüphanesini dahil ettik. Bu kütüphane, cin ve cout gibi girdi (input) ve çıktı (output) işlevlerini içerir.
  • using namespace std; satırı ile std isim uzayını kullanmaya izin verdik. Bu, cout ve cin gibi iostream kütüphanesindeki işlevleri tanımlamamıza yardımcı olur.
  • int main() fonksiyonu, C++ programlarının çalışmaya başladığı yerdir. Bu fonksiyon içerisinde, kullanıcıdan bir tamsayı (int) isteyerek number değişkenine atayacağız. Daha sonra, bu tamsayının çift mi tek mi olduğunu bulmak için modulo (%) işlemini kullanacağız. Modulo işlemi, bir sayının bölümünden kalanı verir. Örneğin, 10 % 3 = 1 ve 11 % 3 = 2 gibi.
  • Eğer number değişkeninin modulo 2'si 0 ise (yani number çift ise), "Girilen tamsayı çift." mesajını yazdırırız. Aksi halde, "Girilen tamsayı tek." mesajını yazdırırız.

Big O Notasyonu:

Bu seri boyunca yapacağımız uygulamalarda zaman zaman uygulamaların Big O notasyonlarından bahsedeceğim. Big O notasyonu, bir algoritmanın zaman veya hafıza kullanımının büyüklüğünü ölçmek için kullanılan bir sistemdir. Bu notasyon, algoritmanın veri büyüklüğüne göre ne kadar zamanda veya ne kadar hafıza kullandığını gösterir. Belki bir sonraki yazıda bu konuya daha detaylı değinebilirim.

Big O notasyonu, algoritmanın en kötü senaryodaki performansını ölçer. Örneğin, bir algoritmanın Big O notasyonu O(n²) ise, bu algoritma veri büyüklüğünün karesi kadar zamanda çalışır. Bu, veri büyüklüğü büyüdükçe algoritmanın zaman ihtiyacının çok hızlı bir şekilde artabileceği anlamına gelir.

Big O notasyon, algoritmaların performansını karşılaştırmak için çok yararlıdır. Örneğin, bir algoritmanın Big O notasyonu O(1) iken, başka bir algoritmanın Big O notasyonu O(n²) ise, ilk algoritma daha hızlı çalışır ve daha az hafıza kullanır.

KAYNAK: https://droidtechknow.com/programming/algorithms/big-o-notation/

Big O notasyonu, O(1), O(log n), O(n), O(n log n), O(n²), O(n³), O(2^n) gibi farklı değerler alabilir. Bu değerler algoritmaların zaman ve hafıza kullanımının büyüklüğünü gösterir. Örneğin, O(1) algoritmalar çok hızlı çalışır ve az hafıza kullanırken, O(n²) algoritmaların performansı veri büyüklüğü büyüdükçe çok daha yavaşlar ve daha fazla hafıza kullanırlar.

Bu uygulamanın time complexity’si O(1)’dir. Bu, algoritmanın sadece bir adımda çalıştığı anlamına gelir. Algoritma, kullanıcıdan bir tamsayı alır ve modulo işlemini yapar. Bu iki adım büyük olasılıkla aynı zamanda gerçekleşir, bu yüzden algoritmanın zaman performansı O(1) olarak ölçülür.

Bu uygulamanın space complexity’si de O(1)’dir. Algoritma sadece bir tamsayı tutmak için hafıza kullanır. Bu yüzden algoritmanın hafıza kullanımı da O(1) olarak ölçülür.

Bu uygulamanın time ve space complexity’si çok düşüktür, çünkü sadece bir tamsayı tutmak ve bir modulo işlemi yapmak gerekir. Büyük veri kümelerinde bu algoritma hala çok hızlı çalışacaktır.

Pseudocode:

Ayrıca uygulamaların daha iyi anlaşılmaları için her bir uygulama için bir pseudocode yazılacaktır. Pseudocode, bir algoritmanın nasıl çalışacağını anlatan yazılı bir açıklama formudur. Pseudocode, programlama diline özgü komutlar ve sözdizimi kullanmaz. Bunun yerine, genel anlamda anlaşılabilir kelime ve ifadeler kullanılır.

Bizim bu uygulamamızdaki pseudocode’muz şu şekildedir:

Algoritma: Çift mi Tek mi?

Başlangıç
// Kullanıcıdan bir tamsayı al
tamsayı number oku

// Tamsayı çift mi değil mi?
eğer (number mod 2 == 0) ise
// Tamsayı çift
yazdır "Girilen tamsayı çift."
değilse
// Tamsayı tek
yazdır "Girilen tamsayı tek."
bitir
Bitir

Son olarak uygulamamızın çıktısı şu şekildedir:

Bu yazıda algoritma serisinde uygulama yapmaya başladık. Bundan sonraki kısımlarda zamanla zorlaşan uygulamalar bizi bekliyor. Beğendiyseniz aşağıdaki alkışa istediğiniz kadar tıklayarak yazılarıma destek olabilirsiniz :)

Vakit ayırıp okuduğunuz için teşekkür ederim. Serinin bir sonraki bölümünde görüşmek üzere.

Herhangi bir sorunuz olursa veya benimle iletişim kurmak isterseniz tüm sosyal medya hesaplarım aşağıdaki linkte yer alıyor.

Ayrıca diğer blog yazılarımı aşağıda yer alan websitem üzerinden takip edebilirsiniz.

--

--