1372826956:AAFe2Py65GSQkfGiRnXuOQ-eD9yXcwMv988

Örneklerle Fonksiyon Tanımları #5-Şartlı İfadeler

sekil-01


if         Bir test (kontrol) uygular. Şayet test (kontrol) bir ifade işletildikten sonra durdurulursa veya durursa, fonksiyon Doğru  “True” (T) olarak geri döner.

(if (> yükseklik limiti) ” çok yüksek “) Şayet yükseklik değişkeni değeri yükseklik limiti değişkeninin değerinden büyükse, “çok yüksek” olarak geri döner. Aksi durumda boş “nil” olarak geri döner.

(if (minusp w) (/ w 2.0) (* w 1.5))  Şayet w değişkeninin değeri negatif ise, ikinci argüman kontrol edilir; fakat şayet w değişkeninin değeri pozitif ise, üçüncü argüman kontrol edilir.


cond    Test koşullarından bir tanesi şartı sağlayana kadar kontrolleri kontrol eder.

Aşağıdaki cond fonksiyonu bir listeler serisidir. Her bir liste içerisinde bir kontrol ifadesi ve bir veya daha fazla sayıda yapılacak eylem bulunmaktadır. Bir test ifadesi Doğru  “True” (T) olarak geri döndükten ve o teste ait yapılacak ylem yapıldıktan sonra, cond fonksiyonundan çıkılır.

(cond

((> j 100) (setq  j 100))

((< j -100) (setq  j -100)))

Önce listedeki  cond kelimesinden sonraki ilk satır işlenir. Bu listedeki ilk eleman (> j 100) ifadesidir. Şayet bu şart Doğru  “True” (T) ise, j değişkeninin değeri 100 olarak ayarlanır. Şayet doğru değilse (Yanlışsa “False” (F)), AutoLISP işlemcisi sonraki listeye (< j -100) geçer ve o listeyi kontrol eder. Şayet bu ikinci şart Doğru  “True” (T) ise, j değişkeninin değeri -100 olarak ayarlanır. Şayet bu şart ta doğru değilse (Yanlışsa “False” (F)), cond fonksiyonu herhangi bir işlem yapmadan fonksiyonu kapatır.

(cond

((>= pct 90.0) (setq not “A”))

((>= pct 80.0) (setq not “B”))

((>= pet 70.0) (setq not “C”))

((>= pct 60.0) (setq not “D”))

(1 (setq not “F”)))

Yukarıdaki ifade pct değişkeninin değerini esas alarak not değişkenine bir harf atar.

Listenin son satırındaki 1 de aslında bir kontroldür. 1 her zaman 1 (boş değil) olarak işleneceği için, son satır önceki satırlardaki şartların sağlanmaması durumunda şartı her zaman sağlayacaktır. Bu arada, birçok AutoLISP kitabında bu amaç için 1 yerine ön ayarlı T değişkeninin kullanılması tavsiye edilmekte ise de ön ayarlı T değişkeni kazara sıfırlanabileceği için, ben 1 kullanılmasını tavsiye ediyorum.

 

Hakkında Sertan Türkan

AutoCAD Beyni

Bunu da Kontrol edin

Revitte Bir Bölge Planı “Plan Region” Oluşturma

Revit’te plan görünüşünün geri kalanı için kullanılan kesme düzleminden farklı bir yükseklikte bir kesme düzlemi …

Bir cevap yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Yardıma mı ihtiyacınız var? Chat with us
Bir görüşme başlatmak için lütfen önce gizlilik politikamızı kabul edin.