12.01.2015 Views

progman ad - DAIMI Wiki Server

progman ad - DAIMI Wiki Server

progman ad - DAIMI Wiki Server

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

24/2006<br />

Best Marketing Concept of the Year<br />

(Equal) Udtryk1<br />

Udtryk2 [Afvigelse])<br />

Denne funktion tester om Udtryk1 og<br />

Udtryk2 returnerer de samme værdier.<br />

Hvis:<br />

(SetQ Var1 '(a b c d)<br />

Var2 '(a b c d)<br />

Var4 '(a b c)<br />

Var3 Var2<br />

)<br />

Så er:<br />

(Equal Var1 Var2)= T<br />

(Equal Var3 Var2)= T<br />

(Equal Var1 Var4) = nil<br />

I forbindelse med test af to decimaltal<br />

(eller lister af decimaltal, som<br />

i koordinater), kan der forekomme<br />

afvigelser på en yderligere decimal.<br />

Afvigelse sætter en toleranceværdi<br />

for, hvor stor denne afvigelse må være<br />

i forbindelse med testen.<br />

Hvis:<br />

(SetQ 1ste 1.2345678<br />

2den 1.2345679<br />

)<br />

Så er:<br />

(Equal 1ste 2den) = nil<br />

(Equal 1ste 2den 0.0000001) = T<br />

Bemærk: Se også '=' og 'Eq'.<br />

(Eval Udtryk)<br />

Denne funktion returnerer resultatet<br />

af en EVALuering af et LISP-udtryk.<br />

Hvis:<br />

(SetQ EnToTre 123<br />

Samme EnToTre<br />

)<br />

Så er:<br />

(Eval 123) = 123<br />

(Eva1 EnToTre) = 123<br />

(Eva1 Samme) = 123<br />

(IF Test Så [Ellers])<br />

Denne funktion tester om Test er T<br />

(sandt). Hvis Test er T, udføres Så.<br />

Alternativt udføres Ellers, hvis det er<br />

angivet.<br />

(IF (= 1 2) "Ja" "Nej!") = ”Nej!”<br />

(IF (/= 1 2) "Ja" "Nej!") = ”Ja”<br />

(IF (= 1 2) "Ja") = nil<br />

(InitGet [Bits] [Streng])<br />

Denne funktion tester brugerens svar<br />

i forbindelse med Getxxx funktioner.<br />

De forskellige Bits-argumenter er vist<br />

nedenfor:<br />

Bit-værdi<br />

Betydning<br />

1 Nægt tom data<br />

2 Nægt værdien 0 (nul)<br />

4 Nægt negative værdier<br />

8 Test ikke for limits<br />

32 Brug stiplede linier med<br />

gummibånd og boks<br />

64 Ignorer Z ved 3D-punkter<br />

(Kun GetDist)<br />

De forskellige bit-værdier kan <strong>ad</strong>deres<br />

frit til en værdi mellem 0 og 127.<br />

Hvis vi har følgende LISP-program:<br />

(DeFun C:TEST ()<br />

(InitGet (+ 1 2 4))<br />

(GetReal ”\nAngiv et positivt tal: ”)<br />

)<br />

Fås følgende svar:<br />

Command: (Lo<strong>ad</strong> "test") C:TEST<br />

Command: TEST<br />

Angiv et positivt tal: [Retur]<br />

Requires numeric value.<br />

Angiv et positivt tal: -1<br />

Value must be positive and nonzero.<br />

Angiv et positivt tal: 0<br />

Value must be positive and nonzero.<br />

Angivet positivt tal: 3<br />

3.0<br />

Det er ligeledes muligt at teste for<br />

en bestemt streng i forbindelse med<br />

InitGet, som i dette eksempel:<br />

(InitGet l "Skrå VAndret VErtikal")<br />

(SetQ Svar<br />

(GetKWord "\nSkrå/VAndret/VErtikal 1:"))<br />

Bemærk: Den bit som sættes af Init-<br />

Get slettes automatisk efter næste<br />

Getxxx.<br />

(ListP Udtryk)<br />

Denne funktion returnerer T, hvis<br />

Udtryk er en liste. Ellers returneres<br />

nil. ListP er således et modstykke til<br />

Atom.<br />

(ListP '(a b c))= T<br />

(ListP 'a) = nil<br />

(ListP 1.1) = nil<br />

(ListP nil) = T<br />

(nil er både et atom og en liste)<br />

Sådan virker InitGet kontrolbits<br />

Funktion 1 2 4 8 32 64<br />

GetInt X X X<br />

GetReal X X X<br />

GetDist X X<br />

GetAngle X X X<br />

GetOrient X X X<br />

GetPoint X X X<br />

GetCorner X X X<br />

GetKWord X<br />

GetString<br />

GetVar<br />

26

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!