İşlem Önceliği (Operator Precedence)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde önemli konulardan birisi olan programlama dillerinin işlemleri yapma sırasını belirler. Bir programlama dilinde işlem önceliği bir iki farklı unsura göre belirlenir. Öncelikle sonucu etkileyen ve işlemin matemetiksel önceliğine göre bir tercih yapılır. Örneğin çoğu C benzeri dillerde C dilindeki işlem öncelikleri kullanılır. İçerik 1. Soldan sağa öncelik (left […]

Devam

Çok boyutlu diziler (MultiDimensional Arrays)

Çok boyutlu diziler (MultiDimensional Arrays) Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerindeki pek çok programlama dilinde birden fazla boyuttan oluşan dizilerin kullanılması mümkündür. Örneğin bir ders çizelgesini, haftalık yemek listesini yada kişilerin aylık satışlarından oluşan bir tabloyu ele alalım. Günlük hayatta pek çok yerde tablolar kullanılmaktadır. Aynı zamanda matrisler (masfuf, matrix) matematikte küçümsenmeyecek bir öneme […]

Devam

Sayma (Enumeration, Tâdâd)

Yazan: Şadi Evren ŞEKER Bilgisayar bilimlerinde alınabilecek alternatiflerin sayılması ve bu sayılan ihtimaller dışındaki ihtimallerin kabul edilmemesi durumudur ( ihtimallerin tâdât edilmesi) Örneğin programlama dillerinde bir değişkenin alabileceği değerleri tanımlayarak bu değişkene sadece bu değerlerden birisinin konulması sağlanabilir. Örneğin C dilinde yazılmış aşağıdaki kodu ele alalım: enum gunler{ pts,sal,car,per,cum,cts,paz }gun; main(){ gun=sal; printf(“n%d”,gun); //2. gün […]

Devam

Atomluluk (Atomicity)

Yazan: Şadi Evren ŞEKER Latince bölünemez anlamına gelen atom kökünden üretilen bu kelime, bilgisayar bilimlerinde çeşitli alanlarda bir bilginin veya bir varlığın bölünemediğini ifade eder. Örneğin programlama dillerinde bir dilin atomic (bölünemez) en küçük üyesi bu anlama gelmektedir. Mesela C dilinde her satır (statement) atomic (bölünemez) bir varlıktır. Benzer şekilde bir verinin bölünemezliğini ifade etmek […]

Devam

Veri yapıları üzerinde fonksiyonlar

Yazan : Şadi Evren ŞEKER Ardışık veri yapıları (consecutive data structures) üzerinde çalışan fonksiyonlar temel olarka 3 grupta toplanabilir. Bu gruplarda amaç yazılabilecek fonksiyon tiplerini üç çatı altında toplamak ve bir abstraction (soyutlama) yaparak programcıya sadece istediği fonksiyonu parametre verebileceği bir ortam hazırlamaktır. Bu işlem sırasında fonksiyon göstericileri (Function pointers) kullanılarak bir fonksiyon diğer fonksiyonlara […]

Devam

Filitreleme Tipi Fonksiyonlar (Filter Type Functions)

Yazan : Şadi Evren ŞEKER Bir veri yapısı üzerinde çalışan ve veri yapısında bulunan verileri, verilen bir fonksiyonu kullanarak eleyen (filitreleyen) fonksiyon tipidir. Bu durum aşağıdaki bağlı liste (linked list) örneğinden anlaşılabilir: Örneğin yukarıdaki bağlı liste üzerinden tek sayıları eleyen bir fonksiyon yazmak istersek yapmamız gereken, tek sayıları veren aşağıdaki fonksiyonu bu bağlı liste üzerine […]

Devam

Biriktirme Tipi Fonksiyonlar ( Accumulator Type Functions)

Yazan : Şadi Evren ŞEKER Bir veri yapısı üzerinde çalışan ve veri yapısında bulunan verileri, verilen bir fonksiyonu kullanarak bir değişkende biriktiren fonksiyon tipidir. Bu durum aşağıdaki bağlı liste (linked list) örneğinden anlaşılabilir: Örneğin yukarıdaki listede toplama fonksiyonu olarak aşağıdaki fonksiyonu uygulayacak olursak: int topla(int a, int b){ return a + b; } sırasıyla yapılması […]

Devam

Bindirme Tipi Fonksiyonlar (Mapping Style Functions)

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ç […]

Devam

İçerik Bağımsız Gramerler için Pompalama Önsavı (Pumping Lemma for Context Free Grammers)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde bir dilin, içerik bağımsız gramer (context free grammer, CFG) ile gösterilemeyeceğini ispatlamaya yarar. Yani pompalama ön savı sayesinde bir dilin CFG olmadığı ispatlanabilir ancak olduğu ispatlanamaz. Şayet pompalama önsavını geçemyorsa CFG değildir denilebilir ancak geçmesi olmasını gerektirmez. Pomplama önsavı (pumping lemma) kısaca bir dili aşağıdaki gramere uydurmaya çalışır: […]

Devam

Düzenli İfadelerde Pompalama Önsavı (Pumping Lemma for Regular Expressions)

Yazan : Şadi Evren ŞEKER Bir dilin Düzenli ifadele (Regular expression) olup olmadığının belirlenmesi için kullanılan pomplama önsavıdı (pumping lemma). Basitçe düzenli ifadede olup olmadığı sınanacak bir w dili için (yani L = w için) w= xyz şeklinde bir açılım sınanır. Buradaki sınama sırasında aşağıdaki koşulların sağlanması beklenir: |y| ≥ 1 |xy| ≤ p bütün […]

Devam