Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Tipuri de date numerice AutoLISP

autocad



+ Font mai mare | - Font mai mic



Tipuri de date numerice AutoLISP

AutoLISP-ul are doua tipuri de date numerice: numere intregi si numere reale. Functia type returneaza    tipurile de date ale unui obiect.

Obiective

in acest capitol veti studia:

Diferentele dintre cele doua tipuri de date numerice



Cum sa determinati tipul de date al unui obiect

Determinarea tipului de date ale unui obiect

Functia AutoLISP type se foloseste pentru a determina tipul de date al unui obiect. type cere un argument si returneaza un simbol care indica tipul de date al argumentului.

De exemplu, aceasta expresie returneaza tipul de date al numarului real 1.0

Command: (type 1.0)

REAL

Numere reale

AutoLISP-ul    reprezinta numerele reale in virgula mobila, dubla precizie cu cel putin 14 zecimale. Nu exista tipuri de date care sa reprezinte numere cu simpla precizie in AutoLISP. Toate numerele reale sint cu dubla precizie si ele sint reprezentate in AutoLISP in aceeasi maniera ca in AutoCAD.

Numerele reale sint numere introduse cu punct zecimal, de exemplu 4.5 sau 123.456.

Command: (setq x 4.5)

Pentru valori cuprinse intre 1.0 si -1.0, zero trebuie sa preceada punctul zecimal, de exemplu, 0.45 sau 0.123 sau -0.876.

Command: (setq x 0.123)

Precizia afisarii si precizia interna

Precizia implicita a afisarii unui numar real in AutoLISP este de 5 zecimale. Reprezentarea interna este intotdeauna mentinuta cu cel putin 14 zecimale semnificative de precizie.
Daca este necesara afisarea sau tiparirea valorii unui numar real cu o precizie mai mare decit precizia de afisare a AutoLISP-ului, numarul real poate fi transformat intr-un sir cu ajutorul functiei AutoLISP rtos si apoi afisat sau tiparit cu precizia de afisare dorita.

rtos cere pina la 3 argumente: un numar real, un numar intreg care reprezinta unul dintre sistemele de unitati AutoCAD si numarul de zecimale pentru sirul care va fi returnat.

Exemplu

Introduceti expresiile care urmeaza.

Legati simbolul x de numarul real 4.5

Command: (setq x 4.5)

Verificati-i valoarea si tipul de date

Command: !x

Command: (type x)

Folositi functia rtos pentru a vizualiza valoarea lui x ca numar zecimal cu o precizie de 8 zecimale.

Command: (rtos x 2 8)

Numere intregi

Numerele intregi sint numere introduse fara punct zecimal. Numerele intregi in AutoLISP sint numere intregi cu semn pe 32 biti cuprinse intre 2.147.483.648 si +2.147.483.647. Desi AutoLISP-ul foloseste valori de 32 biti, cele transferate intre AutoLISP si AutoCAD sint limitate la valori de 16 biti, de exemplu nu se poate transfera o valoare mai mica de -32.768 sau mai mare de +32.767 in AutoCAD. Daca folositi o valoare care depaseste aceste limite, puteti folosi functia float pentru a o transforma intr-un numar real inainte de a o transfera in AutoCAD.

Exemplu

Introduceti expresiile care urmeaza.

Legati simbolul x    de un numar intreg cu valoarea de 65535.

Command: (setq x 64435)

Verificati-i valoarea si tipul de date.

Command: !x

Command: (float x)

Command: (fix (float x))

Command: (type x)

INT

Folositi functiile float si fix pentru a returna valoarea lui x cu tipuri de date diferite si folositi functia rtos pentru a imprima valoarea cu un format de zece zecimale.

Command: (type (float x))

REAL

Command: (type (fix (float x)))

INT

Command: (rtos (float x) 2 10)

Conversia automata a numerelor intregi

AutoLISP-ul va converti numerele intregi in numere reale ori de cite ori va intilni ambele tipuri de date ca argumente la functie.

Daca doua numere intregi sint folosite ca argumente la functia de adunare +, valoarea returnata a expresiei este un numar intreg; totusi, daca argumentele sint un numar real si un numar intreg, valoarea returnata este exprimata printr-un numar real.

Exemplu

Aceasta expresie returneaza    un numar intreg.

Command: (+ 1 2)

Command: (type (+ 1 2))

INT

Aceasta expresie returneaza un numar real.

Command: (+ 1.0 2)

Command: (type (+ 1.0 2)

REAL

Recapitulare

AutoLISP-ul are doua tipuri de date numerice: numere intregi si numere reale.

Numerele intregi au valori de 32 biti in AutoLISP.

Numai numerele intregi cu valori de 16 biti pot fi transferate intre AutoLISP si AutoCAD.

Numerele reale sint numere zecimale cu dubla precizie.

Numerele reale sint retinute cu cel putin 14 zecimale de precizie.

AutoLISP-ul va converti un numar intreg intr-un numar real cind le intilneste pe amindoua in cadrul aceleiasi expresii.

Un numar real trebuie intotdeauna sa aiba o cifra care precede punctul zecimal.

Functia type returneaza    tipul de date al unui obiect.

Functia fix transforma un numar real intr-un numar intreg.

Functia float transforma un numar intreg intr-un numar real.

exercitiul 5: folosirea numerelor intregi si reale

in acest exercitiu veti:

Consolida cunostintele despre tipurile de date ale numerelor intregi si reale.

Folosi functia setq pentru a lega variabile de valori cu tipuri de date numerice diferite.

Determina valoarea returnata si tipul de date numerice ale unei expresii AutoLISP

Partea I

1.Legati simbolurile de valori diferite.

2.Introduceti s-expresia corespunzatoare in linia de comanda AutoCAD.

simbol

valoare

a

b

c

x

y

z

Tabelul 13. Legarea variabilelor de valori numerice.

Partea aII-a

1.Determinati valoarea returnata si tipul de date pentru fiecare expresie.

2.Scrieti raspunsurile in coloanele corespunzatoare

3.Trebuie mai intii sa efectuati prima parte a acestui exercitiu.

expresia-s

returnarea valorii

tip de data pentru valoarea returnata

(+ a b)

(+ a y)

(+ y z)

(fix x)

(float a)

(fix z)

(float (fix z))

(fix (+ (float a) (float b)))

(/ x y)

(fix (/ x y))

(float (fix (/ x y)))

(+ (fix (/ a y)) (fix (float a)))

Tabelul 14. Valorile returnate si tipurile de date numerice ale expresiilor.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1057
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved