20.04.2013 12:19    

rddvl
autolisp de nasıl index numarası veririz
örneğin
isim değişkenine,
(setq isim(j) (getint "isim giriniz"))
dedikten sonra
(print isim(2) ) deyip girilen 2. ismi yazmasını istiyorum bunu nasıl basarırım.

20.04.2013 12:31    

ehya
2nci isim ne?? Nerden okuyacak?
Sanırım siz başka yazılım dilini biliyor ve lisp yazmasını öğrenmek istiyorsunuz.
Burada verdiğiniz kod'da hata var.

(setq isim (j) (getint "isim giriniz"))

satırındaki (j) ne oluyor? Böyle birşey lisp'de mümkün değil.

Kod yazarak bilgi istemek yerine ne yapmak istediğinizi söylerseniz ona göre örnek bir kod verebiliriz.

20.04.2013 12:48    

rddvl
Örneğin
(setq i 1)
(while (<= i xaa)
(setq xaag (getint "Aks aralığını giriniz"))
(setq i (1+ i ))
)

komutunda "xaa" değişkeni daha önce girilen değere göre oluşturulmuş olsun ve örneğin değeri 5 olsun "xaag" değişkenine değer girerken programın girilen 5 değeri de kaydederek ileride kullanabilmesini istiyorum.
dediğiniz gibi autolisp i yeni öğreniyorum diğer programlarda bu indis girilerek mümkün acaba lisp de nasıl gerçekleştiririm?

20.04.2013 13:14    

ehya
Değerleri saklamak için while döngüsünden önce boş bir liste hazırlamalı ve while içinde değer girildikten sonra bu değeri listeye eklemelisiniz.
Bu şekilde girilen değerler while döngüsü bitince liste olarak saklanır.
İşlem bitince while döngüsünden sonra liste ters çevrilerek ilk değerin başa gelmesi sağlanabilir.
Aşağıdaki kod'da değerler liste adlı değişkende saklandı.

Kod:

(setq i 1)
(setq liste '())
(while (<= i xaa)
(setq xaag (getint "Aks aralığını giriniz"))
(setq liste (cons xaag liste))
(setq i (1+ i ))
)
(setq liste (reverse liste))

20.04.2013 14:43    

rddvl
Örneğin bu elemanları getpoint komutuyla ilk noktayı belirleyip bu noktayla girilen değeri toplayıp yeni noktalar oluşturmak istiyorum. noktaları çizmek için gerekli komutları biliyorum. benim sorum sadece liste oluşturulduktan sonra girilen elemanları cağırmak için ne yapmalıyız?

20.04.2013 23:35    

ehya
Length komutu ile listedeki eleman sayisi ogrenilir.
Bu sayi kadar iister while ile ister repeat ile donguye sokulabilir.
Bir listedeki istenilen elemani ogrenmek icin nth komutu kullanilir.

(nth 0 liste)

bu komut litenin ilk elemanini verir. Sifir sayisi arttirilarak diger elemanlar ogrenilebilir.

> 1 <
Copyright © 2004-2022 SQL: 1.294 saniye - Sorgu: 58 - Ortalama: 0.02231 saniye