Scheme ile ekrana içi boş dikdörtgen bastırmak


(define (kare x y)
  (do ((i 0 (+ i 1))) ((= i x))
    (newline)
    (do ((j 0 (+ j 1))) ((= j y))
      (if (or (= i 0) (= i (- x 1)))
          (display "*")
          (if (or (= j 0) (= j (- y 1)))
              (display "*")
              (display " "))))))

bu kod aşağıdaki gibi bir şekil oluşruracak

**********
*        *
*        *
*        *
*        *
*        *
*        *
*        *
*        *
**********

Ancak bu şekil pek hoş değil. Eğer display’in içini biraz düzenlersek çok dahahoş şekilerle karşılaşırız.

(define (kare x y)
  (do ((i 0 (+ i 1))) ((= i x))
    (newline)
    (do ((j 0 (+ j 1))) ((= j y))
      (if (or (= i 0) (= i (- x 1)))
          (display "* ")
          (if (or (= j 0) (= j (- y 1)))
              (display "* ")
              (display "  "))))))

Bu kod

* * * * * * * * * * 
*                 * 
*                 * 
*                 * 
*                 * 
*                 * 
*                 * 
*                 * 
*                 * 
* * * * * * * * * *

şeklini oluşturacaktır. Tabiki etkileşim penceresinde şekil daha düzgün çıkacaktır.


comments powered by Disqus