Digraph ve Trigraphs

Yazan : Şadi Evren ŞEKER Bu yazının amacı, bilgisayar programlama dillerinde kullanılan digraph ve trigraph kavramlarını açıklamaktır. Basitçe bir programlama dilinde çeşitli sebeplerden dolayı bazı karakterlerin yazılması mümkün olmadığında digraph veya trigraph ismi verilen ve arka arkaya gelen 2 veya 3 karakterden oluşan ve asılnda tek bir karakteri ifade etmek için kullanılan değerlere başvurulur. Örneğin […]

Devam

Permütasyon Sıralaması (Permutation Sort)

Yazan : Şadi Evren ŞEKER Bu yazının amacı, permütasyon sıralaması (permutation sort) olarak bilinen sıralama algoritmasını (sorting algorithm) açıklamaktır. Algoritma asılnda oldukça basit bir yapıya sahiptir. Basitçe bir sayı dizisinin bütün permütasyonları sırasıyla denenir ve bunlardan birisinin sıralı olarak bulunması halinde algoritma sona erer. Algoritmayı basitçe aşağıdaki adımlar şeklinde yazmak mümkündür: Dizi sıralı olana kadar, […]

Devam

printf sprintf fprintf

Yazan : Şadi Evren ŞEKER Bu yazının amacı, C dilinin en çok kullanılan fonksiyonlarından birisi olan printf fonksiyonu ve türevlerini açıklamaktır. Bu fonksiyonlar aşağıdaki şekilde sıralanabilir: fprintf, printf, snprintf, sprintf Bu fonksiyonların tamamı stdio.h kütüphanesi içerisinde bulunur ve bu fonksiyonların prototipleri aşağıdaki şekildedir: #include int fprintf(FILE *restrict stream, const char *restrict format, …); int printf(const char *restrict format, […]

Devam

Gnome Sıralaması (Gnome Sort)

Yazan : Şadi Evren ŞEKER Bu yazının amacı, aptal sıralaması olarak bilinen (stupid sort) ve daha sonraları gnome sıralaması ismiyle anılan sıralama algoritmasını (sort algorithm) anlatmaktır. Algoritma 2000 yılında, Hamid Sarbazi-Azad tarafından bulunmuştur ve bir dizideki sayıları sıralama amacıyla, doğru aralığa taşımayı amaçlar. Algoritma basitçe aşağıdaki şekilde anlatılabilir: Yanyana duran ve sıralama kriterini bozan bir […]

Devam

Tarak Sıralaması (Comb Sort)

Yazan : Şadi Evren ŞEKER Bu yazının amacı, tarak sıralaması (comb sort) olarak bilinen algoritmayı açıklamaktır. Algoritma, çıkışı itibariyle kabarcık sıralaması (bubble sort) ve hızlı sıralama (quick sort) karışımı olarak düşünülebilir. Tarak sıralaması aslında anlaşılması oldukça kolay bir algoritmadır. Ancak anlamak için kabarcık sıralamasının (bubble sort) anlaşılması gerekir. Şayet bu algoritmayı bilmiyorsanız, önce bu algoritmayı […]

Devam

fork fonksiyonu ve işlem çatallanması

Yazan : Şadi Evren ŞEKER Bu yazının amacı, bilgisayar bilimlerinin bir çalışma alanı olan işletim sistemlerinde sıklıkla kullanılan ve yeni bir işlem (process) oluşturmaya yarayan fork() ve exec() fonksiyonlarını açıklamaktır. Bu fonksiyonlar C programlama dilleri tarafından desteklenmekte ve unistd.h dosyasının içinde bulunmaktadır. Örnek bir kod verip çalışmasını açıklayarak konuyu anlatmaya başlayalım: #include <unistd.h> /* fork […]

Devam

Callback (Geriçağrım)

Yazan : Şadi Evren ŞEKER Bu yazının amacı, bilgisayar programlama dillerinde kullanılan bir yaklaşım olan geri çağırım (call back) kavramını açıklamaktır. Bir programlama dilinin, yapısal programlama dili (structured programming language) olabilmesi için aşağıdaki üç özelliğe haiz olması gerekir: Kod bloğunun koşula bağlı olabilmesi : Klasik programlama dillerindeki if/else yapısı Kod bloğunun tekrar ettirilebilir olması : […]

Devam

Lisan-ı Kaime (Dillerde Dik Açı, Orthogonal Languages)

Yazan : Şadi Evren ŞEKER Özellikle bilgisayar programlama dillerinde kullanılan bir terimdir. Buna göre dillerde bulunan özelliklerin birbirine dik olması, yani birbirinden bağımsız olması kast edilir. Kelime olarak, yöneylerin (vectors) dikliğinden esinlenilmiştir. Vektörlerin birbirine dik olması, aralarında ilişki bulunmaması (birbirine iz düşümünün sıfır olması) anlamına gelmektedir. Şayet bir dilde bulunan özellikler arasında da ilişki bulunmuyorsa, […]

Devam

Örtüşen Alt Problem (Overlapping Subproblem)

Yazan :Şadi Evren ŞEKER Bilgisayar bilimlerinde, özellikle özyineli (recursive) problemlerde, problemin bir kısmının tekrar edilmesi durumudur. Örneğin, klasik bir problem olan fibonacci sayıları örneğinde, örtüşen altproblem bulunmaktadır. Fibonacci serisinin 4. terimini hesaplamak isteyelim ve bunun için aşağıdaki fonksiyonu yazmış olalım: Matematiksel olarak : fib(0) = 1, fib(1) = 1 ve fib(n) = fib(n-1)+fib(n-2) Programlama dillerinde: […]

Devam

Poisson Dağılımı (Poisson Distribution)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimleri de dahil olmak üzere pek çok mühendislik ve istatistiksel uygulamada kullanılan bir dağılımdır. İsmini, kendi olasılık teorisini yayınlayan Sim`eon Denis Poisson’un soy isminden almaktadır ve Türkçede, “pvasson” kelimesinin okunması şeklinde telaffuz edilmektedir. (neden bilmiyorum ama ben de dahil pek çok kişi bilmeden bu dağılımı İngilizcedeki “poison” gibi telaffuz […]

Devam