Bilgisayar Kavramlarıwww.bilgisayarkavramlari.com |
Yazan : Şadi Evren ŞEKER Bu yazının amacı, C++ dili için, nesneler arasında kurulabilecek olan ilişki tiplerini açıklamaktır. Temel olarak bir nesne kendi özellikleri ve metotları bulunan bir varlıktır. Nesne yönelimli programlama modelinde, nesnelerin özelliklerini paylaşmak veya diğer nesnelerin metotlarına erişmek için birbirleri ile iletişime girmeleri gerekir. Bu anlamda inceleyeceğimiz 4 temel ilişkiden bahsedebiliriz. Bu [...]
Yazan : Şadi Evren ŞEKER Bu yazının amacı, C++ dili üzerinden, bazı sınıf ve nesne ilişkilerini anlatmaktır. Örnek olarak, aşağıda, şekli verilen diyagramı ele alalım: Yukarıdaki bu şekilde, köşeli kutular içerisinde yazılan bilgiler, sınıf (class) bilgileridir. Yuvarlak köşeli kutular içerisinde ise, bu sınıflardan türetilmiş nesneler (objects) görülmektedir. Son olarak kalın ok, ISA ilişkisini, yani miras [...]
Yazan: Yrd. Doç. Dr. Şadi Evren ŞEKER Bu yazının amacı, C++ dili üzerinden, nesne yönelimli programlamaya hızlı bir başlangıç yapmaktır. Yazı, C dilini bilen kişileri hedef alarak hazırlanmıştır. C++ dili, gelişimi itibariyle, C dilinin bir devamı niteliğindedir ve C dilinde bulunan bütün özellikleri desteklemek gibi bir problemli bulunur. Bu problem, C++ dilinin tam olarak nesne [...]
Yazan: Yrd. Doç. Dr. Şadi Evren ŞEKER Bu yazının amacı, C bilen kişiler için C++ diline hızlı bir başlangıç yapmaktır. Bu yazıda, C++ dilinin, temel özelliklerinden bahsedilecektir. Yazıda eğitim amaçlı olarak hazırlanan bir kod üzerinden temel C++ kavramları açıklanırken, C++ dilinin, nesne yönelimli programlama özellikleri, farklı bir yazıda ele alınmıştır. Lütfen bu yazı için “C++ [...]
Yazan : Şadi Evren ŞEKER Bu yazının amacı, Microsoft tarafından geliştirilen Visual Studio paketinin C ve C++ dillerinin kullanıldığı Visual C++ programının 2010 sürümüne hızlı bir başlangıç yapmaktır. Genel olarak hem C hem de C++ dillerini desteklemekte olduğu için, bu yazıda önce C ile kodlama yapılacak ardından C++ dili anlatılacaktır. Visual C++ Express sürümünü ilk [...]
Yazan : Şadi Evren ŞEKER Kelime anlamı olarak bir değişkenin geçici, uçucu değere sahip olmasını ifade eder. Volatile tip tanımlayıcısı (Volatile Type Quantifier) basitçe bir değişken tanımının başında bulunup, bu değişkenin, program dışında bir etki altında bulunabileceğini ifade eder. Örneğin geliştirdiğimiz bir programda, farklı işlem (process) veya donanımsal etkiler sonucunda değeri değişen bir değişken (variable) [...]
Yazan : Şadi Evren ŞEKER Bu yazının amacı, dev-cpp geliştirme ortamında yazılmış projelerin MS Visual Studio ile nasıl açılabileceğini göstermektir. Örnek olarak bağlı listeler (linked list) başlıklı yazıda yayınladığım, dairesel bağlı liste (circular linked list) kodunu Visual Studio 2008 express edition ile açıp çalıştırılmasını göstereceğim. Burada anlatılanlar ile diğer Dev-CPP projeleri de açılabilir. İlk olarak [...]
Yazan : Şadi Evren ŞEKER Soru 0) Programın çalıştığı dizinde, “deneme.txt” isimli bir dosya açarak, bu dosyanın içerisine, birden yüze kadar olan sayıları bastıran bir kod yazınız. (10 puan) (sadece bu soru için program tam olmalı (include, return satırları gibi) ve yazım hatası bulundurmamalıdır ve kodunuz compile edildiğinde hata vermemelidir. ) #include <stdio.h> [...]
Yazan : Şadi Evren ŞEKER Soru 1) Bir dosyaya isminizi yazdırınız. Çözüm 1) dosyaya ismimizi yazdıran kodu aşağıdaki şekilde yazabiliriz: Yukarıdaki kodda dikkat edilecek bir husus, dosyanın “r” değil “w” şekliyle açılması ve dosyanın mutlaka kapatılmasıdır. Bilindiği üzere kapatılmayan dosyalara yazıldığından kesin olarak emin olamayız ve dosya kapatılmadıysa içerisine bilgi yazılmamış olabilir. Yukarıdaki kod çalıştırıldıktan [...]
Yazan : Şadi Evren ŞEKER Programlama dillerinde kullanılan ve dilin içerisindeki akışın bir başka noktaya yönlendirilmesini sağlayan komutlardır. Yapısal programlama dillerinde (Structured programming languages) bu tip atlama komutlarının kullanılması yasaktır. Ancak programlama dilleri, programcıya tanıdıkları esneklikten dolayı gitme komutlarını desteklerler. Basit bir etiket ve gitme komutu kullanılmış kod aşağıdaki şekilde yazılabilir: Yukarıdaki kodda, 6. Satıra [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde bir bilgi kaynağı veya veri yapısı üzerinde problemi her adımda iki parçaya bölerek yapılan arama algoritmasının ismidir. Bu anlamda bazı kaynaklarda bölerek arama olarak da geçmektedir. Arama algoritması, yapı olarak parçala fethet (divide and conquere) yaklaşımının bir uygulamasıdır. Bu yazı kapsamında diziler üzerinde ikili arama işleminin nasıl yapıldığı [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde hemen hemen bütün programlama dillerinde bulunan en basit veri tipidir. Programlama sırasında tutulan basit tam sayıları işlemek için kullanılır. Normal bir tam sayı değişkeni 16 bitliktir (ikil) ve 16 ikil ile (bit) tutulabilecek olan-32767 ile +32767 sayıları arasında tanımlı olan değerleri tutabilir. 32 bitlik işletim sistemleri ve derleyicilerin [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan arama algoritmalarından birisidir. Bu algoritma esas olarak derin öncelikli arama (depth first search DFS) ile aynı çalışmaktadır ancak tek farkı arama işlemi sırasında özellikle dairelere (cycles) takılma ihtimaline karşı sınır önlemi alınmış olmasıdır. Örneğin aşağıdaki şekli ele alalım: Yukarıdaki şekil tanım itibariyle bir ağaç özelliği göstermektedir. Yani [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan arama algoritmalarından birisidir. Arama işleminin yapıldığı grafikteki tepelerden ismini alır. Basitçe bir grafikte bulunan en düşük noktanın aranması sırasında grafikte yapılan hareketin aslında tepe tırmanmaya benzemesinden ismini almaktadır. Örneğin yukarıdaki şekilde gösterilen ok temsili bir tepe tırmanma işlemidir. Burada arama yapan algoritma aslında bir çukur bulmuş ancak [...]
Yazan : Şadi Evren ŞEKER 1. Otomatın İnşası 2. Algoritmanın arama aşaması 3. Algoritmanın çalışması 4. Algoritmanın kodlanması Bilgisayar bilimlerinde, bir metnin içerisinde farklı bir metnin veya bir kelimenin aranması sırasında kullanılan algoritmalardan birisidir. Algoritma, aranan kelime için bir otomat (automaton) oluşturur ve hedef metin içerisinde bu otomata göre arama işlemi yapar. Oluşturulana otomatın DFA [...]
Yazan: Şadi Evren ŞEKER 1. Algoritmanın başarısı 2. Algoritmanın çalışması ve bir örnek 3. Algoritmanın kodlanması Bilgisayar bilimlerinde bir metnin içerisinde başka bir metnin aranması için kullanılan en ilkel ve dolayısıyla en düşük performanslı arama algoritmasıdır (search algorithm). Algoritma hedef metinde, aranan metni harf harf bulmaya çalışır. Bu yapısından dolayı diziler üzerinde kullanılan doğrusal arama [...]
Yazan : Şadi Evren ŞEKER Bu yazıyı dersimi alan C ile programlamaya giriş öğrencileri için yayınlıyorum. Yazıyı okuyabilmek için sitemdeki C giriş dersinin sayfasında bulunan şifreyi giriniz. 510 views
Yazan : Şadi Evren ŞEKER Matematiksel olarak iki tam sayının ortak çarpanlarının (common factors) çarpımından oluşan (common multiple) en küçüğünü bulma işlemidir. Bu işlem için öncelikle sayıların çarpanlarını bulmak sonra bu çarpanlardan ortak olan en küçüğünü almak gerekir. Örneğin 60 sayısının çarpanları (factors) : 5 3 2 2 olarak yazılabilir yani 60 = 5 x [...]
Yazan : Şadi Evren ŞEKER Matematiksel olarak iki tam sayının çarpanlarına ayrıldığında, iki tam sayıyı da tam olarak bölen en büyük sayıya verilen isimdir. Sayılar üzerinden anlatmak gerekirse 60 ve 72 sayıları için 12 hem 60 hem de 72′yi kalansız bölen (tam bölen) en büyük sayıdır. Bu sayıyı bulmak için iki tam sayı da öncelikle [...]
Yazan : Şadi Evren ŞEKER Pardus kullanan ve bilgisayarına bloodshed.net sitesinden dev-cpp’nin linux versiyonunu indirerek kurmaya çalışan herkes gibi ben de libqt.so.2 veya libqtintf.so dosyası ile ilgili paylaşım (share) veya bulunamama hatası aldıktan sonra problemimi wine ile çözdüm ve bu yazının benzer durumdaki kişilere faydalı olacağını düşünüyorum. Ne yazık ki linux sürümünü çalıştıramadım ve çalışacağını [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde programlama dillerinin en alt seviyesini oluşturan ve insan tarafından neredeyse tamamen anlaşılmaz buna karşılık makine için en anlaşılır dildir. Aslında makine dilini anlamak için dillerin seviyelerini anlamakta yarar vardır. Yukarıdaki şekilde de tasvir edildiği üzere dilleri seviyelere bölecek olursak en altta donanıma en yakın ve donanım tarafından en [...]
Yazan : Şadi Evren ŞEKER JAVA, C++ veya C# gibi nesne yönelimli programlama dillerinde kullanılan bir terimdir. Basitçe, aynı anda çalışan birden fazla lifin (thread) veya işlemin (process) sıralı olmasını ve birbiri ile iletişim halinde çalışmasını sağlar. Nesne yönelimli programlama ortamında iki farklı kavram birbirine sıkça karışmaktadır. Aslında anlam olarak birbirine yakın olan synchronized methods [...]
Yazan : Şadi Evren ŞEKER İngilizce olarak object linking and embedding database kelimelerinin baş harflerinden oluşan bir veritabanı terimidir. Aslında OLE terimi (object linking and embedding) Microsoft firması tarafından kazandırılan ve uygulama geliştirme sırasında bir varlığı programa bağlamaya yarayan mantıktır. Örneğin bir prograda bulunan bir resim, programın içerisine dahil edilip çalıştırılabilir kodun (executable code) bir [...]
Yazan : Şadi Evren ŞEKER Temel olarak bir programlama dilinde resim işleme işlemleri için iki fonksiyon gerekir. Birinci resmi oluşturan imgecik (pixel) değerlerini okuyabilmek İkincisi ise resmin imgecik (pixel) değerlerini değiştirebilmek Yani aslında resim üzerinde yapılan herşey, resmi oluşturan imgecikler üzerinde yapılmaktadır. Bu yazıda CSharp programlama dili kullanılarak basit bir histogram çıkarma ve resme gama [...]
Yazan : Şadi Evren ŞEKER Gelen bir soru üzerine C# ile MS SQL server’dan veri çekmeyi adım adım kod üzerinden inceleyelim. Öncelikle veri çekmek için gereken adımları sıralayalım: Veri tabanına C# dilinde kullanıcı ve şifre ile bir bağlantı oluşturulur. Açılan bağlantı üzerinde bir sorgu (Query) çalıştırılır. Sorgu (query) sonucu bir veri yapısında (data structures) saklanır. [...]