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 si functii standard

fox pro



+ Font mai mare | - Font mai mic



Tipuri de date si functii standard

Datele cu care lucreaza FoxPro sunt de tip numeric, caracter, data calendaristica, logic. Asupra acestor tipuri de date s-au definit operatii specifice si au fost realizate functii standard dintre care cele mai des folosite vor fi explicate in continuare.



Functii uzuale asupra tuturor tipurilor de date:

MAX (<e1>,<e2>)

calculeaza maximul dintre doua valori <e1> si <e2>

MIN (<e1>,<e2>)

calculeaza minimul dintre doua valori <e1> si <e2>

TYPE(<eC>)

intoarce litera corespunzatoare tipului de data.

IIF(<eL>,<e1>,<e2>)

intoarce <e1> daca <eL>    este adevarat si <e2>in caz contrar

Tipul numeric

O mare parte a datelor prelucrate de calculator este reprezentata de numere, pentru a caror descriere se foloseste tipul numeric. Cu toate ca limbajul FoxPro este un limbaj orientat pe lucrul cu baze de date si nu unul orientat pe calcule matematice, stiintifice, tipul numeric este imlementat astfel acat sa permita realizarea majoritatii operatiilor matematice antalnite in practica.

De asemenea, sunt prevazute o serie de functii matematice prin care se pot calcula functiile matematice elementare.

Operanzii numerici care intervin in expresii pot fi:

campuri numerice ale unei baze de date;

functii care returneaza valori numerice;

variabile de tip numeric;

constante numerice.

Operatori care se aplica unor operanzi numerici, avand ca rezultate tot valori numerice sunt : **, ^ (ridicarea la putere), * ( inmultire), / (impartire), % (modulo, restul impartirii), + (adunare), - scadere. Intre doua expresii numerice se pot aplica, de asemenea, operatori relationali, obtinandu-se expresii logice.

Functiile standard uzuale:

ABS (<eN>)

calculeaza valoarea absoluta din <eN>

SQRT (<eN>)

calculeaza radical din <eN> (strict pozitiv)

ROUND (<eN1>,<eN2>)

<eN1> este rotunjita la zecimala data de <eN2>

MOD (<eN1>,<eN2>)

calculeaza restul impartirii intregi a lui <eN1> la <eN2>

INT (<eN>)

intoarce un intreg rezultat prin trunchierea zecimalelor

CEILING (<eN>)

intoarce cel mai mic intreg mai mare sau egal cu argumentul <eN>

FLOOR (<eN>)

intoarce cel mai mare intreg mai mic sau egal cu argumentul <eN>

SIGN (<eN>)

intoarce valoarea -1 pentru argument negativ, 1 pentru argument pozitiv si 0 pentru argument nul.

RAND ()

returneaza un numar aleator in intervalul (0, 1)

STR (<eN1>[,<eN2> [,<eN3>]])

conversia intre tipul numeric si tipul sir: <eN1> este numarul, <eN2> este lungimea, <eN3> numarul de pozitii pe care se va face reprezentarea partii zecimale.

Exemplu:

? MOD ( 38, 6 )

? MOD ( 44,44 , 11,11 )

Observatie: Lista functiilor standard cuprinde si functii trigonometrice, logaritmi, radical, functia exponentiala, pe care le vom prezenta in anexa.

Fixarea numarului de zecimale pentru afisarea numerelor se poate face cu comanda SET DECIMALS:

SET DECIMAL TO <nr>

Exemplu:

0, 67

SET DECIMAL TO 4

Exemple cu functii:

? ABS ( a )

? SIGN ( - 32 )

a = - 2 / 3

? a = SIGN ( a ) * ABS ( a )

. T .

? INT ( 14 . 46 )

? INT ( - 2 . 25 )

a = 14 . 46

? a - INT ( a )

a = - 2 . 25

? a - INT ( a )

? CEILING ( 8 . 32 )

? CEILING ( -4 . 23 )

? FLOOR ( 8 . 32 )

? FLOOR ( - 4 . 23 )

? EXP ( 2 )

? LOG ( 2 )

? LOG 10 ( 2 )

? EXP ( LOG ( 3 ) )

? SQRT ( 2 )

Functiile financiare

Intre functiile matematice, o categorie aparte o formeaza functiile FV(.,.,.), PV(.,.,.) si PAYMENT(.,.,.) numite functii financiare. In termeni economici functia FV(.,.,.) calculeaza valoarea de viitor a unei investitii ("Future Value") iar functia PV(.,.,.) calculeaza valoarea prezentata a unei investitii ("Prezent Value"). Detaliind:

1) FV(<expN1>, <expN2>, <expN3>) calculeaza valoarea viitoare a unei depuneri regulate cu o crestere constanta in cadrul unei investitii, cu o dobanda fixa pe o perioada data. Parametrii: <expN1> este depunerea, <expN2> este dobanda, <expN3> este perioada sau numarul de depuneri.

2) PV (<expN1>,<expN2>,<expN3>) calculeaza valoarea la zi a unei investitii constituite printr-un varsamant regulat cu o suma constanta, de-a lungul unui numar de perioade date si cand se practica o dobanda fixata. Parametrii functiei: <expN1> este suma platita, <expN2> este dobanda, <expN3> este durata.

3) PAYMENT (<expN1>,<expN2>,<expN3>) calculeaza marimea rambursarilor constante efectuate la intervale regulate care permit amortizarea unei sume, cu dobanda constanta, pe un numar dat de perioade. Parametrii: <expN1> este marimea sumei cheltuite, <expN2> este taxa sau dobanda, <expN3> este numarul de rambursari.

Tipul sir de caractere

Un sir de caractere reprezinta o multime ordonata de caractere care se trateaza ca un tot unitar. Intr-un sir de caractere ordinea acestora fiind esentiala, fiecarui caracter I se poate asocia un numar reprezentand pozitia aceastuia in cadrul sirului.

Numarul caracterelor dintr-un sir reprezinta lungimea sirului. Un subsir al sirului dat repreuinta o portiune din sir, incepand de la o pozitie specificata si de lungimea data

Constantele de tip sir de caractere se specifica prin multimea caracterelor care le compun, incadrate intre apostrofuri simple sau duble ( la ambele capete trebuie sa fie acelasi tip de apostrof ).

Pentru a include unul dintre cele doua delimitatoare intr-un sir de caractere, multimea caracterelor ce alcatuiesc sirul va fi incadrata intre delimitatorul de celalalt tip decat cel din sir. Daca lungimea sirului este 0 obtinem sirul vid sau nul, care se specifica prin doua apostrofuri consecutive fara spatii sau alte caractere intre ele.

Datele de tip sir de caractere pot avea lungimea maxim 255 caractere ASCII si se reprezinta intern cate un caracter pe octet in binar.

Operatii asupra datelor de tip sir

- concatenarea a doua siruri se realizeaza prin operatorii de concatenare (+, -); (+) realizeaza concatenarea a doua siruri;

Exemplu: " strada _ " + " George _ Cosbuc "

Dupa evaluare, va avea valoarea:

" strada _ George _ Cosbuc "

Operatorul (-) realizeaza concatenarea termenilor cu mutarea spatiilor de la sfarsitul primului sir la sfarsitul sirului rezultat.

Exemplu: " Salut " - " prieteni !"

Dupa evaluare, vom obtine sirul de caractere

" Salut prieteni ! "

se observa ca blancurile de la inceputul sirului al doilea isi pastreaza pozitia in sir.

- testarea apartenentei unui sir la un alt sir este realizata prin operatorul ($); poate fi folosit in expresii logice.

De exemplu, expresia:

" calcul " $ " calculator "

este adevarata, pe cand expresia:

" calcule " $ " calculator "

va fi evaluata la valoarea logica fals.

Compararea sirurilor de caractere de lungimi diferite este controlata de comanda :

SET EXACT ON / OFF

In starea ON sirurile se compara de pe toata lungimea lor (cu exceptia spatiilor de la sfarsitul sirului). In starea OFF se ia lungimea cea mai scurta si, daca pe aceeasi lungime sirurile sunt egale, rezultatul este .T..

Functii uzuale asupra sirurilor

SUBSTR (<eC>, <eN1>,<eN2>)

extrage un subsir din sirul <eC> incepand cu

caracterul de pe pozitia <eN1> pe lungime

<eN2>

LEFT (<eC>, <eN>)

extrage primele <eN> caractere din sirul <eC>

RIGHT (<eC>, <eN>)

extrage ultimele <eN> caractere din sirul <eC>

LEN (<eC>)

intoarce lungimea sirului <eC>

REPLICATE (<eC>, <eN>)

intoarce un sir avand <eC> multiplicat de

<eN> ori

SPACE (<eN>)

Intoarce un sir de <eN> spatii

LTRIM (<eC>)

elimina spatiile de la stanga sirului <eC>

ex.: LTRIM('MIA')="MIA"

RTRIM (<eC>)/ TRIM (<eC>)

elimina spatiile de la dreapta sirului <eC>

