Bilgisayar Kavramlarıwww.bilgisayarkavramlari.com |
Yazan : Şadi Evren ŞEKER Bu yazının amacı, JAVA programlama ortamında kullanılan applet teknolojisine hızlı bir başlangıç yapmak ve basit bir appletin nasıl kodlanıp çalıştığını göstermektir. Öncelikle applet nedir bundan bahsedelim. Applet teknolojisi aslında JAVA’nın günümüzdeki tahtına ulaşmasında en önemli role sahip olan teknolojilerindendir. Sene 1995-1996 yıllarında henüz en güçlü internet taryıcısı Netscape Navigator iken [...]
Yazan : Şadi Evren ŞEKER Bu yazının amacı, PROLOG diline giriş yapmak ve basit bazı yapay zeka problemlerinin PROLOG dilinde nasıl kodlanarak çözüldüğünü göstermektir. Kurulum ve çalıştırma: Bu yazı kapsamında SWI-PROLOG programı kullanılacaktır. Programı, www.swi-prolog.org adresinden temin etmek mümkündür. Yazı kapsamında MAC OSX üzerinde örnekler çalıştırılarak gösterilecektir ancak kurulum ve sonrasında başarılı bir çalıştırma yapılabiliyorsa [...]
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ı : [...]
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, [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, bir programın incelenmesi sırasında, herhangi bir kaziyenin (predicate, haber, önerme), çeşitli işlemler uygulanmasına karşılık yeknesan olması halidir. Diğer bir deyişle, program çalışır ve çeşitli işlemlerden geçer, ancak bazı şeyler değişmeden kalıyor ve ne kadar işlem yapılırsa yapılsın değişmiyorsa buna yeknesan (değişmez, invariant) ismi verilir. En basit örneği, bir [...]
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: [...]
Yazan : Şadi Evren ŞEKER İyileştirme problemleri açısından klasik bir örnektir (optimisation problems). Problem basitçe bir kutunun içerisine en az boş alan bırakarak, eşyaların en iyi şekilde nasıl yerleştireceği olarak düşünülebilir. Aslında problemi boyutlara göre incelersek aşağıdaki şekilde bir liste yapılabilir: Tek boyutlu kutulama (1D bin packing) :Bu problemde amaç bir çizgi veya hat gibi [...]
Yazan : Şadi Evren ŞEKER Bu yazının amacı, JAVA dilinde bulunan ve grafiksel kullanıcı ara yüzü geliştirmekte kullanılan SWING kütüphanesine hızlı bir başlangıç yapmaktır. Öncelikle Swing kütüphanesinin gelişiminden hızlıca bahsedelim. Swing kütüphanesi JAVA diline JDK 1.1 sürümünden sonra eklenmiştir. Daha önce AWT (Active Window Toolkit) ismi verilen bir kütüphane kullanmaktaydık ancak çok daha fazla ve [...]
Yazan : Şadi Evren ŞEKER Bazan biz insanlar için çok kullanılan kelimeler, tanımlanması en güç kelimeler haline dönüşebiliyor. Algoritma da sanırım bilgisayar bilimleri için benzer özellikte olan bir kelime. Sanırım bu kelimeyi tanımlarken “bir dizi matematiksel adım” ifadesini kullanmak yerinde olur. Bütün algoritmalar, matematiksel olarak ispatlanabilen ve dizilimi kesinlikle önem taşıyan ve bir metot anlatmasıdır. [...]
Yazan : Şadi Evren ŞEKER Haberleşmede kullanılan bir terimdir. Bir kod kelimesi (code word), belirli bir teşrifatın (protocol, protokol) anlamlı en küçük parçasıdır. Her kod kendi başına tek bir anlam ifade eder ve bu anlam yeganedir (unique). Aynı yaklaşım programlama dilleri için de geçerlidir. Her programlama dilinde bulunan her kelime tek bir anlam ifade eder. [...]
Yazan : Şadi Evren ŞEKER Bilgisayar kodlamasında, bir kodun okunabilirliğinin düşük olması, yani kod takibinin zor olması durumunda, koda verilen isimdir. Genellikle yapısal programlama dillerinde (structured programming languages) fonksiyonların bulunması ile birlikte GOTO veya JMP gibi, kodun içerisinde bir yerden başka bir yere atlayan komutların kaldırılması mümkündür. Bu tip komutların kullanılması durumunda, kodun hem diğer [...]
Yazan : Şadi Evren ŞEKER Robert Floyd tarafından tasarlanan bir sayı üçgenidir. Üçgen, her satırda, o satır kadar elemandan oluşan ve ardışık sayma sayılarının satırlara dağıtılması ile şekillenen, sağa yaslı bir dik üçgen olarak tanımlanabilir: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Yukarıdaki şekilde üçgenin ilk 5 [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde sıkça kullanılan sonlu durum makinelerinin (finite state machine, FSM veya Finite State Automaton , FSA) gösteriminde kullanılan iki farklı yöntemdir. Genelde literatürde bir FSM’in gösteriminde en çok moore makinesi kullanılır. Bu iki yöntem (mealy ve moore makinaları) sonuçta bir gösterim farkı olduğu için bütün mealy gösterimlerinin moore ve [...]
Yazan : Şadi Evren ŞEKER Genel olarak bir işin yapılması için, gereken ek maliyetlere verilen isimdir. Örneğin bir kamyonun, bir yükü taşıması için, kendisini de taşıması gerekir. Kendisini taşımasının maliyeti, bu işlemdeki ek yüktür (overhead). Bilgisayar bilimlerinde, çeşitli alanlarda farklı anlamlarla kullanılmaktadır. Örneğin veri iletişimi (network) konusunda ek yük (overhead) denildiğinde genelde bir veriyi iletmek [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, işlemcideki çalışmadan önce yapılacak işleri ifade etmek için kullanılan bir terimdir. Çoğu programlama dili açısından, programın çalışması aşamasına geçilmeden önce (run-time) yapılacak işleri belirtir. Genellikle bir betik (macro) şeklinde kayıtlı olarak dosyada duran ve programın derlenmesi aşamasından (compile time) önce veya sonra, ama çalıştırılmadan önce yapılan işleri ifade [...]
Yazan : Şadi Evren ŞEKER Bu yazının amacı, geliştirme ortamlarında kullanılan kodlama standartları için örnek bir doküman oluşturmaktır. Kodlama standardı, daha sonradan yapılacak olan bakım, güncelleme ve ekleme işlemlerinin kolaylaşmasını sağlarken, dokümantasyon ve projeye dahil olan yeni personelin adaptasyonunu hızlandıracaktır. Kurallar, aşağıdaki başlıklar halinde sunulmuştur. Karakter Kodlaması Kod geliştirilmesi sırasında, kullanılan isimlerin hiçbirisinde Türkçe karakter [...]
Yazan : Şadi Evren ŞEKER Bu yazının amacı, C++ dili için fonksiyon üzerine bindirme (function overriding veya method overriding) konusunu açıklamaktır. Üzerine bindirme işlemi, basitçe aralarında miras (inheritance) ilişkisi bulunan iki sınıf için kullanılabilir. C++ dilindeki, nesneler arasında kurulan bu ilişki modeli hakkında daha detaylı bilgi için, bu bağlantıya tıklayabilirsiniz. Öncelikle iki sınıf tanımlayıp bu [...]
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 gösterim, bool cebirinde (boolean algebra) kullanılan ve kaziyeleri (önerme, proposition) ve (and) bağlacı ile bağlamanın özel bir şeklidir. Kısaca CNF (conjuction normal form) olarak ifade edilir. Diğer bir normal şekil olan Chomsky Normal Form (CNF) ile ilgili bilgi arıyorsanız buradan ulaşabilirsiniz. Bu özel şeklin taşıdığı kuralları aşağıdaki şekilde sıralayabiliriz: [...]
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ı python programlama dilindeki temel veri işlemleri için kullanılan listeler (lists) ve sözlükleri (dictionaries) açıklamaktır. Python programlama ortamının kurulumu ve bu dilde yapılabilecek temel bazı işlemler için python ile programlama başlıklı yazıya bakabilirsiniz. Öncelikle listelerden başlayıp ardından sözlüklerden bahasedeceğiz: Bir liste değişkeni (variable) aşağıdaki şekilde köşeli parantezler ile [...]
Yazan : Şadi Evren ŞEKER Bu yazının amacı, python dilinde kullanılan dosya işlemlerini anlatmak ve basit örnekler ile temel dosya işlemlerini göstermektir. Python programlama ortamının kurulumu ve bu dilde yapılabilecek temel bazı işlemler için python ile programlama başlıklı yazıya bakabilirsiniz. Dosyaların açılması Python dilinde dosya işlemlerini gerçekleştirebilmek için öncelikle dosyaların açılması gerekir. Dosya açmak için [...]
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 [...]