Bilgisayar Kavramlarıwww.bilgisayarkavramlari.com |
Yazan : Şadi Evren ŞEKER Sitede gelen bir soru üzerine bu yazıyı yazmaya karar verdim. Bilgisayar dilleri (makine işlemeli diller, machine processing languages) tasnif edilirken, visual basic gibi görsel tasarıma dayalı diller üst seviye dil (high level langauge) olarak kabul edilirler. Hatta hiç kod yazmadan program üretilmesine izin verdiği için visual basic’i bir dilden çok [...]
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 [...]
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 Gelen bir soru üzerine aşağıdaki yazıyı yazıyorum. Soru şu şekilde: “Konsol programında rastgele zar atan ve çıkan zarı ekrana bastıran kodu yazınız. ” Konsol ekranında zar çizdirmek için öncelikle bir tasarım yapmamız gerekiyor. Konsol ekranında sadece ascii karakterlerini basabileceğimizi düşünürsek, zarları aşağıdaki şekilde ascii ekranda göstermemiz mümkün olabilir. Yukarıdaki her [...]
Soru: Kullanıcıdan bir sayı alarak ekrana verilen sayı boyutlarında *’lardan oluşan içi dolu bir kare kodu yazınız. Çözen : Şadi Evren ŞEKER Yukarıdaki soruyu 4 ayrı dil için (C,C++,JAVA ve C#) ayrı ayrı çözeceğim. Böylelikle okuyucu bu diller arasında mukayese yapabilecek ve bildiği bir dilden diğer dillere kolayca geçebilecektir. Çözüm: Soru, yapısı itibariyle 2 boyutlu [...]
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 [...]
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 [...]
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 [...]
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- [...]
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 [...]
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 [...]
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 [...]
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” [...]
Yazan : Şadi Evren ŞEKER Bir matrisin tersini almak çarpma işlemine göre tersini almak anlamındadır. Örneğin A ve B matrislerinin çarpımından C matrisi çıkıyorsa; C matrisi ile A matrisinin tersi B matrisini vermelidir. Bunu bir nevi bölme olarak düşünmek de mümkündür. 2 boyutlu bir matrisin tersini bulmak içn öncelike determinantı hesaplanır ardından aşağıda gösterildiği üzere [...]