Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica


Informatica


Qdidactic » stiinta & tehnica » informatica
Conceptele Programarii - ce este Programarea?, elementele de baza ale codului de programare



Conceptele Programarii - ce este Programarea?, elementele de baza ale codului de programare


Conceptele 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 native si functii pre-create pentru a realiza actiuni predefinite.
  • Literali si constante ce sunt utilizate ca si cum sunt operatii din program.
  • Variabile de Memorie ti tablouri de variabile pentru a tine valori de diferite tipuri.
  • Date Permanente stocate in tabele, si posibilitatea de a executa operatii de  I/O asupra acestor structuri.
  • Operatori Aritmetici utilizati cu numere, operatori de caractere pentru a manipula date de tip caracter.
  • Evaluatori Logici pentru a compara entitati si a selecta o cale de raspuns corespunzatoare.
  • Constructori repetitivi care specifica conditiile pentru repetarea executiei portiunilor de cod.
  • Comentarii.
  • Sintaxa, reguli, si principii de constructie ce definesc cum toate aceste elemente se potrivesc impreuna.

Comenzi si Functii

Sintaxa

NOTA

Inca din versiunile precedente, FoxPro a urmarit conventiile Xbase ce da posibilitatea de a reduce orice cuvant cheie la primele 4 litere a acelui cuvant. Visual FoxPro include acum mult mai multe component decat in versiunile precedente ceea ce presupune o greutate in plus pentru a asigura o unicitate a cuvintelor cheie, in ceea ce priveste conventia primelor 4 litere. Totusi, VFP trebuie intai sa recunoasca comanda inainte de a o rula.

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:

  • Include apelarea functiei intr-o declaratie, ceea ce o face disponibila pentru o apelare ulterioara in program.

lnStart = SECONDS()           && Numarul secundelor pana la miezul noptii

< apoi >

lnDuration = SECONDS() - lnStart     && Calculeaza timpul ramas

  • In interiorul unui test logic.

IF TABLEUPDATE()

< Comenzi ce se executa in cazul rezultatului testului adevarat>

ENDIF

  • In cazul unui obiect al unei comenzi.

?SEEK(lcRecord, lcTable, lcIndex)     && Afiseaza rezultatele cautarii

  • In interiorul apelarii altei functii.

lnCurentMonth = MONTH( DATE() )               && Afiseaza luna din data curenta

  • Precedata de catre semnul egal.

=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



TIP

Nu este o idee buna de a folosi literali in cadrul codului, in cazul in care exista si cea mai mica sansa ca acesti literali sa isi schimbe valoarea ulterior. De aceea va recomandam sa utilizati constant plasate la inceputul codului pentru a fi foarte usor de regasit in cazul in care se doreste a fi schimbate valorile acestora din cod.

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

  • Publice
  • Private
  • Locale

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.

NOTA

In mod normal un program transmite informatii altor programe prin variabile globale, deoarece acestea includ indicatori logici care certifica terminarea procesului, deci este ok ca alt proces sa inceapa. Acest lucru este valabil in cazul programarii clasice, in cazul programarii orientate-obiect furnizata de mediul VFP, multi dezvoltatori prefera sa transmita referintele obiectului in locul variabilelor de memorie globale, deoarece un obiect poate contine o gama larga de date referitoare la comportamentul lui in obiectul incapsulat.

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

Domeniul de aplicare (prima litera)

Tip de data ( a doua litera)

Litera

Ce reprezinta

Litera

Ce reprezinta

l

Local

a

Tablou de valori (Array)

p

Privat

c

Caracter (Character)

g

Public (global)

y

Moneda (Currency)

t

Parametru

d

Data calendaristica (Date)


t

Data si timp (Datetime)

b

Double

f

Real (Float)

l

Logic (Logical)

n

Numeric (Numeric)

o

Obiect (Object)

u

Necunoscut (Unknown)

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.



Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright