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 […]
Category: Scheme (Lisp)
Dr. Scheme PLT Schme MREd ortamında yazılan ve common lisp veya auto lisp dilinden temel alınarak oluşturulan bazı örnek kodlar bu alanda yayınlanacaktır.
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ü […]
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 […]
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 […]
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 […]
Öğ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- […]
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 […]
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 […]
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 […]
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” […]