Scrigroup - Documente si articole

     

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


Atomi si liste AutoLISP

autocad



+ Font mai mare | - Font mai mic



Atomi si liste AutoLISP

Exista doua mari categorii de tipuri de date in AutoLISP: atomi si liste. Atomii sint obiecte simple. Listele sint obiecte complexe. Acest capitol defineste atomii si listele.



Obiective

in acest capitol se va studia:

Diferenta dintre atomi si liste

Componentele unei liste

Cum sa recunoastem un raport de erori AutoLISP

Natura obiectului AutoLISP nil

Atomi

Un atom este cel mai simplu tip de date din Lisp. Un atom poate fi un numar intreg

un numar real

un sir de caractere

A String Of Pearls

o functie AutoLISP predefinita

un simbol

XYZ

sau oricare alt tip de obiecte existente in tabelul 3-1.

Tipuri de atomi

Exemple

Tip de data AutoLISP

simbol

pi,x,mid_pt

SYM

sir

'Hello, world.'

STR

intreg

INT

numar real

REAL

descriptor de fisier

<File: #a82>

FILE

nume entitate AutoCAD

<Entity name: 6000001a>

ENAME

set de selectie AutoCAD

<Selection set: 1>

PICKSET

subr (functie interna)

<Subr: #1e32>

SUBR

subr externa (Functia ADS)

<Ext. Subr: 1 #3a970498>

EXSUBR

Tabelul 2. Exemple de atomi din AutoLISP si tipul de date al acestora

Exista o regula simpla pentru a afla daca un obiect este un atom sau o lista. Daca obiectul nu se afla intre paranteze atunci este un atom; daca da, atunci este o lista.

Liste

Listele sint s- expresii complexe formate din atomi si/sau alte liste. Listele necesita sintaxe simple dar riguroase.

O lista trebuie sa se afle intre paranteze.

Pentru orice lista care poate fi evaluata, primul termen din cadrul listei respective trebuie sa fie o functie.

Obiectele din cadrul listei trebuie separate prin cel putin un spatiu.

Iata citeva exemple de liste. Observati ca fiecare obiect este separat printr-un spatiu de celelalte obiecte din cadrul listei.

(x y z )

Despre evaluarea listelor vom vorbi putin mai tirziu.

Elementele unei liste

Atomii si listele pot fi combinate sub forma de liste. in urmatoarele patru exemple am introdus trei atomi intr-o lista. Fiecare atom este un element al listei.

Exemplu

Aceasta lista are trei elemente: numerele reale 1.0, 1.0 si 0.0

Aceasta lista are trei elemente: functia de adunare + (functie interna), nr. intreg 1 si nr. intreg 3.

Aceasta lista are trei elemente: functia de adunare +, nr. intreg 1 si lista (+ 2 3)

Figura 4. Lista de trei elemente: doi atomi si o lista

Exemplu

Aceasta lista are trei elemente: functia de adunare +, lista (+ 1(+ 2 3)) si lista (+ 4 5).

Figura 5. Lista de trei elemente: un atom si doua liste.

Ceea ce este incadrat intre paranteze reprezinta o lista.

O lista se compune dintr-o paranteza de deschidere urmata de zero sau de mai multe obiecte care pot fi atomi sau liste dupa care urmeaza o paranteza de inchidere.

Conditii de eroare

Cind introduceti s-expresii in linia de comanda AutoCAD, interpretorul AutoLISP va va spune daca ati introdus o expresie neechilibrata. O expresie neechilibrata are mai multe paranteze deschise decit inchise.

Iata o expresie neechilibrata. ii lipseste o paranteza inchisa.

Command: (+ 1 (+ 2 3)

1>

AutoLISP-ul semnalizeaza o expresie neechilibrata printr-un    mesaj special.

n>

unde n este numarul de paranteze inchise care lipsesc.

Sint doua modalitati de rezolvare in cazul conditiilor de eroare: completati numarul corect de paranteze inchise sau apasati Ctrl-C pentru a anula expresia si a ne reintoarce in linia de comanda.

Nota Este de asemenea posibil sa vedeti acest mesaj cind un sir este neechilibrat. Un sir neechilibrat are ghilimele duble la un capat si simple la celalalt.

Particularitatile obiectului nil

Toate obiectele din AutoLISP sint atomi sau liste. Atomii si listele se exclud mutual. Un atom nu este niciodata lista si o lista nu este niciodata atom.

Exceptia o face obiectul nil.

Obiectul nil este 'lista goala'. Prin conventie nil este si atom si lista. nil poate fi exprimat in doua moduri: 0 sau nil;.

nil este echivalentul AutoLISP pentru fals. Multe functii in AutoLISP testeaza daca o conditie este adevarata sau falsa, de exemplu daca valoarea unui numar este mai mare decit 0. De cite ori un test de conditie este fals, AutoLISP-ul va returna obiectul nil ca fiind valoarea testului.

nil este singurul obiect din AutoLISP corespunzator lui 'fals'; de aceea orice alta valoare returnata de un test de conditie trebuie sa corespunda lui 'adevarat'.

Recapitulare

Cele doua mari clase de obiecte din AutoLISP sint atomii si listele.

Exista    citeva tipuri diferite de atomi.

Atomii sint obiecte care nu sint incadrate intre paranteze.

Listele sint intodeauna incadrate intre paranteze

Obiectele continute intr-o lista constituie elementele unei liste

Elementele unei liste pot fi atomi sau liste

Elementele unei liste sint separate intre ele de cel putin un spatiu

AutoLISP detecteaza expresiile neechilibrate

nil este si atom si lista

nil este lista goala

nil este returnat de testele de conditie pentru a indica 'fals'

exercitiul 1: atomi si liste

in acest exercitiu veti:

Recapitula ce ati inteles despre atomi si liste

Determina daca un obiect este atom sau lista

Folosi AutoLISP pentru a afla valoarea diferitelor obiecte

Partea I

Determinati daca obiectul este atom sau lista.

Obiecte

Atomi

Liste

'String'

('String')

Completati rezultatul evaluarii in casuta corespunzatoare.

Tabelul 3. Determinarea naturii obiectului

Partea a II-a

Gasiti valoarea acestui atom in linia de comanda AutoCAD

Tipariti '!' urmat de un atom

Scrieti raspunsul in coloana din dreapta:

Exemplu

Command: !4.5

Atomi

Valori

'text'

setq

xyz

nil

Tabelul 4. Determinarea valorii atomului

Partea a III-a

Determinati numarul de elemente continut de fiecare lista.

Scrieti raspunsul in coloana din dreapta.

Lista

Numar de elemente

Tabelul    5. Determinarea numarului de elemente din lista

Aceasta pagina este lasata libera in mod intentionat



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1370
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