Sierpinski Üçgeni (Sierpinski Triangle)

Orijinal ismi Sierpiński olan Polonyalı matematikçi tarafından 1915 yılında tanımlanan bu üçgen, yapı olarak özyineli (recursive) iç üçgenlerden oluşur. Kısaca üçgenin her parçası, üç adet alt üçgen oluşturacak şekilde bölünür. Örneğin aşağıdaki eşkenar üçgeni ele alalım: Bu üçgenin üç köşesinde üç ayrı üçgen oluşturarak işlemimize başlayabiliriz. Yukarıdaki şekilde görüldüğü üzere 3 adet siyah eşkenar üçgen […]

Devam

Emirli Programlama (Imperative Programming)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, programlama dillerini sınıflandırmak ve bir programlama dilinin özelliklerini belirtmek için kullanılan bir terimdir. Genellikle literatürde prosedürel programlama (procedural programming) olarak da geçmektedir. Emirli programlama ile kastedilen, bir programlama dilindeki komutların satır satır emirlerden oluşmasıdır. Örneğin bir robota komut verecek olsaydık: Kolu 10 derece sağa döndür 2 metre yürü […]

Devam

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

Devam

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

Devam

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

Devam

Öğ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- […]

Devam

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

Devam

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

Devam

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

Devam

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

Devam