Informatica
Conceptele Programarii - ce este Programarea?, elementele de baza ale codului de programareConceptele Programarii Ce este Programarea? Cum multi ani in urma, cand am intalnit pentru prima data un computer, termenul programare" avea o conotatie limitata. In fapt, cuvantul computer imi evoca invariabil o imagine a unei camere pline cu echipamente mentinute intr-un climat controlat constant, inconjurat de fire si benzi magnetice si pline de leduri luminate. Programarea unei asemenea masinarii de fier insemna configurarea linie cu linie a unor simboluri codate criptat intr-un misterios act de comunicare cu masinile. Acest lucru se realiza fara nici un GUI (Graphic User Interface In cel mai general sens, termenul programare, inseamna sa pui o masina sa faca ceea ce doresti. Insa in ziua de azi programarea devine mult mai mult decat atat. O parte din utilizatorii obisnuiti de computere, considera a utiliza aplicatiile lor special realizate pentru munca lor de zi cu zi ca fiind tot programare. Altii folosesc termenul de programare in cazul folosirii unor aplicatii de mail, de procesare de text, de folosire a unor aplicatii de calcul tabelar sau proiectare cu ajutorul unor aplicatii de tip CAD. Acum exista o gramada de generatori de aplicatii (wizards), constructori automati (builders), si proiectanti de suprafete grafice, care in mare sar peste generarea de cod si creeaza interfete sofisticate pentru aplicatii. In aceasta idee nu mai este nevoie de scrierea de cod de la cap la coada intr-o aplicatie Elementele de baza ale codului de programare La fel ca orice limba vorbita care contine substantive, verbe, adjective si reguli de sintaxa pentru a pune toate acestea impreuna, la fel si in cazul limbajelor de programare a computerelor, acestea contin elemente de baza certe. De aici si limbajul Visual FoxPro nu face exceptii si contine urmatoarele elemente de baza:
Comenzi si Functii Sintaxa
VFP nu este sensibila in ceea ce priveste majuscule sau minuscule (case sensitive). Exista conventii in ceea ce priveste scrierea codului de program numai cu minuscule, in timp ce alti dezvoltatori de cod scriu dupa alte conventii, de exemplu cea ungara. In cadrul liniilor de cod un spatiu este egal cu mai multe spatii dintre cuvinte, cat si o linie goala nu difera de mai multe asemenea linii goale. Cele mai bune practici de a scrie cod de program spun ca este recomandat de a scrie cod cu multe spatii si cu indentari pentru a fi mai usor de citit si de intretinut. Comenzile (Commands), la fel ca si ordinele directe, sunt cuvinte cheie grupate impreuna care ordona computerului sa faca o actiune. Vizual ele difera de Functii (Functions), care sunt tot la fel instructiuni adresate computerului, in care functiile sfarsesc intr-o pereche de paranteze. Parantezele pot fi goale sau pot contine orice parametrii recunoscuti de catre acele functii. In mod normal o functie returneaza un rezultat, si acel rezultat este disponibil in locul de unde functia a fost apelata exemplu: ldData = DATE()in linia de cod variabila ldData contine data de azi dupa ce se executa functia Sunt mai multe feluri de a apela o functie:
lnStart = SECONDS() && Numarul secundelor pana la miezul noptii < apoi > lnDuration = SECONDS() - lnStart && Calculeaza timpul ramas
IF TABLEUPDATE() < Comenzi ce se executa in cazul rezultatului testului adevarat> ENDIF
?SEEK(lcRecord, lcTable, lcIndex) && Afiseaza rezultatele cautarii
lnCurentMonth = MONTH( DATE() ) && Afiseaza luna din data curenta
=ASORT(laArray) && Sorteaza un tablou de valori Literali si Constante
Cele mai simple forme de informatii pe care le poti utiliza in cod sunt datele nevariabile care pot fi furnizate direct subrutinelor. O valoare care este codata intr-o rutina si care este luata ca atare este denumita un literal. De exemplu: lnWeeks = lnDays/7 && Numarul zilelor dintr-o saptamana este intotdeauna 7 MessageBox('Procesare completa') && Mesajul este intotdeauna acelasi lnElapsed = DATE() - && Data de start este aceiasi tot DIMENSION aArray[15,3] && Marimea tabloului de valori este fixa Daca asignati un nume unui literal, acesta devine o constanta. Toate referintele pe care le faceti acelui nume in codul de program vor fi inlocuite cu valoarea pe care ati furnizat-o. Daca aveti nevoie sa schimbati valoarea, o veti schimba intr-un singur loc acolo unde s-a facut asignarea numelui cu literalul, dupa cum este in exemplu: lnEmployeeCount = 53 <Alte comenzi> FOR lnI = 1 TO lnEmployeeCount <Listeaza invitatii pentru petrecerea companiei> ENDFOR
Constante in timpul executiei (Runtime) Versus Constante in timpul compilarii (Compile Time) Constantele pot fi asignate in timpul executiei, ca in exemplul anterior, sau in timpul compilarii cu ajutorul directivelor #DEFINE, dupa cum urmeaza: #DEFINE ZERO 0. Grupuri de declaratii #DEFINE pot fi mentinute intr-un fisier separat #INCLUDE pe care il adaugati la inceputul codului de program. Acest lucru se realizeaza pentru a reduce utilizarea memoriei pentru ca substitutia este facuta in timpul compilarii, si ca atare resursele sunt imediat disponibilizate. Acest lucru poate creste performantele, deoarece numele constantelor nu au nevoie sa stea in memorie si referintele la acestea sunt deja rezolvate in momentul in care apar Variabile de Memorie Nu este intotdeauna usor sa stii valorile pe care doriti codul d-voastra sa le utilizeze. De aceea se poate asigna un nume la o valoare si apoi sa faceti referire la acel nume pentru valoarea actual oriunde in codul de program Acest lucru se face ori cu semnul = sau cu ajutorul comenzii STORE SomeValue TO SomeName STORE 0 TO lnOne, lnTwo, lnThree, lnFour, lnFive Tipuri de Date Visual FoxPro va ajuta sa folositi un bogat sortiment de tipuri de date din memorie. De aceea, in VFP, o variabila ia caracteristicile datelor pe care le contine. Daca x = 5 x este o variabila numerica. Daca variabila x este schimbata in asa fel x = 'ABC', tipul variabilei este schimbat in caracter Domeniul de aplicare Domeniul de aplicare se refera la viata si vizibilitatea unei variabile Variabilele pot fi
Variabilele Publice, cunoscute si ca variabile globale, pot fi vizualizate si utilizate in orice rutina din cadrul sesiunii curente VFP. Acestea raman in memorie si sunt eliberate cand se termina sesiunea de lucru sau cand sunt sterse din memorie.
Variabile Private exista in programul curent. Sunt automat sterse cand se termina programul curent, daca nu au fost sterse in mod intentionat inainte de aceasta. Variabilele private pot fi de asemenea vizibile de oricare alta subrutina daca au fost apelate de catre aceasta, ceea ce poate crea confuzie in subrutina apelata, ca si cum ar fi propriile variabile private cu acelasi nume. Variabile Locale exista numai in cadrul rutinei curente, si aceasta variabila locala intr-o metoda a unui obiect sau a unei subrutine este stearsa, cand subrutina se incheie. Tablou de valori (Array) Un tablou de valori este un grup de variabile de memorie tinute ca o singura unitate. Poate fi vizualizat ca o foaie de calcul tabelar (spreadsheet), unde randurile orizontale intersecteaza coloanele vertical in puncte individuale denumite celule, iar fiecare celula poate salva o informatie (data), chiar de tipuri diferite. Tablourile de valori sunt foarte la indemana de utilizat in cazul pregatirii unor rezultate intermediare intr-o subrutina, deoarece ele sunt pastrate tot timpul in memorie, accesul fiind foarte rapid. Exemplu: laPlata[1,5] = laPlata[1,3] * lnRata Conventii de nume Din caza aparitiei destul de des a unor confuzii create de utilizarea in cadrul unor subrutine a unor variabile de tipuri de date alese gresit sau referirea la niste variabile care au iesit din domeniul de aplicare, multi dezvoltatori au adoptat o conventie prin care incapsuleaza in numele variabilei domeniul de aplicare si tipul de data folosit pentru variabila respectiva. Mai exact primele doua litere, scrise cu minuscule sunt alipite la numele variabilei, ca de exemplu lcStudentID pdAstazi sau glOkDeContinuat Tabelul 1 Prefixe pentru variabile in cadrul Conventiei de nume
Referinte indirecte Comenzile si functiile trimit direct instructiuni computerului si transmit argumente care sunt de fapt informatii sau nume de variabile in loc de date. Unele comenzi, acelea care lucreaza cu date din tabele, asteapta nume ca argumente: nume de tabele, nume de campuri, nume de rapoarte. Numele de tabele, campuri, etc. nu se asigneaza la fel cum se asigneaza variabilele datelor. Referinta indirecta va permite sa emiteti comenzi care folosesc nume care variaza. De exemplu, puteti citi numele unui fisier curent de back-up dintr-un camp. In codul de program, se inconjoara acel nume cu paranteze pentru a indica ca sirul de caractere reprezinta de fapt un nume al unei alte entitati, si este acea entitate la care vrem sa facem referinta: lcNumeFisier = System.Backup USE (lcNumeFisier) IN 0 ALIAS Backfile Campuri de Date Datele pastrate intr-un tabel poate fi identificata mult mai riguros decat datele pastrate in variabile de memorie. Fiecare camp dintr-un table are o marime fixa si corespunde unui anumit tip de data. Mai mult, daca tabelul este parte a unei baze de date, pot exista reguli configurate in procedurile stocate ale bazei de date care sa monitorizeze valorile datelor, conditii de unicitate, si relatii cu alte tabele. Numele campurilor nu se supun conventiei de nume. Caracteristicile campurilor sunt stocate in header-ul tabelului si sunt disponibile aplicatiilor la cerere. Comentarii O linie de comentarii incepe cu asterisc ( ) sau cu cuvantul NOTE. Se poate adauga comentarii in continuarea oricarei linii de cod prin tastarea unui spatiu si a doua ampersand-uri (&&). Orice este scris de la ampersand pana la finalul liniei de cod de program este considerat comentariu si este ignorant de VFP. Chiar daca nu este compilat sau executat, comentariul serveste la un scop foarte important in programare. Codul poate fi foarte complex, iar un program scris si executat este posibil sa treaca luni de zile fara sa fie revizuit. De obicei motivul principal pentru a revizui codul unui program care ruleaza este aparitia unor circumstante ce fac sa nu mai fie programul de actualitate sau sa apara erori. In aceste conditii, este dificil de citit si chiar mai dificil de intretinut sau modificat. De aceea adaugari de comentarii, care precizeaza comportamentul sau actiunea fiecarei subrutine din codul de program, face din scopul celui care vrea sa realizeze o modificare un lucru mult mai facil. De asemenea este foarte des intalnit cazul in care dezvoltatorii plaseaza la inceputul subrutinei cateva linii de comentarii care includ de obicei numele autorului programului, data de creare, scopul, sub ce forma se doresc iesirile, parametrii de identificare.
|