Sunteți pe pagina 1din 71

ALGORITMI ȘI STRUCTURI DE DATE

Conf univ dr Botezatu Cezar

INFORMATICĂ MANAGERIALĂ
Anul I. STUDII DE LICENŢĂ
CURS 7 – 8
LIMBAJE DE PROGRAMARE

LIMBAJE PROCEDURALE
Generalităţi privind limbajele de programare (1)

• Un limbaj de programare este un ansamblu de


simboluri, cuvinte, instrucţiuni şi semnificaţii
atribuite acestora, utilizat pentru descrierea
algoritmilor.
• Limbajul de bază al unui calculator este un limbaj
binar, adică orice instrucţiune a unui program se
reprezintă (se codifică) printr-o combinaţie de cifre
binare 0 şi 1.
• Acest lucru implică existenţa unor calităţi deosebite
la programatorul ales pentru scrierea unui program.
Generalităţi privind limbajele de programare(2)
Pentru a înlătura acest mare dezavantaj,
au apărut:
• limbajele simbolice şi apoi
• limbajele de programare evoluate,
care, prin intermediul asambloarelor şi
respectiv al compilatoarelor de care
dispun, permit traducerea automată a
instrucţiunilor scrise într-un limbaj
apropiat de limbajul curent în limbajul
binar.
Generalităţi privind limbajele de programare(3)

•un interes deosebit îl prezintă limbajele de


programare procedurale, destinate descrierii
algoritmilor prin proceduri (seturile de
instrucţiuni sunt grupate în module numite
proceduri).
•Aceste limbaje se mai numesc limbaje
universale, deoarece nu sunt limitate la o clasă
particulară de probleme.
•În anul 1954 a apărut primul limbaj de nivel
înalt - FORTRAN
Generalităţi privind limbajele de programare(4)

Dintre limbajele de programare evoluate


utilizate pe toată gama sistemelor de calcul,
menţionăm: Basic, Algol, Fortran, Cobol,
Pascal, C, PL/1, etc.
În ultimul timp s-au impus tot mai mult
limbajele de inteligenţă artificială şi sisteme
expert, cum sunt: C++, Lisp, Prolog, etc.
precum şi programarea pe obiecte ( Visual
Basic, Visual C, etc)
Generalităţi privind limbajele de programare(5)

Orice limbaj de programare presupune


definirea următoarelor elemente
componente:
• Alfabetul;
• Vocabularul;
• Gramatica;
• Punctuaţia;
• Semantica.
Generalităţi privind limbajele de programare(6)

• Alfabetul cuprinde mulţimea caracterelor alfabetice,


numerice şi speciale utilizate de limbajul de
programare.
• Vocabularul este dat de totalitatea cuvintelor folosite
de limbajul de programare. Acestea pot fi:
– cuvinte rezervate, care au o semnificaţie
prestabilită pentru un limbaj de programare. Ele
pot fi instrucţiuni, funcţii, proceduri, etc.
– cuvinte utilizator, care sunt practic identificatori
prin care se atribuie nume pentru constante,
variabile, fişiere, proceduri, etc.
Gramatica unui limbaj de programare
Gramatica cuprinde sintaxa şi morfologia.

• Sintaxa defineşte ansamblul regulilor de


formare a instrucţiunilor şi frazelor.
• Morfologia cuprinde ansamblul regulilor de
modificare a formei cuvintelor.
• Punctuaţia reprezintă un ansamblu de reguli
privind utilizarea semnelor convenţionale în
scopul folosirii elementelor de limbaj.
• Semantica defineşte sensul atribuit cuvintelor şi
instrucţiunilor.
PROGRAM SURSĂ
• Rezultatul activităţii de programare îl constituie
programul scris ca text într-un limbaj de programare. Un
astfel de program se numeşte program sursă. El este
scris prin intermediul unui editor de texte al limbajului
de programare sau acceptat de limbajul de programare
respectiv (ex Notepad). Fiind scris ca format text,
programul sursă nu este înţeles de către sistemul
electronic de calcul.
• Compilatorul este componenta software care
realizează traducerea programului sursă în cod intern,
rezultând aşa numitul program cod obiect.
Generalităţi privind limbajele de programare(7)

Din punct de vedere al modului cum se


realizează traducerea programului sursă în
cod intern al calculatorului deosebim:
•limbaje de programare interactive
(BASIC);
•limbaje de programare care cer
scrierea programului în totalitatea lui, fără
a anunţa pe parcurs eventualele erori
(PASCAL, COBOL, FORTRAN ).
LIMBAJE DE PROGRAMARE INTERACTIVE

Sunt caracterizate prin faptul că imediat după


