Sunteți pe pagina 1din 82

Capitolul 1

Noţiuni de bază
privind
instrumentele software
Agenda

• Istoricul limbajelor de programare


• Etapele elaborării programelor de aplicaţii şi
rolul economiştilor
• Instrumente pentru dezvoltarea aplicaţiilor
• Instrumente software pentru economişti
• Tendinţe în instrumente software
1.1 Istoricul limbajelor de programare

• Orice activitate dintr-o organizaţie se desfăşoară cu ajutorul calculatorului.


• Programele de aplicaţii s-au diversificat în permanenţă şi, odată cu acestea,
instrumentele software.
• Instrumentul software este un program folosit de informaticieni sau utilizatori
pentru dezvoltarea programelor de aplicaţii.
1.1 Istoricul limbajelor de programare

• Istoria instrumentelor software a început odată cu primele


calculatoare (anii’50 sec. XX).
• În afara limbajelor de programare avem la dispoziţie o multitudine
de alte instrumente software:
• SGBDurile,
• programe de calcul tabelar,
• produsele CASE,
• programele pentru gestiunea informaţiilor personale etc.
Evolutia limbajelor de programare
Evoluţia limbajele de programare care a fost determinată de:
• performanţele calculatoarelor electronice,
• progresele din teoria şi practica programării.
Limbajele de programare sunt grupate în cinci categorii:
• limbaje maşină,
• limbaje de asamblare,
• limbaje de nivel înalt,
• limbaje din generaţia a patra (limbaje de nivel foarte înalt),
• limbaje naturale.
Limbaje maşină

• În primii ani ai dezvoltării programelor, fiecare procesor avea


