Sunteți pe pagina 1din 17

MEDII DE PROGRAMARE IN IA Cursul 5 Funct ii built-in n Guru

Nicolae T and areanu

Facultatea de Matematic a si Informatic a, Universitatea din Craiova, str.A.I.Cuza 13, 1100-Craiova, Romania e-mail: rcai@central.ucv.ro

Obiective

Obiectivele acestui curs sunt urm atoarele: prezentarea funct iilor built-in nsu sirea modului de utilizare a acestor funct ii

Funct ii built-in

Mediul de programare GURU este nzestrat cu funct ii standard, denite de rma produc atoare. Acestea sunt puse la dispozit ia utilizatorului pentru a utilizate n aplicat ii f ar a s a e necesar s a e redenite. In cele ce urmeaz a ele vor numite funct ii built-in. Fiecare funct ie built-in are un nume cu ajutorul c aruia se face referirea si un num ar de argumente. Valorile ntoarse de o funct ie buil-in pot de tip string, numeric sau logic. Num arul argumentelor, tipul acestora si tipul rezultatului ntors de funct ie sunt entit a ti specicate n documentat ia de rm a. Facem observat ia general a c a argumentele unei funct ii built-in pot valori fuzzy. In acest caz la stabilirea valorii ntoarse de funct ie se utilizeaz a aritmetica fuzzy prin setarea corespunz atoare a variabilelor de mediu.

3 De exemplu, funct ia MAX are dou a argumente si n general ea se utilizeaz a pentru a obt ine cel mai mare dintre argumente. De asemenea, funct ia SQRT ntoarce radicalul de ordinul 2 din argumentul funct iei. Un dialog n modul interactiv ne arat a urm atoarele: Guru>E.OCF=TRUE;E.OFUZ=10; Guru>x={ 9 cf 30, 16 cf 40} Guru> ?SQRT(x) 4.00 with certainty 40 3.00 with certainty 30 Guru>y={5 cf 40, 11 cf 60} Guru> ?MAX(x,y) 16.00 with certainty 40 9.00 Guru> Se observ a c a la calculul radicalului se extrage radicalul din ecare num ar si se p astreaz a factorul de certitudine al acestuia. La calculul maximului, se calculeaz a max{9, 5}, max{9, 11}, max{16, 5}, max{16, 11} si apoi se utilizeaz a aritmetica fuzzy. Valorile variabilelor E.CFJO si E.CFCO ind cele standard, ca rezultat se obt ine 9 cf 30, 11 cf 30, 16 cf 40 si 16 cf 40. Utiliz and metoda conwith certainty 30 11.00 with certainty 30

4 rmativ a, din ultimele dou a valori se obt ine 16 cf 40. In cele ce urmeaz a vom descrie caracteristicile celor mai utilizate funct ii built-in. ABS(expresie-numeric a) Calculeaz a valoarea absolut a. Exemplu: ABS(-7.62)=7.62 ALPHASTR("string") Veric a dac a argumentul funct iei cont ine numai caractere alfabetice. De exemplu, ALPHASTR("carte") ntoarce rezultatul TRUE, iar ALPHASTR("carte 123") ntoarce FALSE. ARCCOS(expresie-numeric a) Calculeaz a funct ia arccos, deci argumentul funct iei trebuie s a e n intervalul [-1,1]. ARCSIN(expresie-numeric a) Calculeaz a funct ia arcsin, deci argumentul funct iei trebuie s a e n intervalul [-1,1]. ARCTAN(expresie-numeric a) Calculeaz a funct ia arctg . Rezultatul este n radiani.

5 ARRCOPY(tablou-surs a,tablou-t int a) Copiaz a elementele tabloului surs a n tabloul tint a. Dac a avem declarat iile dim a(n1,n2) si dim b(k1,k2) atunci se calculeaz a min{n1, k 1} = x1, min{n2, k 2} = y 1 si se copiaz a x1 y 1 elemente. De exemplu, pentru dim a(7,9), dim b(4,9) se transfer a primele 49 elemente. ARRSIZE(nume-tablou,num-col,num-lin) Redimensioneaz a tabloul cu numele nume-tablou pentru a deveni un tablou cu num-col coloane si num-lin. ARRSORT(nume-tablou,num-col) Sorteaz a elementele coloanei num-col din tabelul nume-tablou dup a tip si n interiorul unui tip n ordine cresc atoare. Categoriile de tip sunt supuse urm atoarei ordini: ERROR, LOGIC, NUM, INT,

6 STR. De exemplu, ARRSORT(mat,3) sorteaz a coloana a treia din tabelul mat. BASE("expr-string",baza-veche,baza-nou a) Ca efect, se converte ste "expr-string" din baza baza-veche n baza baza-noua. Baza poate cel mult 36. Entitatea specicat a n primul argument este n baza baza-veche. BOX(linie-1,col-1,linie-2,col-2, "culori", "efecte","titlu") Traseaz a un dreptunghi cu v arful nord vest de coordonate (linie-1, col-1) si v arful sud est de coordonate (linie-2,col-2) Argumentul "culori" este un string av and ntre 2 si 8 caractere: primele dou a caractere specic a culoarea de border;

7 caracterele 3 si 4 specic a culorile foreground si background; caracterele 5 si 6 denesc culorile titlului; caracterele 7 si 8 denesc culorile pentru shadow (dac a nu se specic a atunci se consider a culoarea black). De exemplu, "CUWAOR" precizeaz a linia de border de culoare cyan pe fond blue, n interior se scrie cu white pe black, iar titlul se scrie cu yellow pe red. Argumentul "efecte" antreneaz a efecte speciale: B pentru blinking; C pentru titlu centrat; D pentru border dublu linie; L pentru intensitate mic a; S pentru sunet (un beep); W pentru prezent a shadow. Argumentul "titlu" specic a stringul care va a sat n topul dreptunghiului. COS(expr-num)

8 Intoarce cosinusul trigonometric a valorii expr-num. DELSTR("expr-str",oset,lung) S terge lung caractere din stringul specicat ca prim argument, nce- p and cu pozit ia offset. EXP(expr-num) Returneaz a valoarea matematic a pentru eexprnum . FCOPY(le1,le2) Copiaz a file1 n file2; se returneaz a 0 dac a copierea a avut loc cu succes. FILEX("string") returneaz a TRUE dac a sierul specicat ca argument este prezent n subdirectorul n care se lucreaz a; altfel returneaz a FALSE. HICF(var) Returneaz a cel mai mare factor de certitudine a variabilei var. HIVAL(var) Returneaz a valoarea care are cel mai mare factor de certitudine din var.

9 INIT(tablou,expr) Evalueaz a expr si atribuie valoarea obt inut a ec arui element din tabloul tablou. INSSTR("string-sursa,oset, "string") Este realizat a operat ia de inserare ca operat ie invers a pentru DELSTR. INUSE("tabel") Returneaz a TRUE dac a tabelul tabel este in use; altfel returneaz a FALSE. ISALPHA("string") Returneaz a TRUE dac a primul caracter din string este alfabetic; altfel returneaz a FALSE. ISDIGIT("string") Returneaz a TRUE dac a primul caracter din string este cifr a; altfel returneaz a FALSE. ISERROR(expr) Returneaz a TRUE dac a expr are valoarea ERROR; altfel returneaz a FALSE.

10 ISKEYW("nume") Returneaz a TRUE dac a nume este cuv ant rezervat; altfel returneaz a FALSE. LASTREC(tabel) Returneaz a num arul de identicare a nregistr arii care din punct de vedere zic este ultima nregistrare n tabel. Dac a tabelul este vid atunci se returneaz a valoarea 0. LEN("string") Determin a num arul de caractere din stringul "string". LN(expr-num) Calculeaz a logaritmul natural al valorii expresiei numerice aat a ntre paranteze. LOCASE("string") Converte ste caracterele mari din "string" n caractere mici. LOCF(var) Returneaz a cel mai mic factor de certitudine al valorilor fuzzy din variabila var.

11 LOG(expr-num) Returneaz a logaritmul n baza 10 a valorii expresiei expr-num. LOVAR(var) Returneaz a valoarea din variabila var care are cel mai mic factor de certitudine. MATCH("string1","string2") Identic a prima pozit ie din string1" ncep and de la care al doilea argument, "string2", este un substring. De exemplu: MATCH("Avem nevoie de carte","ve") returneaz a valoarea 2. MAX(expr1,expr2) Compar a valoarea expresiei numerice expr1 cu valoarea expresiei numerice expr2. Returneaz a cea mai mare din aceste valori. MENU(array) Construie ste un meniu. Opt iunile meniului sunt luate din tabloul array. Opt iunile meniului pot

12 selectate prin mouse sau prin tastatur a. Exemplu de utilizare: DIM vec(4); vec(1):="Aritmetica"; vec(2):="Geometria "; vec(3):="Fizica vec(4):="Algebra alege:=MENU(vec); "; ";

Ca efect, variabila alege memoreaz a select ia realizat a de utilizator prin meniul respectiv. MENU(array,default,numopt,frow,fcol,rowspace, colsize, numcols,numrows,result-type,max-numselections,colors, speects,box title, selection character) Construie ste un meniu. Elementele componente sunt urm atoarele: array: nume de tablou; valorile elementelor sale sunt de tip string si ele vor reprezenta entit a tile a sate de meniu pentru a selectate.

13 default: este un num ar ntreg cel put in egal cu 1. dac a default =n atunci la aparit ia meniului pe ecran cursorul de select ie al meniului este pozit ionat pe entitatea cu num arul n din meniu; prima entitate are num arul ata sat 1 si reprezint a pozit ia standard a cursorului de select ie; dac a lipse ste atunci se consider a default=1. numopt: num arul total de entit a ti ale meniului; dac a lipse ste atunci se consider a egal cu lungimea lui array; dac a numopt este mai mic dec at dimensiunea vectorului array atunci numai primele numopt entit a ti din meniu se vor a sa. frow: linia de start pentru prima opt iune a meniului. fcol: coloana de start pentru prima opt iune a meniului; cu alte cuvinte perechea (frow,fcol) indic a coordonatele colt ului st anga-sus din meniu. rowspace: num arul de linii care se sar ntre dou a opt iuni consecutive ale meniului; standard este egal cu 0. colsize: num arul maxim de caractere a ec arei entit a ti din meniu (mai put in prima si ultima

14 pozit ie care sunt goale din motive estetice). numcols: num arul de coloane pe care este a sat meniul. numrows: num arul de linii din meniu care apar pe ecran; dac a exist a mai multe linii de a sat, cele care r am an se scroleaz a. result-type: c amp neutilizat, aat la dispozit ia rmei pentru o versiune ulterioar a GURU. max-num-selections: specic a num arul de opt iuni din meniu care pot simultan selectate ; standard este 1. colors: este un string care are ntre 2 si 12 caractere; specic a culorile utilizate pentru obiectele meniului; dac a acest parametru lipse ste, adic a n instruct iune se precizeaz a cu valoarea "", atunci se utilizeaz a valorile variabilelor de mediu E.F- ORG si E.BACG; cele 12 caractere provin de la 6 parametri, ecare de c ate dou a caractere care precizeaz a foreground si background, respectiv pentru: op tiunile neselectate, opt iunile specicate prin cursor, borderul, opt iunile selectate, textul din titlu, shadow pentru border.

15 speffects: semnaleaz a efecte speciale; B- blinking; D- border cu linie dubl a; C- titlu centrat; M- select ie multipl a; W- shadow; Ssunet beep; L- intensitate mic a; n cazul select iei multiple, elementele tabloului #MENUSEL vor cont ine indicii entit a tilor selectate din meniu; dimensiunea acestui tablou trebuie declarat a cu DIM n funct ie de num arul maxim de select ii care se pot face. box title: string care apare n topul meniului. selection character: este un string. Fiecare caracter din acest string corespunde unei pozit ii din meniu; la selectare, act ionarea tastei asociat a caracterului va determina select ia elementului asociat din meniu. Ca observat ie general a asupra funct iei MENU facem precizarea c a nu este obligatorie utilizarea tuturor parametrilor acestei fuunct ii. Parametrii pe care nu dorim s a i utiliz am vor specicat i cu blanc, ceea ce nseamn a c a vor exista dou a virgule consecutive n lista parametrilor. De exemplu, MENU(tab,,,5,10) Observ am c a nu sunt specicat i tot i cei 15 parametri.

16 In cazul n care este necesar s a denim argumentul k atunci trebuie specicate toate cele k 1 argumente din fat a acestuia, eventual prin virgule consective pentru a ar ata utilizarea standard a argumentelor respective. MIN(expr1,expr2) Calculeaz a cea mai mic a valoare. MKDIR("nume") Creaz a un nou director. NUMSTR("string") Returneaz a TRUE dac a stringul specicat este alc atuit numai din cifre; altfel returneaz a FALSE. NUMVAL(var) Returneaz a num arul de valori care exist a n variabila var. READIM("sier",row,col) A seaz a imaginea memorat a n fisier prin funct ia WRITEIM. A- sarea se face n colt ul nord-vest de coordonate specicate prin row, col. READIM returneaz a identicatorul imaginii a sate.

17 RMDIR("nume-director") S terge directorul specicat. SIN(rad) Calculeaz a sinusul pentru rad dat n radiani. SQRT(expr) Calculeaz a radicalul de ordinul 2. SUBSTR("string",pos,lung) Extrage substringul din "string" care ncepe la pozit ia pos si are lungimea lung. TAN(expr) Calculeaz a tangenta trigonometric a. TOINT(expr) Returneaz a valoarea lui expr convertit a la un ntreg. UPCASE("string") Converte ste caracterele mici la caractere mari. WRITEIM("nume-sier",row-1,col-1, ror2,col-2) Este perechea lui READIM.

S-ar putea să vă placă și