tastarea unei comenzi calculatorul analizează
acea comandă şi anunţă dacă este greşită. Faptul
că se poate şti imediat dacă o comandă este
greşită înseamnă mult în activitatea de
programare, deoarece se economiseşte timp prin
corectarea pe loc a erorii respective.
În acest caz componenta software care
realizează traducerea programului sursă se
numeşte interpreter;
Setul de caractere
• Pentru a scrie instrucţiunile pe care calculatorul să le
interpreteze şi să le execute în cadrul programului folosim
cuvintele. Acestea sunt entităţi formate din caractere.

În cazul limbajului Visual Basic se pot folosi caracterele:


– Literele mari şi mici ale alfabetului limbii române:
A-Z, a-z;
– Cifrele sistemului de numerotaţie zecimal:0-9;
– Caractere speciale: + - / ^ () [] {}. , ; :_ ! # % & $ etc.;
– Caracterele speciale perechi, care definesc
operatori de comparare: <=, >=, = ,<>;
– Separatorii: spaţiu, tab şi caracterul Enter.
13
Identificatori
• Un identificator este numele dat de
programator unui element dintr-un program,
care poate fi o variabilă, o constantă, un tip
definit de utilizator, o enumerare, o procedură,
o funcţie, un obiect, o metodă, o proprietate, un
control, o formă, un modul sau chiar proiectul
însuşi. Un proiect Visual Basic poate să conţină
maxim 32000 identificatori.
Observaţie:
• Visual Basic nu face diferenţa între literele mari
şi mici folosite în cuvintele cheie sau în
formarea identificatorilor.
14
Reguli pentru identificatori
• să înceapă cu o literă;
• să nu conţină anumite caractere cum ar fi: . %!
$&#@;
• numele variabilelor nu pot fi mai lungi de 255
caractere, iar cele ale controalelor, modulelor,
formelor şi claselor nu pot fi mai lungi de 40
caractere;
• nu trebuie să existe mai mulţi identificatori
identici;
15
Reguli pentru identificatori
• nu pot fi identificatori cuvintele cheie
(rezervate) ale limbajului. Cuvintele cheie sunt
identificatori cu semnificaţie fixată, care nu pot
fi folosiţi în alt context decât cel precizat de
semantica limbajului. Exemple: Dim, Private,
Public, Array , For , Next, If, Then, Else, End etc.
• există o serie de identificatori standard, definiţi
de Visual Basic. O redeclarare a lor de către
programator va duce la nerecunoaşterea
sensurilor iniţiale.
16
Comentarii , separatori, împărţirea liniei

    Comentariile sunt şiruri de caractere care au în


faţă caracterul apostrof (`) şi servesc pentru a
face textul programului mai lizibil, pentru a
documenta programul.
Exemple:
´ Aici începe programul
• Dim iVirsta as Integer ´ Vârsta sportivilor
• Dim iGreutatea as Interger ´Greutatea sportivilor
în kilograme
17
Comentarii , separatori, împărţirea liniei

• Comentariile mai pot fi utilizate pentru a determina


compilatorul să nu mai execute anumite instrucţiuni,
mai ales în faza de testare a programului.
• În general în Visual Basic se poate scrie o singură
instrucţiune pe o linie. Totuşi, dacă se doreşte, se
pot scrie mai multe instrucţiuni pe o singură linie
despărţindu-le cu ajutorul separatorului de
instrucţiuni şi declaraţii care este caracterul : (două
puncte).

18
Comentarii , separatori, împărţirea liniei

Exemplu:
Dim a as Integer : a=10

• Pe de altă parte, pentru a spori lizibilitatea


programelor, dacă o declaraţie sau o
instrucţiune este prea mare, atunci ea se poate
scrie pe mai multe linii. Aceasta se realizează
folosind caracterul continuator de linie ( _)( un
spaţiu urmat de o linie jos).
19
Convenţii privind formatul comenzilor
(instrucţiunilor) Visual Basic
• Cuvintele scrise îngroşat (Bold) sunt cuvinte cheie,
care trebuie folosite ca atare, iar cele scrise cu
caractere normale reprezintă cerinţe. Ele se vor
înlocui cu ceea ce se cere efectiv .
• Cuvintele scrise între paranteze drepte [] semnifică
ceva opţional, care poate fi scris sau poate lipsi.
• Caracterul / între două cuvinte semnifică faptul că
se poate folosi oricare dintre acele cuvinte în sintaxa
comenzii.

20
TIPURI DE DATE
• Tipul unei date defineşte mulţimea de valori
pe care le poate lua o variabilă şi mulţimea de
operaţii care pot fi efectuate cu elementele
mulţimii respective. În funcţie de tipul de dată
declarat pentru o anumită variabilă
compilatorul alocă o zonă mai mare sau mai
mică de memorie pentru reprezentarea ei.

21
Operaţii pentru un tip de dată
- Pentru valorile unui tip întreg se pot face
următoarele operaţii: adunarea(+); scăderea
(-); înmulţirea(*); împărţirea întreagă (\);
împărţirea reală(/); restul împărţirii întregi
(mod); ridicarea la putere (^).
Sunt permise de asemenea operaţiile relaţionale:
mai mic sau egal (<=); mai mic (<); egal (=); mai
mare(>); mai mare sau egal (>=);
Rezultatul unor astfel de operaţii este de tip
boolean, având valorile logice True sau False.
22
Operaţii pentru un tip de dată
• Pentru valorile unui tip real se pot face următoarele
operaţii: adunarea (+); scăderea(-); înmulţirea(*);
împărţirea(/); ridicarea la putere (^). Sunt permise
şi operaţiile relaţionale prezentate la tipurile
întregi.
• Pentru şirurile de caractere sunt permise operaţia
de concatenarea (& sau +) şi operaţiile de
comparaţie (<,<=,=,>=,>). Prin concatenare două
sau mai multe şiruri de caractere pot fi alipite
formând un singur şir de caractere. Cu ajutorul
operaţiilor de comparaţie se stabileşte poziţia
alfabetică a şirurilor de caractere;
23
Operaţii pentru un tip de dată
• Pentru valorile de tip logic, boolean (True şi
False) sunt permise următoarele operaţii
logice: negarea logică (Not); şi logic (And); sau
logic (Or); sau exclusiv logic (Xor); echivalenţa
logică (Eqv); implicaţia logică (Imp);
• Pentru tipul de dată de tip obiect este permisă
o singură operaţie – cea de comparaţie (Is).

24
Constante
• O constantă reprezintă o valoare fixă care nu se
schimbă în timpul execuţiei programului sau de la o
execuţie la alta, identificată printr-un nume
(identificator). O constantă poate conţine numere,
şiruri de caractere, date calendaristice, etc. Ea
poate avea deci un anumit tip.
În Visual Basic există două tipuri de constante:
• Intrinseci sau definite de sistem; Visual Basic
pune la dispoziţie o serie întreagă de constante
pentru culori, taste, figuri etc.
• Simbolice sau definite de utilizator (se declară
prin instrucţiunea Const).
25
Definirea unei constante
Formatul general al declaraţiei de constante este:
[Public|Private] Const NumeConstanta[As type] = expresie
unde:
•cuvintele Public sau Private definesc tipul constantei: Public,
dacă poate fi referită în toate procedurile şi respectiv Private
dacă este definită doar pentru procedura curentă.
•Const : cuvânt cheie
•NumeConstantă – numele atribuit ca identificator constantei
respective
•As type – defineşte tipul constantei
•Expresie – defineşte valoarea sau expresia din evaluarea
căreia rezultă valoarea constantei

26
Observaţie:
• Dacă se specifică direct valoarea constantei, atunci trebuie
să reţinem următoarele:
• o constantă de tip numeric sau logic se precizează prin
valoarea ei scrisă ca atare;
• o constantă de tip şir de caractere trebuie scrisă între
delimitatorii “ “ (ghilimele);
• o constantă de tip dată calendaristică se precizează între
delimitatorii # #.
Exemple:
Const PI = 3.14159265358979
Const Nr_zile_lucratoare = 22
Const Zi_de_nastere = #02.04.1981#
Const Nume_aplicatie = ˝Salarii˝

27
Variabile Visual Basic
• O variabilă reprezintă o locaţie de memorie
internă care serveşte pentru stocarea temporară a
datelor şi care se identifică printr-un nume. O
variabilă poate conţine orice tip de dată care poate fi
modificat în timpul execuţiei programului.
• Tipul variabilelor din Visual Basic sunt: Variant,
Byte, Boolean, String, Integer, Long, Single, Double,
Currency, Date şi Object.
• Tipul implicit pentru orice variabilă este tipul
Variant (nedefinit).
28
Variabile Visual Basic
O variabilă se caracterizează prin cele două
elemente:
• numele variabilei, care este un identificator
cu ajutorul căruia putem să referim variabila pe
parcursul programului;
• tipul variabilei, care precizează tipul de date
care pot fi stocate de variabila respectivă. În
funcţie de tipul variabilei compilatorul alocă o
zonă de memorie mai mică sau mai mare pentru
aceasta.
29
Declararea variabilelor
Declararea variabilelor se poate face în Visual Basic în două
moduri :
•implicit
•explicit.
În modul implicit o variabilă este considerată declarată la
prima ei folosire. Nu este necesară o declarare prealabilă cu
ajutorul cuvintelor cheie Dim, Private, Public. În mod implicit
Visual Basic declară toate variabilele de tip Variant.
•Declararea explicită a variabilelor presupune ca înainte să
fie folosită, o variabilă să fie declarată cu ajutorul uneia dintre
comenzile Dim, Private, Public.

30
Observaţie:
•Se poate scrie la începutul modulului
opţiunea Option Explicit sau
•Se poate cere mediului de programare să
facă acest lucru automat selectând din meniul
Tools –Options - Editor opţiunea Require
Variable Declaration. În acest caz Visual Basic ne
va atenţiona dacă folosim o variabilă pe care nu
am declarat-o anterior. Este o opţiune deosebit
de utilă şi se recomandă pentru a evita greşeli.
31
Variabile Visual Basic
• Definirea unei variabile Visual Basic se poate face în două
moduri:
• Utilizând operatorul de atribuire:
NumeVariabilă=Variabilă;
• Declarând variabilele cu comanda Dim, Private sau Public.
Public, Private, Dim sunt cuvinte rezervate limbajului Visual
Basic prin care se precizează dacă variabilă respectivă este de
tip public adică accesibilă în toate procedurile sau privat|
Dim, accesibilă doar în procedura curentă (locală);

32
Declararea unei variabile

Se face astfel:

Public|Private|Dim] NumeVariabilă As TipVariabilă

- NumeVariabilă este identificatorul variabilei;


- As este un cuvânt cheie care precizează faptul că
dorim să declarăm tipul variabilei.
- TipVariabilă este numele unui tip de date dintre
cele pe care le acceptă Visual Basic.
33
Declararea unei variabile Exemple:
• Dim i as Integer ´ defineşte variabila locală i de
tip Integer
• Dim ZiSalar as Date ´ defineşte variabila locală
ZiSalar de tip Date
• Private Nume as String ´ defineşte variabila
locală Nume de tip String
• Public ListaPreturi as ListBox ´ defineşte variabila
ListaPreturi ce va conţine o ´referinţă către un
obiect de tip ListBox.
34
Variabile caracteristici
Variabilele au două caracteristici deosebit de importante şi
anume:
•domeniul de valabilitate
•durata de existenţă.
Astfel variabilele utilizate în cadrul unei proceduri se numesc
variabile locale. Acestea se declară în interiorul procedurii cu
ajutorul comenzii Dim. Variabilele locale există atâta timp cât se
execută procedura în care au fost declarate şi pot fi utilizate
numai în cadrul acelei proceduri, neavând nici o semnificaţie în
altă parte a programului. Aceste variabile au deci un domeniu de
valabilitate restrâns doar la nivelul procedurii şi au o durată de
viaţă temporară.

35
Variabile caracteristici
• Un alt tip de variabile îl reprezintă cele cu
domeniu de vizibilitate la nivelul unui modul.
Aceste variabile pot fi folosite oriunde în
interiorul modulului în care au fost declarate.
Ele există atâta timp cât este folosit modulul
respectiv.
• Se recomandă ca declararea lor să se facă cu
ajutorul comenzii Private în loc de Dim.

36
Variabile caracteristici
• Un alt tip de variabile îl reprezintă variabilele publice sau
globale, vizibile la nivelul întregului program. Acestea pot fi
folosite oriunde în program, au un domeniu de valabilitate
global şi există atâta timp cât se execută programul.
Variabilele globale se declară utilizând comanda Public în
zona General Declaration.
• Pe lângă acestea, un alt tip de variabile sunt cele statice.
Acestea pot avea un domeniu de valabilitate locală sau la
nivelul unei proceduri, dar o durată de existenţă
permanentă. Declararea lor se face cu ajutorul comenzii
Static.

37
Variabile caracteristici
• De exemplu se poate defini o variabilă statică la nivelul unei
proceduri. Ea va fi vizibilă doar la nivelul acelei proceduri, dar
îşi va păstra valoarea şi după ce procedura îşi va termina
execuţia. Dacă procedura va fi din nou apelată, variabila
statică nu va fi iniţializată automat de Visual Basic, aşa cum se
întâmplă cu variabilele care nu sunt statice, ci va avea
valoarea pe care a avut-o la ultima ei folosire.
• Diferenţa dintre variabilele declarate cu Dim şi cele declarate
cu STATIC constă deci în durata de viaţă a variabilelor. Astfel,
cele declarate cu static nu se modifică şi nu îşi pierd valoarea
stabilită pe parcursul execuţiei programului la o nouă reluare
a acestuia.

38
Variabile Visual Basic - Tipul Variant
Tipul Variant este un tip special de date care
poate conţine date numerice, şiruri de
caractere şi date calendaristice, precum şi
valorile speciale Null şi Empty.
• Emty indică faptul că o variabilă nu a fost
inţializată şi este egală cu 0 când se referă la
valori numerice sau are lungime nulă când se
referă la şiruri de caractere.
• Null indică faptul că o variabilă nu conţine nici o
dată validă în mod deliberat.
39
FUNCŢII ÎNCORPORATE ÎN VISUAL BASIC
• Funcțiile sunt relații ce asociază unei valori o altă valoare (în
condiții specifice definiției funcției).
• Funcțiile pot fi folosite în expresii cu operatori de același tip
cu valoarea rezultată din funcție
• O funcție poate constitui singură o expresie.
• Expresiile definesc relații prin care se asociază unei valori o
altă valoare
• În expresii avem operatori și operanzi sau valori (care trebuie
să fie de același tip). Exemple:
– Cu operatorii +,-,*,^ … se pot contrui expresii între valori numerice
(inclusiv funcții cu valori numerice). Valoarea rezultată va fi numerică.
– Cu operatorii + și – se pot construi expresii ce au ca valori șiruri de
caractere. În acest caz + înseamnă operația de concatenare. Valoarea
rezultată va fi un șir de caractere.
• Nerespectarea regulilor de construire a expresiilor poate
induce erori grave și greu de găsit pentru corectare.
FUNCŢII ÎNCORPORATE ÎN VISUAL BASIC

Visual Basic oferă o gamă extinsă de funcții,


dintre care:
• Funcţii matematice şi statistice
• Funcţii pentru şiruri de caractere
• Funcţii financiare
• Funcţii pentru conversie între tipuri de date
• Funcţii de verificare a tipului de data
• Funcţii pentru lucrul cu date calendaristice
• Funcţii pentru lucrul cu fişiere
Funcţii matematice şi statistice
• ABS( ) – determină o valoare absolută a expresiei numerice
• EXP( ) – determină valoarea lui e, baza logaritmului natural
• INT( ) – determină partea întreagă a numărului dat sau
rezultat din evaluarea expresiei
• LOG( ) – Determină logaritmul natural din valoarea
argumentului.
• RND( ) - rotunjeşte rezultatul la un număr real, cu un număr
de zecimale dat
• SQR( ) – determină rădăcina pătrată a numărului dat sau
rezultat.
• ATN( ) – determină valoarea în radiani a arctg (N )
• SIN( ) – Determină valoarea lui sin (N)
• COS( ) şi TAN( ) – determină după caz valoarea cosinusului şi a
tangentei.
Funcţii pentru şiruri de caractere
• LCASE(şir) – transformă literele dintr-un şir în litere mici .
• UCASE(şir) – realizează inversul instrucţiunii de mai sus.
• LTRIM(şir) - elimină spaţiile de la începutul şirului.
• RTRIM(şir) - elimină spaţiile de la sfârşitul şirului.
• TRIM(şir) – elimină spaţiile de la începutul şi de la sfârşitul
şirului.
• CHR(val) – returnează caracterul corespunzător codului din
paranteză.
• ASC(şir) – returnează codul caracterului prezent în paranteză.
• LEN(şir) – returnează numărul de caractere al şirului specificat
(lungimea şirului).
• VAL(şir) – returnează valoarea numerică a şirului de caractere
precizat sau rezultat din evaluarea expresiei date.
Funcţii pentru şiruri de caractere
• StrREVERSE(şir) inversează ordinea caracterelor într-un şir;
• LEFT(şir,Nrc) extrage din şirul de caractere specificat primele
Nrc caractere din partea stângă a şirului;
• RIGHT(şir,Nrc) extrage din şirul de caractere specificat primele
Nrc caractere din partea dreaptă a şirului;
• MID(şir,Start [,Nrc]) extrage din şirul de caractere specificat
primele Nrc caractere din partea stângă a şirului începând cu
poziţia precizată prin Start;
• INSTR ([intStart, ] Şir, strCaută[, intCompară]) verifică dacă un
caracter sau un şir (strCaută) se găseşte în interiorul altui şir
(Şir). În caz afirmativ funcţia returnează poziţia primului
caracter căutat în şirul Şir. Funcţia este deci un instrument de
căutare a unui subşir şi întoarce prima poziţie din şir
corespunzătoare primului caracter din şirul dorit
Funcţii financiare
• DDB calculează şi returnează amortismentul unui bun pe parcursul unei perioade
specificate, urmând metoda amortismentului degresiv cu rată dublă sau după un
coeficient care trebuie specificat;
• FV calculează şi returnează valoarea viitoare a unei investiţii;
• IPMT calculează şi returnează suma dobânzilor unei investiţii pentru o perioadă
dată;
• IRR calculează şi returnează rata de rentabilitate internă pentru fluxurile
financiare pozitive şi negative finanţate la rate diferite;
• MIRR calculează şi returnează rata de rentabilitate internă a unei investiţii fără a
ţine seama de costurile de finanţare şi de plusvalorile de reinvestire;
• NPER calculează şi returnează numărul de plăţi pentru o investiţie dată;
• NPV calculează şi returnează valoarea actuală netă a unei investiţii pe baza
fluxurilor financiare variabile;
• PMT calculează suma totală a fiecărei rambursări periodice a unei investiţii şi
ratele dobânzii constante;
• PPMT calculează partea vărsământului principal al unui împrumut pentru o
perioadă dată;
• PV calculează valoarea actuală a unei investiţii;
• RATE calculează rata dobânzii pe perioada unei investiţii date;
• SLN calculează amortismentul unui bun pentru o perioadă dată pe baza metodei
americane SUM-of-Years Digits.
Funcţii pentru conversie
Funcţii pentru conversia întregilor
• Int() - Parte întreagă din argument
• CInt() - Rotunjeşte valori fracţionare de .5 sau mai mult către următorul
întreg.

Funcţii pentru conversia tipului de dată


• CDbl(arg) - Converteşte argumentul la un echivalent în dublă precizie
• CLng(arg) - Converteşte argumentul la un echivalent de tip Long Integer
• CSng(arg) - Converteşte argumentul la un echivalent numeric în simplă
precizie
• CStr(arg) - Converteşte argumentul la un echivalent de tip String
• CVar(arg) - Converteşte argumentul la un echivalent de tip Variant
• CCur(arg ) - Converteşte argumentul la un echivalent de tip Currency
Funcţii de verificare a tipului de dată
• IsNumeric() - Determină dacă argumentul are o
valoare care poate fi convertită într-un număr valid.
• IsDate() - Determină dacă argumentul poate fi
convertit într-o dată validă.
• IsEmpty() - Determină dacă argumentul a fost
iniţializat cu orice valoare de la definirea sa originală.
• IsNull() - Determină dacă argumentul are o valoare
Nulă. (cum ar fi o linie goală)
• VarType() – Determină tipul argumentului. În tabelul
următor se prezintă valorile returnate de funcţia
VarType
Valorile returnate de funcţia VarType()

.
Funcţii pentru lucrul cu date calendaristice
• IsDate (expresie) - verifică dacă o expresie şir de
caractere sau de tip dată reprezintă o dată calendaristică
validă.
• Time() – serveşte pentru a obţine ora din sistem,
• Date – serveşte pentru a obţine data sistemului
• Now – serveşte pentru a le obţine pe amândouă (data şi
ora).
• CStr (Time) – transformă ora în şir de caractere;
• CStr (Date) – transformă data calendaristică în şir de
caractere;
• CStr (Now) – transformă data şi ora în şir de caractere:
Funcţii pentru lucrul cu fişiere
• Seek(NumărFişier) returnează ca valoare
poziţia curentă de citire/scriere în cadrul unui
fişier deschis cu instrucţiunea Open.
• LOF(NumărFişier) returnează mărimea
fişierului exprimată în octeţi.
• EOF(NumărFişier) returneză valoarea logică
True dacă s-a ajuns la sfârşitul unui fişier
deschis în mod aleatoriu sau secvenţial şi False
în caz contrar.
COMENZI VISUAL BASIC
COMENZI PENTRU STRUCTURILE DE CONTROL ALE
PROGRAMELOR
Exista cele trei tipuri de structuri fundamentale:
• structura secvenţială sau liniară;
• structura alternativă sau de decizie;
• structura repetitivă.
Limbajul de programare Visual Basic implementează
ultimele două structuri de control ale programului,
prin comenzi corespunzătoare deci :
• Comenzi pentru structuri alternative (de decizie);
• Comenzi pentru structuri repetitive (tip buclă).
Structura secvenţială sau liniară
Acestea se concretizează practic prin două tipuri
de comenzi:
a). instrucţiunea de atribuire
variabilă = expresie sau
Set variabilă = obiect sau
Nume_de_funcţie = expresie
b). instrucţiunea de apel procedură
Call nume_de_procedură(listă_parametri_actuali)
Structuri alternative
Structura alternativă poate fi întâlnită sub diverse forme:
• structură alternativă cu două ramuri (simplă);
• structură alternativă cu ramură vidă (pseudoalternativă);
• structură alternativă cu mai multe ramuri
(compusă/imbricată);
• structură alternativă generalizată.
În Visual Basic structurile alternative sau de decizie sunt
implementate prin comenzi asemănătoare altor limbaje
de programare de nivel înalt, cum sunt: Pascal, C, Cobol, şi
anume:
• If ....Then
• If ....Then ....Else
• Select Case
If ....Then ....Else
• Sintaxa generală a comenzii este:
If condiţie1 Then
instrucţiuni1
Else
instrucţiuni2
.......................
EndIf
Exemplu: If a>0 Then
B=a+6
Else: B=a-6
C=a+1
End If
Structuri repetitive
Visual Basic suportă astfel două tipuri de structuri
repetitive:
• structuri repetitive cu contor descrise de
instrucţiunile For …Next şi For…Each…Next care
execută acelaşi lucru de un număr stabilit de ori ;
• structuri repetitive cu condiţie descrise de diferitele
variante ale instrucţiunii Do…Loop ce îndeplinesc
aceeaşi sarcină atâta timp cât o condiţie există sau
până când nu mai există o condiţie. În cazul unui
număr nedefinit de repetiţii, condiţia de oprire poate
fi testată la începutul sau la sfârşitul ciclului, prin
alegerea structurii adecvate.
Comenzile repetitive sau de tip buclă
Permit executarea în mod repetat a unei
instrucţiuni sau a unei secvenţe de instrucţiuni
atâta timp cât o condiţie este adevărată sau
până când o condiţie este adevărată. Acestea
sunt:
While.....Wend;
Do .....Loop;
For.....Next;
For Each....Next.
While...Wend
Comanda While...Wend are sintaxa:
While condiţie
Instrucţiuni
Wend
Această comandă execută repetat una sau
mai multe instrucţiuni atâta timp cât o
condiţia specificată este adevărată.
Do...Loop
• Comanda execută o secvenţă de instrucţiuni de un număr
necunoscut de ori, atâta timp cât condiţia este adevărată.
• Sintaxa comenzii este:
Do While condiţie
instrucţiuni
Loop
• Do...Loop testează întâi condiţia: dacă aceasta are valoarea
true (este adevărată) se execută secvenţa de instrucţiuni
specificată până la Loop, altfel nu se execută nimic şi se trece
la prima instrucţiune de după Loop.
• Avem de a face deci cu o structură repetitivă condiţionată
anterior.
Do...Loop
Comanda Do...Loop mai are şi o altă variantă, care execută
secvenţa de instrucţiuni cât timp condiţia este falsă (până
când aceasta devine adevărată):
Do Until condiţie
instrucţiuni
Loop
• O altă variantă a acestei comenzi este cea în care mai întâi se
execută secvenţa de instrucţiuni şi apoi testează condiţia, deci
este o structură repetitivă condiţionată posterior.
• Sintaxa instrucţiunii în acest caz va fi:
Do
instrucţiuni
Loop While condiţie
• Instrucţiunile se repetă atâta timp cât condiţia este adevărată.
For...Next
Este o structura repetitiva cu numărător.
Sintaxa generală a acestei comenzi este:
For contor=început To sfârşit [Step pas]
instrucţiuni
Next [contor]
unde:
• contor - este variabila contor (care numără repetările), de
tip numeric.Nu poate fi de tip Boolean sau element de
tablou.
• început - este valoarea iniţială a contorului.
• sfârşit - este valoarea finală a contorului.
• pas - este cantitatea care se adună la contor la fiecare
reluare. În cazul în care nu se specifica este implicit 1.
• instrucţiuni - sunt instrucţiunile care se repetă.
COMENZI PENTRU LUCRUL CU FIŞIERE
• Fişierele conţin colecţii de date omogene ca natură şi criterii
de prelucrare, memorate pe discul magnetic. Fişierele
stochează pentru folosire ulterioară date numerice, texte,
imagini, etc. Fişierele reprezintă principala formă de
organizare a datelor pe disc.
Accesul la datele unui fişier poate fi:
• Binary - caz în care programatorul trebuie să localizeze în
fişier numărul de caractere ce urmează a fi citite sau scrise –
un mod de acces mai puţin utilizat.
• Secvenţial - situaţie în care pentru a ajunge la o anumită
înregistrare din fişier, trebuie parcurse una după alta toate
înregistrările fişierului (până când se ajunge la cea dorită);
• Aleator – când e permis un acces direct la înregistrarea
căutată, fără a fi necesară citirea înregistrărilor precedente
Deschiderea fişierului
Este o operaţie care trebuie executată înainte de orice prelucrare
a acestuia.
OPEN ( nume fişier ) FOR ( mod de deschidere ) [Access acces]
[blocare] AS # numărFişier [Len=LungÎnreg]
unde:
• nume fişier – este o expresie de tip şir de caractere (String)
care specifică numele fişierului. Acesta poate include întreaga
cale: unitate de disc, director etc;
• mod de deschidere – specifică modul de deschidere a
fişierului prin unul din următoarele cuvinte cheie: Append
(adăugare), Binary (binar), Input (citire), Output (scriere) sau
Random (aleator); Dacă lipseşte, instrucţiunea Open deschide
fişierul în modul de acces Random.
• acces – specifică operaţiile permise asupra fişierului prin unul
dintre următoarele cuvinte cheie: Read (citire), Write (scriere)
sau Read-Write (citire-scriere);
OPEN
• blocare – specifică operaţiile permise la deschiderea
fişierului de către un alt proces prin unul dintre
următoarele cuvinte cheie: Shared (partajat), Lock-
Read (citire interzisă), Lock-Write (scriere interzisă),
lock-Read-Write.
• numărFişier – un număr valid de fişier, cuprins între
1şi 511 inclusiv. Utilizând funcţia FreeFile se poate
obţine următorul număr disponibil.
• LungÎnreg- un număr mai mic sau egal cu 32767
(octeţi). Pentru fişierele deschise în acces aleator
această valoare este mărimea înregistrării. Pentru
fişierele text reprezintă numărul de caractere
transferate în buffer.
Moduri de deschidere
• Append – permite adăugarea de noi înregistrări în fişierul cu numele
specificat sau crearea acestuia, dacă el nu există. Practic cursorul se
plasează după ultimul caracter dacă este un fişier cu acces secvenţial
sau după ultima înregistrare dacă e vorba de un fişier proiectat pentru
acces aleator.
• Binary – permite scrierea sau citirea în valori numerice. De exemplu,
dacă se deschide în modul de acces Binary un fişier .bmp (imagine
grafică), atunci ca efect se generează o reprezentare numerică a
imaginii din fişierul respectiv.
• Input – permite doar citirea fişierului, care se va face secvenţial, de la
început spre sfârşit, câte un caracter sau câte o înregistrare.
• Output – permite practic crearea fişierului, prin scrierea secvenţială în
cadrul acestuia, pe rând, a câte unui caracter sau câte o înregistrare.
Dacă fişierul exista şi a fost deschis Output, el va fi practic recreat,
adică noul fişier se va suprascrie peste cel vechi. De aceea se
recomandă multă atenţie la utilizarea acestui mod de deschidere.
Pentru a scrie noi înregistrări într-un fişier existent vom deschide
fişierul în modul Append.
• Random – permite fie crearea, fie citirea unui fişier în acces aleator.
Observatie
Pentru accesul secvenţial se poate specifica:
• APPEND – pentru a adăuga înregistrări noi la sfârşit;
• INPUT – pentru a citi înregistrările din fişier;
• OUTPUT – pentru crearea unui nou fişier.
Pentru accesul binary se specifică accesul BINARY.
Pentru accesul random se specifică RANDOM.
Dacă fişierul este deja deschis şi existent, la închidere şi salvare
prin OUTPUT, acesta rescrie fişierele existente.
• Pentru a lucra cu mai multe fişiere simultan, se va utilize
funcţia FREE FILe, care returnează următorul număr de fişiere,
care poate fi utilizat în instrucţiunea OPEN.
Scrierea unei înregistrări
• Scrierea unei înregistrări într-un fişier aleator se face cu
instrucţiunea PUT care are următoarea sintaxă:
PUT #NumeFişier, [NumărÎnreg], NumeVariabilă
unde:
NumărÎnreg este numărul înregistrării pe care dorim să o
scriem.
NumeVariabilă este numele variabilei ce defineşte
înregistrarea (declarată de tipul utilizator).
• Scrierea datelor în fişierele binare se aseamănă cu cea în
fişierele aleatoare, folosind instrucţiunea Put.
Poziţionarea pentru citire
Poziţionarea pentru citire pe o înregistrare dintr-un
fişier aleator se face cu instrucţiunea GET, care are
următoarea sintaxă:
GET [#]numărfişier [, număr]
unde numărfişier este numărul de identificare al
fişierului dat în instrucţiunea OPEN, iar număr este
numărul de înregistrare ce se doreşte accesată.
Observaţie:
La fişierele aleatoare accesul la înregistrări se poate
face doar prin intermediul numărului de înregistrare
Închiderea fişierelor
Închiderea fişierelor se realizează cu comanda CLOSE,
a cărei sintaxă este:
CLOSE [listă fişiere] sau altfel spus
CLOSE [ # numărFişier1] [, # numărFişier2] [, #
numărFişier3…]
• Dacă lista fişierelor ce trebuie închise lipseşte,
atunci toate fişierele deschise cu Open care sunt
active în mod curent vor fi închise.
• Prin închiderea unui fişier cu Close asocierea dintre
fişier şi numărul său dispare.
Scrierea datelor într-un fişier secvenţial
Print #NumărFişier, listă_expresii
sau
Write #NumărFişier, listă_expresii
unde:
listă_expresii este o listă de variabile a căror valoare
urmează să fie trecută în fişier.
OBS: Instrucţiunea WRITE # este similară cu
instrucţiunea PRINT #, singura diferenţă între cele
două instrucţiuni fiind că WRITE # inserează virgule
între termeni, şirurile de caractere sunt delimitate de
ghilimele, iar numerele pozitive nu sunt precedate de
spaţii.
Citirea datelor din fişiere cu acces secvenţial
Citirea informaţiilor din fişierele secvenţiale se face cu ajutorul
instrucţiunilor:

Input #NumărFişier, listă_expresii

Line Input# NmărFişier, ŞirCaractere

Input$ (NumărOcteţi, [#] NumărFişier)


unde:
ŞirCaractere este o variabilă de tip String în care este preluată
înregistrarea, ca şir de caractere;
NumărOcteţi reprezintă numărul de octeţi ce va fi citit din
fişier.
END

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