• Bağış
  • 2009 October

    Hızlı Sıralama (Quick Sort)

    Soru: Bir listeyi alıp hızlı sıralama algoritmasına göre (quick sort algorithm) sıralayan kodu yazınız. Çözen : Şadi Evren ŞEKER Çözüm: Hızlı sıralama algoritması hatırlanacağı üzere parçala fethet (divide and conquere) yaklaşımı kullanmaktadır. Buna göre problem önce iki parçaya bölünür ve her iki parça kendi içerisinde sorun çözülene kadar parçalanır. En sonunda tek eleman kalınca problem [...]

    Şadi Evren ŞEKER tarafından, 31/10/2009 tarihinde yazıldı. | Scheme (Lisp) | A yorum var

    Bezier Eğrisi Çizen Kod

    Soru: Üç noktanın koordinatlarını alarak bu noktalardan geçen eğriyi bezier algoritması ile ekrana çizen kodu yazınız. Çözen : Şadi Evren ŞEKER Çözüm: Bezier eğrisini çizebilmek için ikinci dereceden bir denkleme ihtiyaç duyulur. Burada denklemin ikinci derece olmasının sebebi 3 nokta ile çizim yapılmasının istenmesidir. Öncelikle programımızda kullanacağımız basit temel fonksiyonları kodlayalım: İki nokta verildiğinde bu [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Bilgisayar Grafiği (Computer Graphics), Scheme (Lisp) | A yorum var

    Bezier Eğrileri (Bezier Curves)

    Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinin bir çalışma alanı olan bilgisayar grafiklerinde kullanılan eğri biçimidir. Bezier eğri çiziminin özelliği parametrik olarak noktalar ile çalışmaları ve verilen noktalara göre bir eğri çizmesidir. Literatürde bézier curve veya bezier eğrisi olarak geçmektedir. İsmi bu hesaplama yöntemini ilk bulan Fransız matematikçiden gelmektedir. Bezier eğrilerinin boyutlarından bahsetmek doğrudur. Buna [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Bilgisayar Grafiği (Computer Graphics), Bilgisayar Matematiği | A yorum var

    Şanslı Sıralama (Lucky Sort)

    Yazan : Şadi Evren ŞEKER Sadece teorik olarak literatürde geçen bir sıralama algoritmasıdır (sorting algorithm). Buna göre sıralanacak olan dizi şanslı bir şekilde zaten sıralı verilmiştir. Dolayısıyla dizinin sıralanmasına gerek yoktur. Hatta bu kabulü yaptığımız için dizinin sıralı olup olmadığını kontrol etmemize de gerek yoktur (ne de olsa şanslıyız J ) dolayısıyla giriş dizisi her [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | algoritma analizi (teory of algorithms), veri yapıları | 1 yorum var

    Binary Search Tree’yi Inorder olarak dolaşan Kod

    Soru: Bir adet ikili arama ağacı (binary search tree) oluşturunuz ve bu ağaç üzerinde ssn numarası ve bir isim tutunuz. Bu bilgileri ssn numarasına göre ağaca yerleştirin ve yerleşen bu verileri içsıraya göre (inorder) dolaşan bir kod yazınız. Bu kodu kullanarak ağaçta arama yapan bir fonksiyon yazınız. Çözen : Şadi Evren ŞEKER Çözüm : Bu [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Scheme (Lisp) | A yorum var

    Bogo Sıralama (Bogosort)

    Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde özellikle eğitim amacıyla kullanılan bir sıralama algoritmasıdır. Algoritmanın çalışması oldukça basittir, bogosort, verilen bir diziyi sıralamak için rast gele bir dizilim üretir ve sıralı olup olmadığına bakar, şayet sıralıysa algoritma sona erer, şayet sıralı değilse rastgele olarak yeni bir dizilim elde eder, ta ki sayılar sıralanana kadar sayıları [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Programlama Dilleri, algoritma analizi (teory of algorithms), veri yapıları | A yorum var

    Öğrencinin GPA’ini hesaplayan kod

    Soru: Bir öğrencinin okul numarası, ve aldığı dersler bulunur. Bir dersin ise kodu bulunur. Öğrencinin aldığı her dersin bir kodu ve öğrencinin bu dersten aldığı not bulunur. Buna göre bir öğrenci tanımlandığında aşağıda verilen not tablosuna göre bu öğrencinin ortalamasını hesaplayan bir kod yazınız. Harf Notu (4 üzerinden) A 4 A- 3.7 B+ 3 B- [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Scheme (Lisp) | A yorum var

    Ekrana Trafik Işıkları Çizen Kod

    Soru: Sırasıyla, ekrana üç adet kırmızı, sarı, yeşilden oluşan trafik ışıklarını çiziniz, ışıklardan birini söndüren fonksiyonu, ışıklardan birini yakan fonksiyonu, ışık değiştiren fonksiyonu ve sıradaki ışığı yakan fonksiyonu yazınız. Çözen : Şadi Evren ŞEKER Çözüm fonksiyonları: Öncelikle çizim yapacağımız için dr. Scheme üzerinde draw.ss teachpack’ini yüklememiz gerekiyor: Ardından poligonu çizim için değişkenlerimizi tanımlayalım: ;;6.2.1 (define [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Scheme (Lisp) | A yorum var

    Ekranda verilen poligonu tekrarlayan kod

    Soru: Bir poligonu ve bir sayıyı parametre olarak alan, verilen sayı kadar poligonu büyüterek iç içe çizen kodu yazınız. Çözen : Şadi Evren ŞEKER Çözüm fonksiyonları: Öncelikle çizim yapacağımız için dr. Scheme üzerinde draw.ss teachpack’ini yüklememiz gerekiyor: Ardından poligonu çizim için tanımlı noktalardan tanımlayalım: (define a (make-posn 240 240)) (define b (make-posn 250 260)) (define [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Scheme (Lisp) | A yorum var

    Haftalık Mesai Hesabı

    Soru: Saat başına 12 dolar ödenen bir firmada çalışanların fazla mesailerini bir liste halinde alıp ödenecek miktarları liste olarak döndüren fonksiyonu yazınız. Çözen : Şadi Evren ŞEKER Çözüm fonksiyonları: (define (wage h) (* 12 h)) (define (hours->wages alon) (cond [(empty? alon) empty] [else (cons (wage (first alon)) (hours->wages (rest alon)))])) Çözüm çalıştırması: (hours->wages (list 20 [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Scheme (Lisp) | A yorum var

    Listenin Elemanlarının Değerini 1 Arttıran Kod

    Soru: Bir sayı listesindeki bütün elemanların değerlerini bir arttıran kodu yazınız. Çözen : Şadi Evren ŞEKER Çözüm fonksiyonu: (define (increment-list numbers)(cond [(empty? numbers) empty][else (cons (+ (first numbers) 1)(increment-list (rest numbers)))])) Çözüm çalıştırması: (increment-list (list 1 2 3 6 7 4 3)) Açıklama: Fonksiyonun ismi increment-list olarak tanımlanmış ve bir parametre alınmıştır. Buradaki parametre “numbers” [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Scheme (Lisp) | A yorum var

    JAVA JDK Kurulumu

    Yazan : Şadi Evren ŞEKER JDK kurulum paketlerini java.sun.com adresinden temin edebilirsiniz. Bu kitap kapsamında kullanılacak olan JDK, J2SE (java 2 standard edition) olarak da geçmektedir. Bu yazı yazılırken en son sürüm J2SE 6.0 update 12 olarak yayınlanmıştır. Bu isimlendirme aynı zamanda JDK 1.6.0_12 olarak da geçmektedir. Burada sık yapılan bir hata JDK yerine JRE [...]

    Şadi Evren ŞEKER tarafından, 30/10/2009 tarihinde yazıldı. | JAVA, Son Kullanıcı | 2 yorum var

    Evrimsel Diller (Evolutionary Languages)

    Yazan : Şadi Evren ŞEKER Evrimsel diller temel olarak bir doğal dilin (natural language) geçirmiş olduğu evrimi ve bu evrimin dilde yaptığı değişiklikleri inceler. Evrimsel dil çalışmalarının bilgisayar bilimlerindeki yeri, dilbilim ve doğal dil işleme ile ilgilenen insanların dillerdeki bu değişimleri bilgisayar dünyasına uygulama merakıyla başlamıştır. Bu anlamda bilgisayar bilimleri için evrimsel diller literatürde, yapay [...]

    Şadi Evren ŞEKER tarafından, 29/10/2009 tarihinde yazıldı. | Doğal Dil İşleme (NLP), yapay zeka (artificial intelligence) | 1 yorum var

    DOM (DNM)

    Yazan : Şadi Evren ŞEKER DOM yani İngilizcedeki Document Object Modelling veya Türkçe karşılığı ile Doküman Nesne Modellemesi basitçe bir işaretleme dili (genellikle HTML veya XML gibi bir dil) için etiketlere (tags) erişmeyi sağlayan bir erişim yöntemidir. Günümüzde SAX ve DOM en yaygın olarak kullanılan erişim yöntemledir. SAX daha çok tek seferde işlenen ve ardışık [...]

    Şadi Evren ŞEKER tarafından, 26/10/2009 tarihinde yazıldı. | Nesne Yönelimli Programlama, Programlama Dilleri, Web Teknolojileri | A yorum var

    Firmware (Bellenim)

    Yazan : Şadi Evren ŞEKER Firmware kelimesi, İngilizcede iki kelimenin birleşmesinden oluşur. Firm anlam olarak şirket ware ise mal anlamına gelir. Örneğin yazılım kelimesinin karşılığı olan software Türkçede tam çevirim ile yumuşak mal anlamına gelebilir. Burada ware kelimesinin zaman içerisinde (software kelimesinin yaygınlaşması ile) giderek yazılım anlamına kayması söz konusudur. Yani yazılım dünyasında kullanılan çoğu [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Bilgisayar Kavramları | A yorum var

    Ortak Katların En Küçüğü (Least Common Multiple)

    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 [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Bilgisayar Matematiği, C/C++ | 2 yorum var

    OBEB (GCD)

    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 [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Bilgisayar Matematiği, C/C++ | 1 yorum var

    Homofonik Yer Değiştirme Şifresi (Homophonic Substitution Cipher)

    Yazan : Şefik İlkin SERENGİL Sezar şifresi (Ceaser’s cipher) gibi mono alfabetik şifreleme yöntemlerinin frekans analizi (frequency attack) karşısında aciz kalmasının karşısında homofonik yer değiştirme şifresinde bu zaaf kısmen de olsa ortadan kalkmaktadır. Şifreleme yönteminin temel çalışma prensibi şifrelenecek metnin ait olduğu alfabedeki harflerin kullanım sıklıklarına dayanmaktadır. Her bir harf frekansına en yakın tam sayı [...]

    Şadi Evren ŞEKER tarafından, 24/10/2009 tarihinde yazıldı. | Veri Güvenliği(Cryptography) | A yorum var

    Scytale Cipher (Sarmal Şifrelemesi)

    Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, veri güvenliği konusunda kullanılan ilkel bir yer değiştirme şifrelemesidir (transposition cipher). Sistem çalışma şekli açısından simetrik şifrelemedir (symmetric cipher) ve iki tarafında elinde doğru anahtar bulunduğunda (gönderen ve alan) çalışmaktadır. Basitçe bir çubuğun etrafına bir mesajın sarılması ile elde edilen mesaj şifreli mesajdır. Yukarıdaki şekilde sarmal şifrelemesi ile [...]

    Şadi Evren ŞEKER tarafından, 23/10/2009 tarihinde yazıldı. | Uncategorized | A yorum var

    Base64

    Yazan : Şadi Evren ŞEKER Veri güveliği konusunda kullanılan kodlama (encoding) algoritmalarından birisidir. Basitçe bir bilginin farklı semboller ile gösterilmesi işlemidir. Bu semboller alfabedeki harflerin büyük/küçük sıralanması ve sayılardan oluşur. Bir base64 sisteminin kullandığı semboller aşağıda verilmiştir: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ Yukarıda toplam 64 sembol bulunmaktadır. Dolayısıyla her sayıya bir karşılık gelir. Örneğin 0 sayısal değeri için A [...]

    Şadi Evren ŞEKER tarafından, 22/10/2009 tarihinde yazıldı. | Bilgisayar Kavramları, Veri Güvenliği(Cryptography), Veri Sıkıştırma (Data Compression) | A yorum var

    Python ile Programlama

    Yazan : Şadi Evren ŞEKER Aslında bir betik dili (scripting language) olan ve bu yüzden bir yorumlayıcısı (interpreter) bulunan python, özellikle dilbilim ve veri güvenliği alanlarında yoğun olarak kullanılmaktadır. Özellikle Linux ve Unix varyantı işletim sistemlerinde sistem yöneticileri (administrator) tarafından baz işleri hızlandırmak amacıyla Perl, Php veya bash gibi betik dilleri (scripting languages) yoğun olarak [...]

    Şadi Evren ŞEKER tarafından, 18/10/2009 tarihinde yazıldı. | Programlama Dilleri | A yorum var

    Pardus üzerinde Dev-CPP

    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ı [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | C/C++, Programlama Dilleri | A yorum var

    Güvenli Ağ Protokolü (Reliable Network Protocol)

    Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde ağ güvenliğinde (network security) kullanılan terimlerden birisidir. Buradaki güvenlik kelimesi saldırılara karşı sağlanan güvenlikten daha çok ağdaki problemlere karşı sağlanan güvenlik anlamındadır. Yazının burasında Güvenlik kelimesine biraz açıklık getirmek istiyorum. İngilizcedeki 5 ayrı kelimeyi Türkçede tek bir güvenlik kelimesi ile karşılamamız anlam karmaşasına yol açıyor yani security, trust, [...]

    Şadi Evren ŞEKER tarafından, 17/10/2009 tarihinde yazıldı. | Network(Ağ), Veri Güvenliği(Cryptography) | A yorum var

    Geometrik Seriler (Geometric Series)

    Yazan : Şadi Evren ŞEKER Bir geometrik seri basitçe elamanlarının üssel arttığı seridir. Örneğin aşağıdaki seriyi ele alalım: a+ax+ax2+ax3+ … Serinin sonsuza kadar gittiğini düşünecek olursak ve terimler arasında bir öncesine göre üssel artış söz konusuysa bu tip serilere geometrik seri ismini verebiliriz. Yukarıdaki serinin çözümü için aşağıdaki yol izlenebilir: a(1+x+x2+x3+…) şeklinde paranteze alabiliriz. İçerideki [...]

    Şadi Evren ŞEKER tarafından, 15/10/2009 tarihinde yazıldı. | Bilgisayar Matematiği | A yorum var

    C2 Üslûbu (C2 Style)

    Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde özellikle yazılım mühendisliği (Software engineering) konusunda kullanılan ve bileşen (component) ve mesaj (message) temelli yazılım geliştirmeyi amaçlayan bir üsluptur. C2 tasarım kültüründe yazılım bileşenler şeklinde ele alınır ve yazılımı oluşturan bu bileşenler üzerinden bir ağ (network) çizilir. Bu ağda bileşenler arası haberleşme gösterilir. Bu sayede tasarlanan bir bileşenin [...]

    Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Nesne Yönelimli Programlama, Yazılım Mühendisliği (Software Engineering) | A yorum var