propriul set de instrucţiuni, care forma aşa numitul limbaj maşină.
• Toate instrucţiunile de programare erau redactate în cod binar,
formând secvenţe de cifre binare pentru adrese, date şi operaţii.
• Ex. 0110 1010 0110 1011 poate semnifica operaţiunea de adunare.
Dezavantaje:
• dificultatea scrierii şi, mai ales, a înţelegerii programelor;
• lipsa portabilităţii programelor (imposibilitatea executării lor pe
alte tipuri de calculatoare decât cel pentru care au fost elaborate.
Limbajele de asamblare

• Limbajele de asamblare au permis reducerea dificultăţilor


specifice programării în limbaj maşină, prin folosirea unor abrevieri
alfabetice (mnemonice) în locul şirurilor de 0 şi 1.
• De exemplu, instrucţiunea „ADD R1, R2, R4” semnifică adunarea
valorilor conţinute în registrele de memorie R1 şi R2, iar rezultatul
este scris în registrul R4.
• Codurile de operaţii şi poziţiile din memorie sunt reprezentate prin
simboluri → aceste limbaje se mai numesc şi simbolice.
• Ele simplifică programarea, oferind mai multă comoditate în
scrierea sau citirea şi înţelegerea programelor.
Limbajele de asamblare (continuare)
• Programele scrise în limbajele de ansamblare trebuie traduse în
limbajul maşină, pentru a putea fi executate pe calculator.
• Această operaţiune este realizată prin intermediul unor programe
speciale, numite ansambloare, care preiau programele sursă şi le
convertesc în programe obiect executabile.
• Principalele limbaje din această categorie sunt: ASSIRIS,
ASSEMBLER, MAGIRIS.
• Limbajele de asamblare permit utilizarea mai eficientă a resurselor
calculatorului şi sunt mai rapide la execuţie, motiv pentru care ele
sunt utilizate pentru dezvoltarea software-ului de sistem.
Limbajele de nivel inalt

• Limbajele maşină şi cele de asamblare sunt considerate de


nivel redus.

• O dată cu lansarea limbajului FORTRAN (1954) s-a trecut la


generaţia limbajelor de nivel înalt (evoluate).

• Din această categorie fac parte: COBOL, BASIC, C şi C++, ADA,


PROLOG etc.
Limbajele de nivel inalt (continuare)

• Pentru a fi executat, programul sursă, scris într-un limbaj de nivel înalt,


trebuie convertit în program obiect.

• Această operaţiune e realizată prin intermediul unor programe speciale,


numite interpretoare sau compilatoare.

• După compilare/interpretare urmează editarea de legături, în care


programul obiect este completat cu module preluate din bibliotecile
sistemului de operare.
Limbajele de nivel inalt (continuare)

Avantaje
• creşterea productivităţii muncii de programare;
• programele sunt portabile;
• posibilitatea scrierii de programe de către persoane mai puţin
calificate decât în cazul limbajelor de ansamblare.
Dezavantaje
• sunt mai puţin eficiente decât limbajele de asamblare, din punctul de
vedere al utilizării resurselor calculatorului;
• necesită mai mult timp de execuţie.
Limbajele 4GL

Caracteristici comune

• sunt centrate în jurul bazelor de date, în mod deosebit a celor


relaţionale, oferind facilităţi pentru stocarea şi interogarea
datelor din bază;
• sunt limbaje declarative /neprocedurale: accentul este pus pe
ceea ce trebuie să facă aplicaţia şi nu cum trebuie să facă  au
simplificat mult procesul de programare;
• pun la dispoziţie o interfaţă grafică prietenoasă, GUI (Graphical
User Interface – Interfaţă grafică utilizator).
Limbajele 4GL (continuare)

Avantaje
• posibilitatea dezvoltării de noi aplicaţii mai ieftine şi mai rapid;
• uşurinţa întreţinerii aplicaţiilor;
• posibilitatea ca utilizatorii să-şi dezvolte propriile aplicaţii.
Apariţia acestor limbaje → un nou concept – utilizatorul final
informatizat (end user computing).
Limbajele naturale
• Ultimul pas în evoluţia limbajelor de programare îl reprezintă
limbajele naturale (limbaje de programare de generaţia a cincea).
• Ele îşi propun utilizarea limbajului uman în programarea
calculatoarelor.
• Cele mai cunoscute: limbajele INTELLECT şi ELF.
• Aceste limbaje sunt adesea folosite ca interfeţe pentru
instrumentele 4GL.
• Principalul lor neajuns este legat de translatarea programelor din
limbajul natural în limbaj maşină, o operaţiune extrem de complexă
şi costisitoare din punctul de vedere al resurselor hardware
solicitate.
• Ele sunt integrate cu aplicaţiile de inteligenţă artificială. Un astfel de
exemplu îl reprezintă LISP.
Evoluţia limbajelor de programare – sinteză
1.2. Etapele elaborării programelor de aplicaţii şi
rolul economiştilor

• Dezvoltarea programelor de aplicaţii presupune parcurgerea


unui proces format din mai multe etape care formează ciclul
de viaţă al programelor de aplicaţii.
• Există numeroase metodologii de dezvoltare a programelor, ce
diferă între ele prin numărul etapelor, conţinutul şi organizarea
lor.
• Etapele comune majorităţii metodologiilor, şi rolul
economiştilor de-a lungul procesului de dezvoltare:
1.2. Etapele elaborării programelor de aplicaţii şi
rolul economiştilor

a. Etapa de microanaliză

• are ca obiectiv definirea clară a problemei şi a scopului urmărit.


• La finalul acestei etape se elaborează un plan de dezvoltare, care
este supus spre analiză conducerii.
• Cel mai adesea, economiştii sunt cei care iniţiază dezvoltarea de noi
aplicaţii. Chiar dacă iniţiativa aparţine altor categorii de personal,
rolul economiştilor rămâne important, deoarece ei trebuie să
elaboreze planul de dezvoltare, în care se face o estimare a
cheltuielilor şi beneficiilor potenţiale ale aplicaţiei propuse.
1.2. Etapele elaborării programelor de aplicaţii şi
rolul economiştilor
b. Etapa de analiză
• precizează funcţiile pe care le va realiza noua aplicaţie.
Sunt urmărite trei obiective:
• descrierea sistemului informaţional existent (documentele
primare, fluxurile de informaţii din sistem, prelucrările şi
rapoartele);
• identificarea şi definirea cerinţelor pentru noua aplicaţie;
• documentarea detaliată a tuturor cerinţelor, funcţionale şi
nefuncţionale.
• În finalul etapei de analiză: documentaţia necesară proiectării
• Economiştii joacă un rol determinant. Ei descriu documentele
primare, prelucrările realizate în sistem, procedurile de control,
modalităţile de obţinere a informaţiilor şi prezentare a lor în
rapoarte.
1.2. Etapele elaborării programelor de aplicaţii şi
rolul economiştilor
c. Proiectarea logică
se derulează prin intermediul a trei paşi (subfaze):
• proiectarea formularelor/formatelor (pentru culegerea datelor)
şi a rapoartelor;
• proiectarea interfeţelor şi a dialogurilor, pentru evidenţierea
modului de comunicare a utilizatorului cu programele şi
echipamentele;
• proiectarea logică a bazelor de date, prin care este concepută
schema relaţională a bazei de date, sub forma unui ansamblu
de tabele normalizate între care există legături.
• Economiştii pot juca un rol important dar trebuie să deţină
cunoştinţe suplimentare de informatică, precum: modelul
relaţional şi normalizarea bazelor de date, tipurile de obiecte
din formularele, limbajul SQL.
1.2. Etapele elaborării programelor de aplicaţii şi
rolul economiştilor

d. Proiectarea fizică

• are un caracter tehnic, fiind orientată spre platformele pe care va fi


implementată aplicaţia.
• Specificaţiile acestei etape vor avea un pronunţat caracter tehnic,
economiştii intervenind rareori în derularea acestor activităţi.
• Două dintre activităţile importante ale acestei etape privesc
proiectarea fizică a bazei de date şi proiectarea modulelor de
program. De exemplu, la proiectarea fizică a bazei de date se vor
lua în considerare facilităţile de stocare şi accesare a datelor din
SGBD-ul ales, precum tipul de organizare a fişierelor şi utilizarea
indecşilor
1.2. Etapele elaborării programelor de aplicaţii şi
rolul economiştilor

f. Etapa de implementare
Principalele activităţi care se desfăşoară în cadrul etapei:
• scrierea şi testarea programelor;
• construirea BD;
• conversia datelor din vechea aplicaţie în formatul cerut de noua
aplicaţie;
• instalarea aplicaţiei pe calculatoare;
• instruirea utilizatorilor;
• elaborarea documentaţiei aplicaţiei şi a manualelor de utilizare,
exploatare şi întreţinere.
1.2. Etapele elaborării programelor de aplicaţii şi
rolul economiştilor

g. Etapa de exploatare şi întreţinere

În această etapă sistemul trebuie supus revizuirilor periodice pentru


a se asigura întreţinerea:
• corectarea eventualelor erori apărute în exploatarea lui,
• îmbunătăţirea caracteristicilor sau funcţiilor, ca răspuns la
modificarea unor cerinţe organizaţionale.
Această etapă este, de obicei, cea mai costisitoare (timpul pe care şi-l
petrec specialiştii din departamentele informatice reprezintă 48-60%
din totalul timpului alocat pentru dezvoltarea sistemului).
1.3. INSTRUMENTE PENTRU DEZVOLTAREA
APLICAŢIILOR

Enumerarea şi descrierea instrumentelor software poate porni


de la componentele programelor de aplicaţii:
• interfaţa utilizator (formulare pentru introducerea datelor,
ferestre de dialog, meniuri, rapoarte etc.);
• modulele de program, care realizează prelucrările din sistem,
cum ar fi calculul salariilor, întocmirea graficelor de rambursare
etc;
• baza de date, în care sunt organizate şi stocate toate datele
necesare aplicaţiei.
Mediile de programare

Mediile de programare - seturi de programe care includ funcţiile:


• introducerea şi editarea programului sursă,
• transformarea programului sursă în programe executabile,
• depanarea programelor.
• Exemple: MS Visual Studio, Oracle JDeveloper, Oracle PowerObjects,
Java, Borland Jbuilder, Borland Delphi, IBM Visual Age, Sybase
PowerBuilder.
• În MS Visual Studio sunt incluse mai multe limbaje de programare,
cum ar fi: Visual Basic, C# sau C++.
Sistemele de gestiune a bazelor de date

• Pentru stocarea şi gestionarea volumelor mari de date se


folosesc sistemele de gestiune a bazelor de date.
• Majoritatea aplicaţiilor stochează datele în BD.
• Bazele de date cel mai des întâlnite sunt cele organizate după
modelul relaţional: Oracle, DB2, Sybase SQL Server, MS SQL
Server, MS Access, MS Visual FoxPro.
Sistemele client/server

• În condiţiile globalizării afacerilor şi a dezvoltării reţelelor de


calculatoare se simte din ce în ce mai mult nevoia distribuirii
resurselor informaţionale ale companiei pe mai multe
calculatoare.

• Dezvoltarea unei aplicaţii distribuite impune apelarea la


arhitectura client – server, care presupune conceperea aplicaţiei
în două categorii de componente:

• componente client, care solicită anumite servicii,

• componente server, care furnizează servcii.


Sistemele client/server (continuare)

• Comunicarea între două componente aflate pe calculatoare diferite


sau mascarea eterogenităţii platformelor hardware şi software sunt
rezolvate prin intermediul soluţiilor middleware.

• Cele mai cunoscute modele midleware sunt RPC (Remote Procedure


Call), RMI (Remote Method Invocation), ODBC (Open Database
Connectivity) şi CORBA (Common Object Request Broker
Architecture).
Sistemele gratuite (freeware)

• În cazul în care firma nu dispune de resurse financiare care să-i


permită achiziţionarea unor produse program, poate apela la
soluţii freeware.

• Există instrumente de dezvoltare software gratuite.

• Cel mai răspândit limbaj de programare folosit în medii de


programare gratuite este Java.
Sistemele gratuite (freeware)

• Un SGBD gratuit, care reuşeşte să ajungă la un nivel de


complexitate a prelucrării datelor comparabil cu cel al celor
mai bine vândute SGBD-uri este PostgreSQL.

• Spre deosebire de alte SGBD-uri gratuite (MySQL), PostgreSQL


este capabil să rezolve interogări complexe adresate bazelor de
date pe care le gestionează.

• La capitolul SGBD-uri gratuite începe să concureze şi unul


dintre cele mai performante SGBD-uri relaţionale din lume,
Oracle, prin lansarea versiunii Oracle Database 10g Express
Edition.
Tehnologii Web

• Dezvoltarea aplicaţiilor Web presupune folosirea unor platforme


diferite de mediile de programare specificate anterior.
• Pentru realizarea rapidă a unor site-uri Web se poate apela la
programul MS FrontPage.
• Uşurinţa în utilizarea acestui instrument software este dată de
asemănarea interfeţei sale cu interfeţele programelor din cadrul
MS Office, de faptul că utilizatorul nu este nevoit să înveţe
limbajul HTML şi de folosirea unor şabloane.
Tehnologii Web (continuare)

• Trecerea la site-uri mai complexe nu presupune doar folosirea


resurselor unei baze de date, ci şi elemente grafice care să
atragă atenţia utilizatorului.
• Pentru construirea site-urilor Web complexe: Dreamweaver,
ColdFusion, Flash şi RoboDemo.
• Aplicaţiile Web pot conţine elemente de limbaj împrumutate
din mediile de programare tradiţionale, cum ar fi VB Scripts
sau Java Scripts.
1.4. INSTRUMENTE SOFTWARE PENTRU ECONOMIŞTI

Economiştilor li se oferă astăzi o serie de instrumente software cu


ajutorul cărora pot să-şi dezvolte propriile aplicaţii informatice (de
complexitate mai redusă):
• instrumentele CASE,
• programele de calcul tabelar,
• sistemele de gestiune a bazelor de date (SGBD),
• instrumentele pentru crearea de pagini Web,
• instrumentele pentru organizarea informaţiilor personale.
CASE (Computer Aidded Software Engineering)

• CASE reprezintă un instrument pentru automatizarea procesului de


dezvoltare a programelor.
• Economiştii pot realiza :
• planificarea resurselor financiare alocate proiectelor de sisteme
informaţionale,
• redactarea cerinţelor funcţionale ale aplicaţiei,
• participarea activă la întocmirea specificaţiilor de proiectare a
programelor,
• generarea automată a programelor sau a bazei de date fără a avea
cunoaştinţe tehnice privind limbajul de programare sau SGBD-ul folosite,
• testarea programelor,
• generarea automată a documentaţiei pentru aplicaţia dezvoltată.
• Cele mai cunoscute instrumente CASE sunt Oracle Designer şi Visible Analyst.
Programele pentru gestiunea informaţiilor personale

• au rolul de a ajuta utilizatorii în stocarea, organizarea şi


extragerea informaţiilor privind clienţii, diferite activităţi,
întâlniri, şedinţe etc.
• De exemplu, informaţiile pot fi extrase şi prezentate sub
diverse forme: un calendar electronic, o listă de întâlniri sau o
planificare în timp a activităţilor unui proiect.
• Cele mai cunoscute programe: Lotus Organizer şi Microsoft
Outlook.
Suitele de programe

Furnizorii de software destinate nespecialiştilor oferă astăzi


pachete integrate de programe sub forma unor suite de
programe în care se regăsesc:
• un SGBD,
• un program de calcul tabelar,
• un program pentru gestiunea informaţiilor personale,
• un procesor de texte,
• un procesor pentru grafică.
Principalele suite de programe şi componentele lor

Pachete (suite) Microsoft Lotus Corel


Ofice SmartSuite WordPerfect
Office
Calcul tabelar Excel Lotus 1-2-3 QuatroPro
SGBD Access Approach Paradox
Gestiunea Outlook Organizer Corel Central
informaţiilor
personale
1.5. TENDINŢE ÎN INSTRUMENTELE SOFTWARE

• Tendinţă generală - predilecţia companiilor către achiziţia


programelor de aplicaţii de la furnizorii specializaţi, în
detrimentul dezvoltării lor în cadrul campaniei, cu forţe proprii
sau prin angajarea de specialişti.

• În acest context, două acronime au devenit extrem de populare:


ERP şi ASP.
ERP (Enterprise Resource Planning)

• ERP reprezintă o mega-aplicaţie multi-modulară care integrează procesele


economice şi optimizează resursele disponibile ale organizaţiei, reunind
toate funcţiunile sale într-o singură soluţie software.

• ERP elimină barierele departamentale, prin integrarea tuturor sistemelor


informaţionale tranzacţionale într-o singură bază de date, accesibilă oricui
din organizaţie.
ERP (Enterprise Resource Planning)

• ERP urmăreşte eliminarea graniţelor organizaţiei cu partenerii săi de


afaceri. Două aplicaţii, adesea incluse în soluţiile ERP, stau drept mărturie:

• CRM (Customer Relationship Management), centrată pe gestiunea


relaţiilor cu clienţii,

• SCM (Supply Chain Management), orientată spre gestiunea relaţiilor cu


furnizorii.

• ERP nu realizează doar integrarea funcţională, ci şi pe cea tehnologică. Sub


egida sa sunt reunite diverse tehnologii, precum: groupware, EDI
(Electronic Data Interchange), Internet, Intranet, data warehouse (depozite
de date) etc.
ERP (Enterprise Resource Planning)
• Avantaje:
• reducerea costurilor producţiei şi a stocurilor,
• planificarea integrală a resurselor întreprinderii,
• îmbunătăţirea productivităţii globale,
• maximizarea profitului prin flexibilitate şi reactivitate sporită la
cerinţele pieţei.
• Neajunsuri:
• preţul exorbitant de mare,
• timpul îndelungat de implementare,
• adaptabilitatea redusă la condiţiile particulare din firmă.
ASP (Application Service Providers)

• ASP a devenit cunoscut odată cu tendinţa de externalizare a


serviciilor informaţionale, în scopul reducerii costurilor şi
îmbunătăţirii performanţelor acestora.

• Externalizarea serviciilor informaţionale este posibilă prin apelarea


la furnizorii specializaţi, numiţi ASP (Application Service Providers).
ASP (Application Service Providers)

• ASP reprezintă o companie care dezvoltă şi furnizeazã servicii


informaţionale folosite în comun de mai mulţi utilizatori, care
plătesc un abonament sau taxe de folosire, serviciile fiind furnizate
dintr-o locaţie centrală prin Internet sau printr-o reţea privată.

• Un ASP permite clienţilor săi accesul la un mediu de aplicaţii


complet, preocupându-se de investiţiile necesare în licenţe de
aplicaţii, servere, angajaţi şi alte resurse.
ASP (Application Service Providers)

Beneficiile serviciilor ASP:


• investiţii iniţiale modeste şi predictibilitatea costurilor (se
plăteşte o taxă fixă pe principiul “plăteşti pe măsură ce
utilizezi”);
• posibilitatea de a fi mereu în pas cu progresele tehnologice;
• posibilitatea închirierii aplicaţiilor scumpe;
• acces la suport tehnic şi consultanţă de specialitate pentru
servicii cu înalt nivel tehnologic;
• obţinerea de aplicaţii funcţionale într-un interval de timp
foarte scurt.
ASP (Application Service Providers)

La ora actuală: tendinţa extinderii serviciilor furnizate, conceptul


ASP fiind înlocuit cu XSP (X semnifică servicii generice).
XSP nu oferă doar aplicaţii, ci şi tehnologii, sisteme şi procese
economice.
Modelul XSP promite numeroase beneficii:
• firmele vor putea să cumpere doar funcţionalitatea pe care o doresc şi
atunci când o doresc, reducând astfel investiţiile în tehnologiile
informaţionale;
• firmele pot activa pe piaţă nu doar pe post de consumator de servicii
ci şi cel de furnizor etc.
Tendinţe în limbajele de programare

limbajele orientate-obiect,
limbajele orientate-Internet,
limbajele naturale.
Limbajele orientate-obiect

• Limabjele orientate-obiect modelează sistemul informaţional


sub forma unui set de obiecte care interacţionează între ele
prin schimbul de mesaje.
• Un obiect integrează datele şi acţiunile (procedurile) care pot fi
executate asupra datelor, numite metode.
• Astfel, spre deosebire de limbajele anterioare, datele şi
programele de prelucrare a acestora nu mai sunt separate.
Limbajele orientate-obiect

Exemplu:
Contul de card al unui client reprezintă un obiect.

• Proprietăţile obiectului (datele) - numele clientului, adresa,


numărul contului, numărul cardului, soldul contului, limita de
credit

• Metodele obiectului (comportamentul) - retragerea de


numerar, depunerea, transferul bancar, schimbarea cardului
Limbajele orientate-obiect

• Dezvoltarea limbajelor orientate-obiect a determinat apariţia


programării vizuale.
• Limbajele vizuale dispun de un mediu grafic ce permite
programatorilor să dezvolte aplicaţii prin manipularea directă a
unor imagini, în loc de scrierea de programe.
• Ex. Visual Basic (cel mai cunoscut), DELPHI, Power Objects,
Visual C++.
Limbajele orientate-Internet

Ele se referă la tehnologiile care stau la baza dezvoltării aplicaţiilor


Web, cele mai importante fiind limbajele HTML şi XML.
• HTML (HyperText Markup Language) - limbaj de descriere utilizat
pentru crearea paginilor Web sub forma documentelor hypertext
sau hypermedia.
• HTML este derivat din SGML (Standard Generalized Markup
Language) - metodă de reprezentare a limbajelor de formatare a
documentelor.
• XML (eXtensible Markup Language) - este un limbaj de descriere
a conţinutului paginilor Web. De exemplu, informaţiile privind
zborurile aeriene de pe pagina Web a unei agenţii de turism vor fi
descrise prin intermediul tag-urilor XML.
Capitolul 2
Structuri de date
şi
structuri de prelucrare
Agenda
• Aspecte introductive
• Structuri de date
• Structuri algoritmice de prelucrare
2.1. ASPECTE INTRODUCTIVE

Înţelegerea corectă a principalelor structuri de date şi a structurilor


de prelucrare are importanţă în:
• activitatea de programare,
• formarea specialiştilor în domeniul instrumentelor software.
Structuri de date

O structură de date reprezintă o modalitate de organizare a datelor care acoperă


data elementară propriu-zisă şi relaţiile acesteia cu alte date.
În activitatea de programare alegerea unei structuri de date adecvate asigură
avantaje importante:
• utilizarea eficientă a memoriei,
• eficientizarea prelucrărilor,
• reducerea costurilor de programare.
Structuri de prelucrare

• Structurile de prelucrare (structurile algoritmice de


prelucrare) reprezintă modalităţi de organizare a controlului în
prelucrarea prin programe /proceduri a structurilor de date.
• Structurile de date sunt strâns legate de structurile
algoritmice.
• Structurile algoritmice eficientizează:
• operaţiile de creare şi actualizare a structurilor de date,
• operaţiile de căutare şi sortare a acestora.

• Toate structurile de date şi de prelucrare se bazează pe


memoria calculatorului.
Structuri de prelucrare

În cel mai simplu mod memoria trebuie privită ca fiind o structură


liniară de celule /locaţii în care se depozitează date cu valori
corespunzătoare aplicaţiei.

Observatie
Adresele de memorie nu se codifică după o regulă uşor de înţeles şi
de utilizat în activitatea de programare

necesitatea atribuirii de nume în logica utilizatorilor de medii de


programare şi a problemei de rezolvat.

Este bine ca numele să sugereze conţinutul informaţional al datelor ce vor fi


încărcate.
Codificarea adreselor de memorie
Produs Pret UM Intrare Data

paine 0.5 buc 100 05/12/05

A1 A2 … An
în Produs si UM pot fi introduse numai valori text;
în Pret si Intrare - numai valori numerice;
în Data – numai date calendaristice.
Astfel, se realizează o specializare a celulelor în funcţie de conţinutul lor pe
tipuri de valori. Această caracteristică a celulei poartă numele de tip (care
poate fi: numeric, alfabetic, alfanumeric, logic, dată calendaristică etc.)
2.2. STRUCTURI DE DATE
2.2.1. Clasificări ale principalelor structuri de date
• Compoziţia internă a unei date impune gruparea în:
• date structurate,
• date elementare.
• O dată elementară se defineşte ca fiind un atribut care nu poate
fi descompus din punct de vedere logic.
• Datele structurate (compuse) se definesc ca fiind o grupare de
date elementare şi /sau de alte date compuse.
• Trebuie precizat că toate datele în BD sau entităţi sunt declarate
în dicţionarul de date pe ultimul nivel ca fiind date elementare.
Datele structurate se grupează în:

• Date structurate de nivel redus, care permit operaţii la nivel de


componentă (tablourile şi articolele);
• Date structurate de nivel înalt, care permit operaţii implementate
de algoritmi utilizator (liste liniare, liste liniare ordonate, stiva şi
coada).
2.2.2. Date elementare, tablouri şi pointeri

O dată elementară reprezintă cea mai simplă modalitate de


reprezentare logică a unei informaţii.
În categoria datelor elementare sunt incluse:
• Numere întregi,
• Numere reale,
• Valori booleene,
• Caractere.
2.2.2. Date elementare, tablouri şi pointeri

• Numere întregi: celule sau locaţii de memorie în care sunt stocate


numere întregi. Asupra acestor date se pot aplica operaţiile
aritmetice cunoscute: +, -, ...;
• Numere reale: celule de memorie în care sunt stocate numere
raţionale. Ca şi în cazul numerelor întregi asupra lor se pot aplica
operaţiile aritmetice;
• Valori booleene: celule sau locaţii de memorie în care sunt stocate
valorile logice - true sau false. Aceste date fac obiectul
operaţiilor/operatorilor: and, or, not.
• Caractere: celule sau locaţii de memorie în care sunt stocate şiruri
de caractere alfabetice de genul ‘a’, ‘b’, ‘abc’, ‘Popescu’ … . Pentru
aceste date se pot aplica operaţii speciale de concatenare şi
comparaţie.
Date elementare - exemple

Nr. crt. Nume_dată Valoare Tip

1 Produs Pâine Şir de caractere


2 Preţ 0.5 Numeric
3 UM Buc Şir de caractere
4 Intrare 100 Numeric
5 Data 05/12/05 Dată calendaristică
Crearea datelor elementare folosind Visual Basic for Application:
Sub algoritm()
' creare -initializare
produs = "paine" ' creare variabila produs si intializare cu "paine"
pret = 0.5 ' creare variabila pret si intializare cu 0.5
um = "buc" ' creare variabila UM si intializare cu "buc"
intrare = 100 ' creare variabila intrare si intializare cu 100
data = "12/12/2005" ' creare variabila data si intializare cu "12/12/2005"
' calcul valoare
v = pret * intrare ' creare variabila v si incarcare cu produsul dintre continutul
' variabilei pret cu cel al variabilei intrare
' afişare rezultate
MsgBox "Variabila v contine: " & Str(v) ' Afisare variabila v
MsgBox "Total intrari " & produs & ": " & Str(v) & " RON" ' Afisare rezultate finisate
End Sub

Observaţie: semnul ' de pe linia cu instrucţiuni permite ataşarea unui comentariu.


Acelaşi algoritm se putea scrie şi astfel:
Public produs As String ' se creează in mod public variabila produs de tip sir
Public pret ' se creează in mod public variabila pret de tip variant
Public um As String
Public intrare
Public data As Date ' se creeaza in mod public variabila produs te tip data calendaristica
Public v
Sub algoritm()
' creare-initializare
produs = "paine" ' intializare cu "paine"
pret = 0.5 ' intializare cu 0.5
um = "buc" ' intializare cu "buc"
intrare = 100 ' intializare cu 100
data = "12/12/2005" ' intializare cu "12/12/2005"
' calcul valoare
v = pret * intrare ' incarcare cu produsul dintre continutul lui pret si cel al variabilei intrare
' afişare rezultate
MsgBox "Variabila v contine: " & Str(v) ' Afisare variabila v
MsgBox "Total intrari " & produs & ": " & Str(v) & " RON" ' Afisare rezultate finisate
End Sub
Tablouri

• Un tablou se defineşte ca fiind cea mai simplă dată structurată


organizată sub formă tabelară.
• O caracteristică importantă a unui tablou o reprezintă
dimensiunea acestuia:
• un tablou cu o singură dimensiune (o singură coloană)
poartă denumirea de vector,
• un tablou cu două dimensiuni poartă denumirea de
matrice.
• în fiecare celulă a unui tablou se regăseşte o dată elementară.
Pointerul

• Pointerul reprezintă o legătură către o dată elementară.


• Cu alte cuvinte, o variabilă care conţine o adresă sau un nume
de variabilă pentru o altă dată elementară.
2.2.5. Structuri de date externe: articolul şi fişierul

• Fişierul reprezintă o colecţie ordonată de date. Urmare a


faptului că stocarea datelor se face pe suporţi de memorie
externă, fişierul este definit şi ca structură de date externă.
• Structura ordonată de date din cadrul fişierului poartă
denumirea de articol, care la rândul său este constituit dintr-o
mulţime ordonată de valori ale căror caracteristici aparţin unei
entităţi din domeniul unei probleme. Caracteristicile descrise
prin intermediul valorilor din articolele unui fişier le vom regăsi
sub denumirea de câmpuri.
Reprezentări ale structurilor de date externe de tip articol şi fişier
• Din punct de vedere al activităţilor de programare
este interesant să cunoaştem metoda de organizare şi
tipul de acces aferente structurilor de date externe.
• Metoda de organizare. Aceasta poate fi una din
următoarele: secvenţială, relativă şi indexată;
• Tipul de acces la date în operaţii de citire şi scriere a
valorilor din /în câmpuri. Se poate folosi accesul
secvenţial sau accesul direct.
2.3. STRUCTURI ALGORITMICE DE PRELUCRARE

• Principala sarcină a unui mediu de programare (instrument


software) constă în a permite definirea structurilor de date într-
un mod eficient şi de a asigura accesul, manipularea,
actualizarea şi controlul asupra acestora prin intermediul
algoritmilor şi structurilor de prelucrare /control.
• Structurile de prelucrare /control constituie aportul cel mai de
seamă al metodei de programare structurată, care a impus
utilizarea a trei tipuri de structuri fundamentale, toate cu o
singură intrare şi o singură ieşire, renunţându-se în fapt la
utilizarea în activitatea de programare la instrucţiunea GOTO.
Sunt implementate trei tipuri de structuri fundamentale:
• secvenţiale;
• alternative;
• repetitive.
Structurile de control fundamentale
A. Structuri secvenţiale

VBA asigură operaţii de atribuire şi operaţii de


intrare/ieşire:
• Atribuirea se realizează cu instrucţiune LET sau direct
cu folosire semnului =, ca în exemplul precedent.
• Operaţia de atribuire prin citirea datelor introduse de
utilizator este asigurată de instrucţiunea InputBox.
Această instrucţiune permite introducerea de la
tastatură a valorilor pentru o anumită variabilă.
Formatul instrucţiunii InputBox este:
InputBox(mesaj, [titlu, valoare_implicita])
Precizări:
• Mesaj trebuie scris între ghilimele sau se poate prelua dintr-o variabilă
de tip şir. Este textul ce apare ca explicaţie în interiorul ferestrei;
• Titlu şi valoare_implicită sunt facultative;
• Titlu trebuie scris intre ghilimele sau se poate prelua dintr-o variabilă
de tip şir. Este textul ce apare pe linia de titlu a ferestrei;
• Valoare_implicită este valoarea care va apare în rubrica de completat;
• Fereastra rezultată are şi butoanele predefinite OK şi Cancel Spre
exemplu, din procedura Citire() rezultatul executării liniei
• Cont = InputBox(“Simbol cont”,”Introduceti o valoare”, 0)
• Operaţia de ieşire este uşor de evidenţiat cu ajutorul instrucţiunii
MsgBox, care permite afişarea unui text într-o fereastră de dialog.
• Cea mai simplă utilizare este atunci când dorim sa vizualizăm
conţinutul unei variabile.
B. Structurile de control alternative
În cadrul structurilor de control alternative se disting:
• structuri de control altenative cu ramură dublă;
• structuri de control alternative cu ramură vidă;
• structuri de control alternative generalizate.
a. Codificarea structurilor de control alternative cu ramură dublă şi a celor cu
ramură vidă

IF <condiţie> THEN
<set_comenzi1>
[ELSE <set_comenzi2>]
END IF
Pentru codificarea structurii de control alternative cu
ramură vidă formatul comenzii IF devine:
IF <condiţie> THEN
<set_comenzi>
END IF
b. Codificarea structurilor de control alternative generalizate

Generalizate se realizează cu ajutorul comenzii: SELECT CASE …


CASE … CASE ELSE … END SELECT.
Formatul general pentru această comandă:
SELECT CASE <var>
CASE <var_1>
<set_comenzi_1>
[CASE <var_2>
<set_comenzi_2>]
[CASE <var_k>
<set_comenzi_k>]
[…]
[CASE <var_m>
<set_comenzi_m>]
CASE ELSE
<set_comenzi>]
END SELECT
C. Structurile de control repetitive

În VBA structurile de control repetitive sunt realizate astfel:

WHILE … WEND, pentru structuri repetitive condiţionate anterior.


Setul de comenzi se execută cât timp condiţia este adevărată.

FOR … NEXT, pentru structuri repetitive cu număr stabilit de paşi.


WHILE … WEND
În VBA această structură repetitivă este considerată cea mai simplă,
deoarece nu oferă posibilitatea părăsirii forţate a setului de comenzi cu
o instrucţiune de tipul EXIT.
Formatul general este:
WHILE conditie
<set_comenzi>
WEND

CÂT TIMP conditie


<set_comenzi>
SFÂRŞIT_CÂT_TIMP
FOR … NEXT

• Această structură oferă posibilitatea prestabilirii numărului de


execuţii pentru set_comenzi.
• Din punct de vedere logic se aseamănă cu WHILE … WEND, cu
precizarea că actualizarea se face cu clauza NEXT .
• Formatul general este:
FOR i =1 to n
<set_comenzi>
NEXT i

PENTRU i = 1 la N
<set_comenzi>
URMĂTORUL i
DO… LOOP

Structura de prelucrare de tip repetitiv permite


utilizarea a două clauze diferite:
• WHILE - pentru transferul controlului în cazul îndeplinirii
condiţiei,
• UNTIL - pentru transferul controlului în cazul neîndeplinirii
condiţiei.
Varianta cu WHILE DO … LOOP corespunde structurii de
control repetitive condiţionate anterior,
Varianta cu UNTIL, permite codificarea structurilor de control
condiţionate posterior.

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