Documente Academic
Documente Profesional
Documente Cultură
INFORMATICĂ MANAGERIALĂ
Anul I. STUDII DE LICENŢĂ
CURS 7 – 8
LIMBAJE DE PROGRAMARE
LIMBAJE PROCEDURALE
Generalităţi privind limbajele de programare (1)
18
Comentarii , separatori, împărţirea liniei
Exemplu:
Dim a as Integer : a=10
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:
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
.
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: