NOTIUNI GENERALE DESPRE PROGRAMARE
PROGRAMUL. MODUL DE PROGRAM .APLICATIE
Programul este o succesiune de instructiuni legate logic , care executa o sarcina complexa . Ordinea in care sunt scrise instructiunile in program este determinanta pentru actiunile pe care le declanseaza .
O parte din program cu o singura functie bine definita poarte numele de modul de program. Programul poate fi compus din mai multe module de program.
O aplicatie este in general , formata dintr-o multime de programe si module de programe , fiecare executand sarcini bine definite . Se utilizeaza termenul de aplicatie pentru sarcini de complexitate mai mare cum ar fi evidenta personalului si calcului salariilor , urmarirea decontarilor cu clientii si furnizorii, urmarirea mijloacelor fixe , etc.
Problema structurii aplicatie-program-modul de program este importanta deoarece impartirea aplicatiei in programe si programele in module de program este esentiala pentru mentinerea claritatii in programare . O asemenea structurare permite testarea si corectarea simpla a programelor,corectiile afectand in general doar anumite secvente de program usor localizabile .Ca regula de stil de programare se recomanda impartirea aplicatiei in programe si a programelor in module de program conform logicii interne ceruta de necesitatile de prelucrare .Este utila utilizarea comentariilor in interiorul programelor mai complexe . O comentare corecta , desi poate fi plictisitoare pentru utilizator , isi arata eficienta la orice modificare anterioara a programului .
EXPRESII VARIABILE DE MEMORIE FUNCTII
O expresie este o entitate care prin evaluare genereaza o noua valoare de tip Carácter,Numweric,Logic sau Data calendaristica . O expresie poate fi un singur numar , o variabila , sau poate fi complexa . De obicei formeaza expresii cu diferite combinatii ale urmatoarelor elemente :
nume de campuri din baze de date ;
variabile de memorie ;
constante (literale) ;
functii si operatori ;
elemente de tablou.
CONSTANTE
Sunt date predefinite care un isi schimba valoarea in timpul executarii comenzilor . Constantele pot fi :
Constantele numerice sunt siruri de cifre zecimale continand eventual punctul zecimal si fiind precedate eventual de semn
Tip constanta |
Exemplu |
Numar intreg | |
Numar real | |
Constanta in notatia stiintifica |
1.2E-5 |
Constantele de tip carácter sunt formate din unul sau mai multe caractere incluse intre o pereche de apostrofuri , ghilimele sau paranteze drepte. Daca sirul de caractere contine unul din acesti delimitatori ,el va trebui inclus intre alte caractere delimitator.
Exemple:
"hello !"
'hello !'
[ hello !]
[ hello "FOXPRO "! ]
Constantele logice iau valorile adevarat , TRUE , sau fals,FALSE. Ele se reprezinta prin .T .t. , .Y. , .y. pentru adevarat si .F. , .f. , .N. , .n. pentru fals.
Constantele de tip data calendaristica se includ intre o pereche de acolade :
VARIABILE DE MEMORIE
Sunt definite de programator si au rolul de a memora diferite informatii in afara bazelor de date . Ele se utilizeaza ca variabile temporare pentru calcule intermediare , ca variabile de control pentru programe in interiorul expresiilor, etc.
Variabilele de memorie se caracterizeaza printr-un nume de maximum 10 caractere alfanumerice (un se admite spatiul ), trebuind sa inceapa obligatoriu printr-o litera . Ele pot avea orice tip permis de FOXPRO .
Daca printr-o eroare de programare variabile de memoria au acelasi nume cu campuri din bazele de date , orice utilizare a numelui respectiv face referire la baza de date .Referirea la variabila de memorie se face precedand numele variabilei cu M. sau M-> .
Exemplu :
Variabila nume poate fi referita prin M.nume sau M->nume
In general pentru a putea fi utilizate variabilele de memorie trebuie sa contina valori .Operatia prin care unei variabile de memorie I se atribuie o valoare se numeste atribuire .
Instructiunile de atribuire in FOXPRO sunt :
Daca variabila de memorie un exista inca in momentul atribuirii , atunci operatia de atribuire se numeste initializare .
Variabilele de memorie pot fi de orice tip permis in FOXPRO , in functie de expresia care li se atribuie .
Exemplu:
STORE DATE ( ) TO vdata
STORE 50 TO vnum
STORE "Hello ! " TO vcar
STORE .T. TO vlog
Afisarea variabilelor de memorie disponibile la un moment dat se va face prin comanda DISPLAY MEMORY
Sintaxa comenzii este :
DISPLAY MEMORY [ LIKE sablon ]
Comanda are ca efect afisarea numelui , tipului , continutului si starii pentru toate variabilele de memorie definite curent . De asemenea se afiseaza numarul de variabile de memorie definite si numarul de octeti folosit pentru memorarea lor .
Clauza LIKE sablon permite afisarea selectiva a variabilelor . Sablonul permite caracterele " si "* ".
Exemplu :
DISP MEMO LIKE A*
In momentul in care variabilele de memorie un mai sunt necesare , ele pot fi sterse pin instructiunea RELEASE
Sintaxa instructiunii are doua forme :
Prima forma va sterge din memorie doar variabilele ce apar in lista.Adoua forma permite stergerea tuturor variabilelor al caror nume nu respecta un sablon precizat .
ELEMENTE DE TABLOU (masive )
Masivele sunt siruri contigue delocatii de memorie. Masivul se identifica prin nume si fiecare locatie de memorie individuala - fiecare element i din sir se identifica prin pozitia sa numerica in cadrul sirului- prin indice .
Masivele sunt variabile de memorie cu un carácter special, au atribute asemanatoare da un identice ,cu variabilele . De exemplu , sunt eterogene ( un au tip ) -adica fiecare element are tip propriu si sunt initializate la crearea masivului , cu valoarea logica fals ( .F. )
Dupa dimensiune , masivele se clasifica in unidimensionale sau vectori (siruri ) respectiv multidimensionale ( in cazul bidimensional se numesc matrici ).
Declararea masivelor se face prin comenzile DECLARE sau DIMENSION in care se declara numele masivului si numarul maxim de elemente pentru fiecare dimensiune . De exemplu un masiv A cu 2 linii si trei coloane se poate declara astfel :
DECLARE A( 2,3 )
Referirea elementelor masivului se face prin nume si indicele curent . De exemplu , pentru a initializa elementul de pe linia 1 si coloana 3 din matricea A definita anterior putem folosi instructiunea
A(1,3)=" Hello ! "
Puteti initializa fiecare element al masivului la o valoare folosind comanda STORE sau operatorul = ( egal ) . Cand COMPATIBLE este OFF si includeti numele masivului ( fara dimensiuni) in STORE sau = , fiecare element al masivului este initializat cu aceasi valoare .
Exemplu :
SET COMPATIBLE OFF
DIMENSION A(10,10)
STORE 0 to A
DISPLAY MEMORY LIKE A
In exemplul anterior fiecare element al masivului este initializat cu 0 ( zero ).
FUNCTII
Functia este o componenta a sistemului de gestiune a bazelor de date care se aplica unor operanzi si reintoarce utilizatorului un rezultat ( o valoare numerica ,un sir de caracter , o valoare logica etc).Rolul si mecanismul de functionare este cel cunoscut din matematica.Functiile se impart in mai multe clase in functie de natura operanzilor carora li se aplica dar este dificila o delimitare clara in categorii distincte .
Functiii de tip carácter
Functie |
Semnificatie |
ALLTRIM (expr_car) |
Returneaza un sir de carácter din care a eliminat spatiile nesemnificative. Expr_car este sirul initial ce contine spatii nesemnificative |
ASC (expr_car) |
Returneaza codul ASCII al primului carácter din expresie .Orice alt carácter din expr_car este ignorat . |
AT (expr_car1 , expr_car2 [,expr_num[ ) |
Returneaza pozitia unei expresii de tip carácter in alta : Expr_car1 - sirul care se cauta Expr_car2 - sirul in care se cauta Expr_num - a cata aparitie a expr_car1 in expr_car2 se cauta ( implicit) expr_num=1 , adica se cauta prima aparitie ) Daca expr_car1 nu se gaseste in expr_car2 se returneaza 0 .Cautarea realizata prin AT ( ) tine cont de scrierea cu litere mici si mari; pentru a nu face diferente se foloseste functia ATC ( ) |
BETWEEN (expr_1,expr_2,expr_3) |
Indica daca o expresie de tip carácter numerica sau data calndaristica se afla intre alte doua expresii de acelasi tip.Functia retureaza (.T.) daca expr_car1 este mai mare sau egala cu expr_2 si mai mica sau egala cu expr_3 ( expr_2<=expr_1<=expr_3) si (.F.) in caz contrar . |
CHR (expr_num) |
Returneaza caracterul al carui cod ASCII este dat de valoaarea expresiei expr_num. Functia inversa este ASC ( ) . |
CTOD ( expr_car) |
Converteste o expresie de tip sir de caractere intr-o expresie de tip data.Expresia de tip carácter trebuie sa contina o data valida cuprinsa intre "1.1/100" si "12/31/9999". Formatul implicit pentru expr_car este "ll/zz/aa",dar acesta poate fi modificat prin SET DATE si SET CENTURY. Daca secolul un este spcificat ,la introduerea datei se considera implicit secolul 20 |
ISALPHA |
Returneaza (.T.) daca expresia caracter incepe cu o litera .Toate celelalte caractere sunt ignorate |
ISLOWER |
Returneaza (.T.) daca expresia caracter incepe cu o litera mica . Toate celelalte caractere sunt ignorate |
ISUPPER |
Returneaza (.T.) daca expresia carácter incepe cu o litera mare .Toate celelalte caractere sunt ignorate |
LEN |
Returneaza lungimea unei expresii de tip carácter |
LOWER |
Converteste toate literele din expr_car in litere mici |
LIKE |
Compara doua expresii de tip carácter. Expr_car1 poate contine caracterele asterisc si "?"pentru cautari globale . Functia returneaza (.T.) daca expresia din expr_car2 se potriveste cu sablonul expr_car1 si returneaza (.F.) in caz contrar |
LEFT (expr_car,expr_num) |
Returneaza caracterele din stanga. Expr_car -expresia din care se extrag caractere Expr_num- numarul de caractere returnate OBSERVATIE : Functia LEFT( ) este identica cu o functie SUBSTR ( ) cu pozitia de inceput 1 |
LTRIM (expr_car) |
Elimina spatiile nesemnificative dintr-o expresie.Se foloseste de obicei in combinatie cu functia STR ( ) pentru a converti numere in siruri de caractere . |
OCCURS ( expr_car1 , expr_car2) |
Returneaza numarul de aparitii ale unei expresii in interiorul celeilalte. Expr_car1-expresia care se cauta; Expr_car2- in care se cauta. Daca o expresie nu se gaseste in cealalta , se returneaza 0 |
PADL ( expr, expr_num [, expr_car ] ) |
Aliniaza la dreapta |
PADR ( expr, expr_num [, expr_car ] ) |
Aliniaza la stanga |
PADC ( expr, expr_num [, expr_car ] ) |
Centreaza Expr-expresia care se aliniaza Expr_num-numarul de pozitii pe care se face alinierea Expr_car-textul de fundal , peste care se suprapune expresia de aliniat.Implicit aceasta expresie este vida , se va face o aliniere simpla |
REPLICATE (expr_car,expr_num) |
Returneaza un sir de caractere rezultat din repetarea expresiei de tip caracter de un numar de ori. Expr_car-sirul de caractere ce se repeta Expr_num - indica de cate ori se va repeta expresia. |
RIGHT (expr_car, expr_num) |
Returneaza caracterele cele mai din dreapta. Expr_num - indica numarul de caractere pe care il va avea noul sir .daca se indica un numar de caractere mai mare decat lungimea expresiei expr_car se va returna tot sirul de caractere desemnat de expr_car. |
RTRIM (expr_car) |
Elimina spatiile nesemnificative dintr-o expresie . Functia este identica cu TRIM( ). |
SPACE (expr_num) |
Returneaza un sir compus din spatii . Expr_num -numarul de spatii returnate |
STR (expr_num1 [,expr_num2 [,expr_num3 ]] ) |
Converteste un numar intr-un sir de caractere. Expr_num1 - numarul de convertit Expr_num2 - numarul pe care se va face conversia incluzand punctul zecimal si cifrele zecimale .Daca se specifica o lungime mai mare decat numarul de cifre rezultate se vor adauga spatii in stanga numarului .Daca se specifica o lungime mai mica decat numarul de cifre rezultate ,se vor returna un sir de asteriscuri ce vor indica depasirea Expr_num3-numarul de pozitii zecimale ce se returneaza . Daca se specifica mai putine zecimale decat are numarul se va face o trunchiere pe numarul de pozitii specificat |
SUBSTR (expr_car, expr_num [,expr_num2 ]) |
Returneaza un numar specificat de caractere dintr-o expresie de tip caracter . Expr_car- expresia din care se extrag caracterele Expr_num-pozitia in cadrul expresiei expr_car din care incepe extragerea.Prima pozitie intr-o expresie de tip caracter este 1 Expr_num2-numarul de caractere extrase.Daca parametrul lipseste se vor extrage toate caracterele pana la sfarsitul expresiei. |
TRIM (expr_car) |
Elimina aspatiile nesemnificative dintr-o expresie.Functia este identical cu RTRIM ( ) |
UPPER ( expr_car) |
Converteste toate literele din expr_car in litere mari |
Functii numerice
Exista functii numerice corespondente pentru toate functiile trigonometrice,exponentiale,logaritmi,radicali,valoarea lui Pi ,etc.
Functia |
Semnificatia |
INT (expr_num) |
Returneaza partea intreaga a unei expresii numerice |
ROUND(expr_num1, expr_num2) |
Rotunjeste o expresie numerica cu un numar de zecimale precizat.SET DECIMALS este ignorat . Expr_num-expresia de rotunjit Expr_num2-numarul de zecimale la care se face rotunjirea. Daca se precizeaza o valoare negativa,se va returna un numar intreg avand in fata punctului zecimal un numar de zerouri precizat prin expr_num2. Exemplu : ROUND(1234.1962,-1) produce 1230.0000 ROUND(1234.1962,-2) produce 1200.0000 ROUND(1234.1962,-3) produce 1000.0000 |
VAL(expr_car) |
Returneaza valoarea numerica a unui sir de caractere compus din cifre.Daca primul caracter din sir nu este o cifra VAL( ) returneaza 0 |
Functii de tip data calendaristica
Functia |
Semnificatie |
CDOW (expr_data) | |
CMONTH (expr_data) | |
DATE ( ) | |
DAY (expr_data) | |
DOW (expr_data) | |
DTOC (expr_data [ , 1 ] ) | |
DTOS (expr_data) | |
GOMONTH (expr_data, expr_num) | |
MONTH (expr_data) | |
SECONDS ( ) | |
TIME ( ) | |
YEAR (expr_data) |
Functii referitoare la fisiere baza de date
Functia |
Semnificatia |
ALIAS ( [ nr_zona ]) | |
SELECT ( [ 0 | 1 ] ) | |
BOF ( [alias | nr_zona ]) | |
DELETED ( [alias | nr_zona ]) | |
EOF ( [nr_zona | alias ]) | |
FCOUNT ( [nr_zona | alias ]) | |
FOUND ( [nr_zona | alias ]) | |
RECCOUNT ( [nr_zona | alias ]) | |
RECNO ( [nr_zona | alias ]) | |
RECSIZE ( [nr_zona | alias ]) |
Atle tipuri de functii
Functia |
Semnificatia |
COL ( ) | |
ROW ( ) | |
PCOL ( ) | |
PROW ( ) | |
MEMORY ( ) | |
ISCOLOR ( ) | |
DISKSPACE ( ) | |
FILE (fisier) | |
PRINTSTATUS ( ) | |
LASTKEY ( ) | |
IIF (expr_log, expr_1, expr_2 ) |
Comantarea programelor
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |