Yazan : Şadi Evren ŞEKER Veri yapıları (data structures) üzerinde uygulanan döngü (loop) tiplerinden birisidir, literatürde haritalama tipi olarak da geçmektedir. Temel olarak bir veri tipi üzerindeki değişimi uygulamak için kullanılırlar. Örneğin aşağıdaki bağlı listeyi (linked list) ele alalım: Yukarıdaki bu bağlı listedeki elemanların üzerine, sayı değerini 1 arttıran bir fonksiyon bindirildiğinde (map) aşağıdaki sonuç […]
Category: C/C++
Atıf ile Çağırma (Call by Reference)
Yazan : Şadi Evren ŞEKER Programlama dillerinde, fonksiyon çağırma işlemi sırasında kullanılan yöntemlerden birisidir. Farklı kaynaklarda atıf geçirme ( pass by reference ) olarak da geçmektedir. Genelde bir programlama dilinin standart çağrıma yöntemi değer ile çağırmadır (call by value) ancak gösterici (pointer) desteği olan dillerde bu standart çağırma yöntemine ilave olarak atıf ile çağırmak da […]
C ile Zaman İşlemleri
Yazan : Şadi Evren ŞEKER C dilinde mevcut zamanı almak ve işlemek mümkündür. Bunun için time.h dosyasının içerisinde bulunan fonksiyonlar kullanılabilir. Ayrıca time.h dosyasında bulunan time_t oluşumu (struct) zaman tutmak için geliştirilmiştir ve zamanı oluşturan alt unsurları da içerir. Örneğin şu andaki zamanı ekrana basmak için aşağıdaki kod kullanılabilir: struct timeval tv; time_t curtime; […]
Dizgi Karşılaştırma (String Comparison)
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde metin ve yazı gibi bilgileri tutmak için kullanılan dizgileri (Strings) tutan değişkenler karşılaştırılırken eşitlik kontrolü yapılması mümkün değildir. Bunun yerine dizginin tamamının eşit olup olmadığını kontrol etmek ve ancak bütün elemanları aynıysa eşit oldukları hükmüne varmak gerekir. Bu durum aşağıdaki şekilde açıkça görülmektedir: Yukarıdaki şekilde hafızada durmakta olan […]
Kabuk Sıralama (Shell Sort)
Kabuk Sıralama (Shell Sort) Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan sıralama algoritmalarından birisi de kabuk sıralamadır (shell sort). İsmi Türkçeye kabuk sıralaması olarak çevrilsede aslında Donald Shell isimli algoritmayı ilk bulan kişinin isminden gelmektedir. Algoritma performansı O(n2)’dir. Çalışması aşağıdaki örnek üzerinde anlatılmıştır: Sıralayacağımız sayılar: 5,7,2,9,6,1,3 olarak verilmiş olsun. Sıralama işlemi için öncelikle bir […]
İşlem Çatallanması (Process Forking)
Yazan : Şadi Evren ŞEKER Yazılan her program ilk başta tek bir işlem olarak çalışmaya başlar. Temel olarak derlendikten(compile) hemen sonra bağlanarak (link) hafızaya yüklenir (load). Yüklenen programı, işletim sistemi (operating system) bir işlem (process) olarak çalıştırır. Ancak bazı işlemler yüklendikten ve çalışmaya başladıktan sonra yeni işlemler üretebilirler. Aslında bu işlem üretme çalışan işlem üzerinde […]
String Tokenizer ( Dizgi Parçalayıcı )
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde sık kullanılan veri tiplerinden birisi de dizgilerdir (Strings). Bu veri tipinde herhangi bir yazı durabilir. Genellikle verinin bir parçasını elde etmek için dizgi içerisinden bir parça çıkarılması gerekir. Bu işlem için dizginin (string) parçalanması gerektiğinde yapılan işleme parçalama (Tokenize) ismi verilir. Örneğin çok sık kullanılan virgül ayırmalı veri […]
Sallayıcı Sıralaması (Shaker Sort)
Yazan : Şadi Evren ŞEKER Veri sıralama için kullanılan ve kabarcık sıralamasının (bubble sort) neredeyse aynısı olan sıralama algoritmasıdır (sort algorithm). Kabarcık sıralamasından tek farkı, kabarcık sıralaması tek yönlü olarak kabarcığı hareket ettirirken, sallayıcı sıralaması bir sağdan bir soldan iki yönden de sıralamaktadır. Bu sebeple çift yönlü kabarcık sıralaması (bidirectional bubble sort) ismi de verilmektedir. […]
Void (boş tip)
Yazan : Şadi Evren ŞEKER Bu yazı C dilinde bir tip olarak void tipini açıklamayı amaçlamaktadır. void anlam olarak boş demektir. Daha genel anlamda tipsiz demektir. Yani C dilinde int, char, float gibi tiplerimiz var. Şayet bir değişkenin tipi yoksa (veya belli değilse) o zaman void olur. Örneğin aşağıdaki f fonksiyonu toplamı döndürür: int f(int […]
strcpy (String Copy, Dizgi Kopyalama)
Yazan : Şadi Evren ŞEKER C / C++ dillerinde bir dizginin (string) içeriğini diğer dizginin içerisine kopyalamaya yarar. Örneğin aşağıda a dizgisinin içindeki ilk değer ikinci değişkenin içine kopyalanmıştır: char *a = “sadi evren seker”; char b[200]; strcpy(b,a); Burada üzerine kopyalanan ilk, içinden dizginin okunduğu ikinci sırada verilmelidir. Örnek kod aşağıda verilmiştir: #include <stdio.h> #include […]