ex.: RTRIM("MAI"')="MAI"

AT (<eC1>, <eC2>)

intoarce pozitiile sirului <eC1> in <eC2>

ISALPHA (<eC>)

testeaza daca sirul incepe cu o litera

ISLOWER (<eC>)

testeaza daca sirul incepe cu minuscula

ISUPPER (<eC>)

testeaza daca sirul incepe cu majuscula

LOWER (<eC>)

transforma sirul in minuscule

UPPER (expC)

transforma sirul in majuscule

STUFF (<eC1>, <eN1>, <eN2>, <eC2>)

inlocuieste in <eC1> incepand cu pozitia

<eN1> un subsir de lungime <eN2> prin

sirul <eC2>

CTOD (<eC>)

realizeaza conversia unui sir la data

calendaristica

VAL (<eC>)

realizeaza conversia unui sir la numar

Exemple:

? CHR ( 49 )

? CHR ( 65 ) == " A "

. T .

? ASC ( " A " )

? ASC ( " a " ) = ASC ( alfa )

. T .

? " A " == CHR ( ASC ( " A " ) )

. T .

? 65 == ASC ( CHR ) 65 ) )

. T .

? SUBSTR ( " ABCDEF " , 2, 3 )

BCD

? SUBSTR ( " Ziua Buna " , 6 )

Buna

? LEFT ( " La multi ani ! " , 2 )

La

? RIGHT ( " Noapte buna ! " , 6 )

buna !

? REPLICATE ( " a " , 5 )

a a a a a

? REPLICATE ( " " , 6 ) == SPACE ( 6 )

. T .

? ALLTRIM ( " GAMA " ) == " GAMA "

. T .

? " Ma numesc    " + RTRIM ( " Ionescu " ) + " Daniel "

Ma numesc Ionescu Daniel

? " si am " + LTRIM ( " 24 " ) + " ani. "

si am 24 ani

? AT ( " nr. " , " Strada George Cosbuc, nr. 63 - 64 " )

? LEN ( " Salutari ! " )

? LEN ( " Strada George Cosbuc " + " nr. 150 " )

a = " ALFA "

b = " alfa "

? UPPER ( a ) == UPPER ( b )

. T .

? LOWER ( a ) == LOWER ( b )

. T .

STORE " pala " TO sir

sir = STUFF ( sir , 3 , 0 , " rale " )

? sir

paralela

sir = STUFF ( sir , 3 , 3 , " sar " )

? sir

pasarela

sir = STUFF ( sir , 7 , 2 , " " )

? sir

pasare

Tipul data calendaristica

Datele calendaristice pot fi reprezentate in mai multe formate avand ca delimitator acolada. Forma de prezentare a unei date calendaristice depinde de comanda SET DATE:

SET DATE [TO] <format>

unde <format> poate fi: AMERICAN / GERMAN / ANSI / ITALIAN / DMY /BRITISH /JAPAN /FRENCH /USA /MDY /YMD

Formatul AMERICAN prezinta data calendaristica sub forma: ll/zz/aa.; formatul GERMAN sub forma zz.ll.aa., etc.

Includerea secolului in formatul de data este determinata de starea comutatorului SET CENTURY ON/OFF. Implicit este OFF.

Indicarea semnului folosit ca separator al informatiilor de tip data calendaristica este dat de comanda SET MARK. Implicit separatorul este dat de formatul de reprezentare. De exemplu formatul AMERICAN foloseste ca separator "/".

SET DATE TO <car>

unde <car> reprezinta un singur caracter ce va fi folosit ca separator al informatiilor din data calendaristica.

Operatii care se pot face cu datele calendaristice sunt:

- compararea a doua date se realizeaza prin operatorii relationali:

- diferenta dintre doua date calendaristice da un numar de zile:

adunarea unui numar de zile la o data calendaristica da o alta data:

scaderea unui numar dintr-o data calendaristica da tot o data;

Functiile referitoare la date calendaristice sunt :

DATE()

intoarce data curenta de la sistem

DAY (<eD>)

extrage nr. zilei din data

MONTH(<eD>)

extrage nr. lunii din data

CMONTH(<eD>)

intoarce numele lunii

YEAR(<eD>)

extrage anul din data calendaristica

TIME()

extrage ora sistem sub forma sirului 'HH:MM:SS'

DTOS(<eD>)

intoarce data sub forma 'secol - an luna zi'

DMY(<eD>)

intoarce data sub forma 'zi nume-luna an'

MDY(<eD>)

intoarce data sub forma 'nume - luna zi an'

DTOC(<eD>)

conversie data la sir

Exemple:

? DATE ( )

11 / 12 / 2000

? CDOW ( DATE ( ) )

Saturday

? DOW ( )

? DAY ( )

? MONTH ( DATE ( ) )

? CMONTH ( )

March



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


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