Limbaje de Program Are Si Baze de Date Curs

113
1 Cuprins Software de sistem şi software de aplicaţie 1. Software de sistem 1.1. Drivere de dispozitiv 1.2. Sistem de operare 1.2.1. Nucleul sistemului de operare 1.2.2. Interfaţa sistemului de operare 1.2.3. Utilitare de sistem 2. Programare tabelară 2.1. Programul de calcul tabelar Excel 2.2. Editarea foilor electronice de calcul 2.3. Calcule financiare 2.4. Tabele de decizie 2.5. Tabele de date 2.6. Grafice (diagrame) 3. Internet 3.1. Structura reţelei Internet 3.2. Instrumente Web 3.3. Poşta electronică 3.4. Comerţ electronic 3.4.1. Site de comerţ electronic 3.4.2. Vânzarea on-line 3.4.3. Sisteme electronice de plată Structuri de date şi programare structurată 1. Conceptul de algoritm 2. Principiile programării structurate 3. Elemente din teoria bazelor de date 3.1. Structuri de date 3.1.1. Tipuri de legături între diferite colecţii 3.1.2. Tipuri de structuri de date 3.2. Concepte de reprezentare a datelor 3.2.1. Modelul de reprezentare liniară 3.2.2. Modelul ierarhic (arborescent) 3.2.3. Modelul reţea 3.2.4. Modelul relaţional 3.3. Algebra relaţională – Modelul relaţional 3.3.1. Integritatea modelului relaţional 3.3.2. Calculul operaţional 3.4. Elementele unei baze de date

description

Suport de curs 2 la informatica

Transcript of Limbaje de Program Are Si Baze de Date Curs

Page 1: Limbaje de Program Are Si Baze de Date Curs

1

Cuprins

Software de sistem şi software de aplicaţie

1. Software de sistem 1.1. Drivere de dispozitiv 1.2. Sistem de operare

1.2.1. Nucleul sistemului de operare 1.2.2. Interfaţa sistemului de operare 1.2.3. Utilitare de sistem

2. Programare tabelară 2.1. Programul de calcul tabelar Excel 2.2. Editarea foilor electronice de calcul 2.3. Calcule financiare 2.4. Tabele de decizie 2.5. Tabele de date 2.6. Grafice (diagrame)

3. Internet 3.1. Structura reţelei Internet 3.2. Instrumente Web 3.3. Poşta electronică 3.4. Comerţ electronic

3.4.1. Site de comerţ electronic 3.4.2. Vânzarea on-line 3.4.3. Sisteme electronice de plată

Structuri de date şi programare structurată

1. Conceptul de algoritm 2. Principiile programării structurate 3. Elemente din teoria bazelor de date

3.1. Structuri de date 3.1.1. Tipuri de legături între diferite colecţii 3.1.2. Tipuri de structuri de date

3.2. Concepte de reprezentare a datelor 3.2.1. Modelul de reprezentare liniară 3.2.2. Modelul ierarhic (arborescent) 3.2.3. Modelul reţea 3.2.4. Modelul relaţional

3.3. Algebra relaţională – Modelul relaţional 3.3.1. Integritatea modelului relaţional 3.3.2. Calculul operaţional

3.4. Elementele unei baze de date

Page 2: Limbaje de Program Are Si Baze de Date Curs

2 3.4.1. Definirea noţiunii de „bază de date” 3.4.2. Criterii de clasificare a bazelor de date 3.4.3. Sisteme de gestiune a bazelor de date (SGBD) 3.4.4. Funcţiile unui SGBD 3.4.5. Sisteme de gestiune a bazelor de date relaţionale

4. Limbaje algoritmice 4.1. Datele 4.2. Instrucţiunile limbajului algoritmic 4.3. Programare modulară. Subprograme

4.3.1. Proceduri 4.3.2. Funcţii 4.3.3. Iterativitate şi recursivitate

Aplicaţii Bibliografie

Page 3: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 3

Software de sistem şi software de

aplicaţie Componenta logică a sistemelor de calcul (software) este constituită din două elemente: software de sistem şi de aplicaţie:

Software-ul de sistem permite calculatorului să execute

operaţiile de bază, cum ar fi cele de intrare şi de ieşire şi include: sistemul de operare şi modulele software cunoscute sub numele de utilitare de sistem. Cea mai mare parte din utilitarele implementate într-un sistem de calcul sunt neesenţiale pentru funcţionarea sistemului dar includ unităţi software care extind facilităţile sistemului

SOFTWARE DE

SISTEM

SOFTWARE DE

APLICAŢIE

Drivere de dispozitiv

Utilitare de sistem

Sistem de operare

Limbaje de programare

Baze de date

Calcul tabelar

Grafică

Procesoare de texte

Comunicaţii

Educaţie Afaceri

Proiectare

S O F W A R E

Page 4: Limbaje de Program Are Si Baze de Date Curs

4 Software de sistem şi software de aplicaţie

de operare permiţând utilizatorului să desfăşoare activităţi specifice sau să îşi dezvolte propriile aplicaţii.

Software-ul de aplicaţie este destinat executării unor operaţii specificate de utilizatori.

Componentele sistemului de operare sunt structurate pe două nivele: nivelul fizic (mai apropiat de hard şi, în general, transparent pentru utilizator) şi nivelul logic (mai apropiat de utilizator, constituind interfaţa cu utilizatorul):

Cea mai importantă parte a programelor de sistem care coordonează activitatea PC-ului şi furnizează servicii esenţiale pentru programele de aplicaţii sunt implementate din construcţie într-o memorie de tip ROM, constituind sistemul de intrare/ieşire de bază - BIOS (Basic Input Output System). BIOS-ul reprezintă interfaţa dintre echipamentele hardware ale calculatorului şi sistemul de operare şi conţine programe de conversaţie cu elementele hardware ale PC-ului. Destinaţia sa principală o constituie încărcarea sistemului de operare de pe dispozitivul de iniţializare şi autotestarea componentelor în momentul pornirii PC-ului (dispozitivul de iniţializare este, de obicei, hard disk-ul sau portul de reţea). Tipurile moderne de BIOS incorporează facilităţi de determinare a

HARD

BIOS

BIOS

SISTEM

DE OPERARE

PROGRAME UTILITARE

SOFTWARE DE APLICAŢIE

U T I L I Z A T O R I

U T I L I Z A T O R I

Page 5: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 5

Pornire

Power On Self Test

Booting Hard disc

configuraţiei şi de alocare a resurselor prin intermediul standardului PnP (Plug and Play - conectare şi folosire).

Sarcina esenţială a BIOS-ului este aceea de asigura independenţa sistemului de operare de partea hard. La punerea sub tensiune a calculatorului sunt activate pe rând secvenţe program ale BIOS-ului care includ: • secvenţa de pornire a calculatorului

care stabileşte configuraţia componentelor PC-ului (conexiunea cu diferite tipuri de tastaturi, display-uri, imprimante, periferice speciale);

• secvenţele de autotest (POST - Power On Self Test), realizează autotestarea PC-ului, constând în detectarea eventualelor erori de funcţionare a componentelor);

• secvenţa de încărcare a sistemului de operare de pe suportul de stocare pe care a fost depus (booting).

1. Software de sistem

1.1. Drivere de dispozitiv

Sistemul de operare conţine informaţii generale despre dispozitivele ce pot fi conectate la calculator. Driverele de dispozitiv (device drivers) sunt programe ce oferă calculatorului informaţii specifice privind un anumit echipament hardware şi asigură comunicarea cu acesta. Fiecare driver este proiectat individual pentru un anumit tip de dispozitiv (imprimantă, disc, monitor, etc.) şi traduce cererile formulate în termeni generali într-o secvenţă de instrucţiuni specifice dispozitivului ataşat acelui driver. Astfel sistemul de operare nu trebuie să ţină cont de detaliile constructive ale dispozitivelor periferice ataşate calculatorului. Unele drivere sunt generale, deoarece dispozitivele pe care le controlează sunt construite conform unei anumite specificaţii. De exemplu, există un număr mic de drivere de mouse care controlează

Page 6: Limbaje de Program Are Si Baze de Date Curs

6 Software de sistem şi software de aplicaţie

majoritatea dispozitivelor mouse. Când dispozitivele sunt foarte variate, fiecare tip necesită un driver corespunzător. Imprimante aproape identice, construite de acelaşi producător, vor avea drivere diferite care exploatează caracteristicile fiecărei imprimante.

Sistemul Plug and Play (PnP) este un procedeu modern prin care interfeţele sau dispozitivele periferice îşi manifestă prezenţa în cadru sistemului de calcul şi este disponibil pentru sistemele de bază ISA, PCI, SCSI şi IDE astfel încât instalarea componentelor hardware noi este mult simplificată. Pentru ca PnP să funcţioneze, sunt necesare următoarele componente: hardware PnP, BIOS PnP şi un sistem de operare PnP (opţional). Într-un sistem PnP, BIOS PnP va stabili automat plăcile compatibile PnP „în spaţiul” componentelor deja existente. Plăcile adaptoare PnP comunică cu BIOS-ul sistemului şi cu sistemul de operare pentru a transmite informaţii despre ce resurse ale sistemului sunt necesare. În schimb, BIOS-ul şi sistemul de operare rezolvă conflictele (acolo unde se poate face acest lucru) şi informează plăcile adaptoare despre ce resurse specifice ar trebui folosite. De abia apoi placa adaptoare îşi poate modifica configuraţia pentru a folosi resursele specificate. Specificaţia PnP a BIOS a fost dezvoltată de firme prestigioase cum sunt Compaq, Intel şi Phoenix Technologies. Trăsăturile PnP ale BIOS sunt implementate printr-o extindere POST.

1.2. Sisteme de operare

Definiţie Sistemul de operare reprezintă o colecţie de programe destinată a organiza o gestiune eficientă a resurselor hardware şi software ale sistemelor de calcul. Sistemul de operare adaptează resursele hardware ale calculatorului la cerinţele utilizatorului asigurând interfaţa cu utilizatorul, de cele mai multe ori într-un mod interactiv.

Un sistem de operare constă din unul sau mai multe programe

Page 7: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 7

care interacţionează cu BIOS-ul pentru a controla hardware-ul calculatorului. Sistemul de operare oferă un set de funcţii standard ce pot fi utilizate de aplicaţii pentru comunicarea cu BIOS. În cursul utilizării calculatorului, sistemul de operare are sarcina de a detecta dacă un dispozitiv nu funcţionează corect (de exemplu, dacă un disc a fost eliminat dintr-o unitate sau dacă imprimanta nu este conectată). Sistemele de operare gestionează operaţiile de intrare şi ieşire prin monitorizarea şi controlarea fluxului de date şi a altor programe. Datele introduse de utilizator sunt preluate de la tastatură, mouse sau alt dispozitiv de intrare şi sunt dirijate către memorie şi CPU. Datele de ieşire sunt transmise către ecran, către imprimantă sau alt dispozitiv. Prin comunicarea cu BIOS, sistemul de operare gestionează şi operaţiile de intrare/ieşire pentru dispozitivele de stocare.

Observaţie Fiecare sistem de operare este conceput pentru a lucra cu o anumită arhitectură hardware (inclusiv BIOS-ul). Un sistem de operare proiectat pentru un calculator Macintosh nu va funcţiona pe un PC. Un PC mai vechi bazat pe microprocesorul 8088 nu are resursele necesare pentru rularea unui sistem de operare destinat să funcţioneze pe un Pentium.

Sistemul de operare este responsabil şi cu alocarea resurselor sistemului - atribuirea de echipamente hardware diferitelor programe şi funcţii pentru a asigura funcţionarea eficientă a calculatorului. De exemplu, sistemul de operare poate aloca o porţiune a unui hard disc pentru a fi utilizată ca memorie virtuală, sau poate utiliza o parte din memorie pentru operaţii de cache. De asemenea, sistemul de operare gestionează operaţiile de stocare, de citire de pe disc şi de scriere pe disc a noilor fişiere. O altă sarcină este determinare numărului de utilizatori ce pot obţine acces la calculator în acelaşi timp.

Page 8: Limbaje de Program Are Si Baze de Date Curs

8 Software de sistem şi software de aplicaţie

În funcţie de activităţile pe care un calculator trebuie să le execute simultan, sistemele de operare pot fi implementate în două variante:

• Sisteme monotasking care pot executa la un moment dat o singură sarcină.

• Sisteme multitasking capabile să coordoneze executarea mai multor sarcini simultan. Acest proces implică probleme legate de partajarea timpului afectat diferitelor activităţi (time sharing), de echilibrarea încărcării (load balacing) sau de comutare între sarcini (scaling –scalare).

Fiecare sistem de operare conţine două componente principale:

o Nucleul (kernel) - conţine acele componente soft care efectuează operaţii primare, necesare pentru funcţionare calculatorului.

o Interfaţă cu utilizatorul (shell) - partea sistemului de operare care preia comenzile de la utilizator şi le transferă către nucleul acestuia. În funcţie de sistemul de operare, interfaţa cu utilizatorul poate fi bazată pe text sau grafică.

1.2.1. Nucleul sistemului de operare

Componenta principală a sistemului de operare este denumită nucleu şi cuprinde:

o Gestionarul de fişiere (File Manager), care permite administrarea informaţiilor memorate pe suporturile de stocare sub forma unor entităţi numite fişiere.

o Administratorul de memorie (Memory Manager) care susţine activitatea de coordonare a utilizării memoriei principale a calculatorului.

File Manager

Multe sisteme de administrare a fişierelor permit gruparea lor în

unităţi denumite directoare (directory) sau dosare (folder). În

Page 9: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 9

acest mod utilizatorul poate plasa familiile de fişiere în acelaşi grup, mai mult chiar, permiţându-se ca directoarele să conţină alte directoare, se poate realiza o organizare ierarhizată. Secvenţa de directoare care indică drumul până la un anumit subdirector sau fişier se numeşte cale (path). Informaţiile necesare pentru găsirea şi manipularea fişierelor sunt stocate într-o zonă de memorie principală numită descriptor de fişier (file descriptor), iar operaţiile individuale asupra unui fişier se fac prin informaţiile aflate aici.

Memory Manager

Activitatea de coordonare a utilizării memoriei principale a calculatorului este susţinută de administratorul de memorie, acest lucru fiind necesar mai ales în mediile de operare multitasking în care calculatorul trebuie să răspundă mai multor utilizări în acelaşi timp. O situaţie importantă în care trebuie să intervină Memory Manager este aceea în care cantitatea totală de memorie solicitată depăşeşte dimensiunea memoriei disponibile. În acest caz se aplică conceptul de memorie virtuală (virtual memory) conform căruia se creează un spaţiu special pe disc, rotind datele între memoria principală şi disc sub formă de pagini (astfel se pot satisface cereri de memorie mai mari decât memoria fizică instalată, dar în detrimentul vitezei de lucru a calculatorului).

1.2.2. Interfaţa sistemului de operare

Interfeţe bazate pe text

În cadrul unei interfeţe bazate pe text, utilizatorul tastează comenzi pentru a da instrucţiuni calculatorului (linii de comandă). Primul sistem de operare pentru PC-uri, CP/M (Control Programs for Microcomputers), era un sistem de operare bazat pe text. CP/M a fost proiectat de Digital Research. Firma Microsoft a conceput sistemul de

Page 10: Limbaje de Program Are Si Baze de Date Curs

10 Software de sistem şi software de aplicaţie

operare IBM PC-DOS pentru calculatoare personale IBM (1981). DOS reprezintă acronimul pentru „Disk Operating System” (sistem de operare pe discuri) întrucât iniţial sistemul de operare era stocat pe dischete. Linia de comandă DOS este prefixată de un prompter, care informează utilizatorul că sistemul este pregătit să primească instrucţiuni. Instrucţiunile sunt tastate după prompter. După fiecare instrucţiune, utilizatorul trebuie să apese tasta Enter pentru a prelucra instrucţiunea. UNIX este un alt sistem de operare bazat pe text, conceput la începutul anilor ‘70 de laboratoarele AT&T Bell. UNIX reprezintă un sistem de operare multiutilizator pentru PC-uri care a cunoscut numeroase îmbunătăţiri, rezultând astfel diverse versiuni , cum ar fi: BSD UNIX (îmbunătăţiri ale versiunii UNIX realizate la Universitatea Berkeley din California), XENIX, AIX (IBM UNIX) şi A/UX /UNIX (pentru calculatoare Macintosh). Unele versiuni de UNIX conţin o interfaţă grafică cu utilizatorul. Interfeţe grafice

Interfaţa grafică de referinţă a fost concepută de firma Apple

pentru a fi utilizată pe sisteme Macintosh. Sistemul de operare pentru Macintosh (Mac OS), este un shell care se numeşte Finder. O interfaţă grafica de tipul Finder utilizează mici imagini numite pictograme pentru reprezentarea programelor şi a instrucţiunilor. Pentru a da o instrucţiune sistemului de operare, utilizatorul indică o pictogramă şi efectuează clic pe mouse. O altă posibilitate de a da comenzi este efectuarea de selecţii din meniuri aflate în shell. Datorită facilităţilor sistemului de operare, calculatoarele Mac au exercitat o influenţă puternică în anumite domenii ale pieţei calculatoarelor, în special în editare şi educaţie. Utilizatorii de Mac-uri erau etichetaţi cu termenul „wimps”: utilizatori de ferestre (windows), pictograme (icons), hărţi (maps) şi pixeli.

Page 11: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 11

Sistemul Microsoft Windows, lansat în mai 1990, sub denumirea Windows 3.0 este, în esenţă, un înveliş (shell) pentru DOS, primeşte instrucţiuni prin intermediul mouse-ului şi le transformă în comenzi ce pot fi acceptate şi executate de DOS. A urmat Windows 3.1, o versiune îmbunătăţită, considerat un standard industrial şi utilizat mai mult decât orice alt sistem de operare.

Observaţie La actualizarea unui produs, acesta primeşte un număr al noii versiuni. Dacă actualizarea presupune modificări esenţiale, atunci se schimbă partea întreagă a numărului ce exprimă versiunea. De exemplu, DOS 4.0 a reprezentat o actualizare esenţială a sistemului DOS 3.0. Dacă au loc numai modificări minore, se schimbă doar cifra ce urmează numărului versiunii: DOS 3.0 - DOS 3.1. În cadrul referirii la software, termenul „3.x” semnifică orice versiune 3 (3.0, 3.1, 3.22). „3.x sau mai nou” înseamnă orice versiune de software cu numărul egal sau mai mare decât 3.0.

Windows 95 (98) este un sistem de operare care include funcţii ale sistemului de operare Windows 3.1. Microsoft deţine şi o versiune multiutilizator a sistemului Windows, numită Windows NT. Windows NT 3.1 utilizează interfaţa grafica a lui Windows 3.1. Windows NT 4.0 are ca model Windows 95. Windows XP reuneşte facilităţi Windows 95 şi NT.

Page 12: Limbaje de Program Are Si Baze de Date Curs

12 Software de sistem şi software de aplicaţie

Interfaţa grafică Windows (9x, Millennium, XP)

Desktop

Desktop-ul reprezintă întreaga suprafaţă de ecran din afara barei de aplicaţii (taskbar) pe care se afişează toate celelalte elemente interactive ale interfeţei grafice:

• Ferestrele (de aplicaţii şi de document); • Casetele de dialog (conţin informaţii, avertismente sau

controale pentru executarea unor comenzi; • Pictogramele - icons (imagini grafice asociate aplicaţiilor sau

documentelor); • Meniurile (listă de elemente din care utilizatorul poate alege

una din ele).

Taskbar

Taskbar-ul este bara de operaţii ce apare în partea de jos a ecranului. Sarcina barei de task-uri este de a face comutarea între diverse aplicaţii prezentând toate programele deschise la un moment

Page 13: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 13

dat. Se poate aduce, astfel, în prim plan programul dorit, indiferent câte programe se află în execuţie la acel moment de timp. Bara de aplicaţii conţine butonul Start şi, opţional, câteva controale (butoane informative) referitoare la: ora şi data sistemului, parametrii de afişare, parametrii sunetului etc. Butonul Start permite deschiderea meniului principal al

Windows-ului, meniu conţinând opţiunile: ♦ Programs - prin care se lansează programele şi

aplicaţiile instalate în sistem precum şi task-uri Web. ♦ Documents - oferă acces rapid la informaţiile cu care s-a

lucrat recent conţinând o listă cu ultimele documente deschise.

♦ Settings - pentru configurarea sistemului (controlul anumitor componente şi funcţii) şi a perifericelor.

♦ Search (Find) - căutarea de fişiere şi directoare sau site-uri pe Internet (după criterii completate interactiv de către utilizator).

♦ Help and Support - apelarea informaţiilor de ajutor. ♦ Run – comenzi textuale (Windows sau DOS). ♦ Log Off - deconectarea utilizatorului (lucru în reţea). ♦ Turn Off Computer (Shut Down) - închiderea

sistemului de operare în vederea opririi calculatorului sau pentru repornire.

Ferestre

Aplicaţiile precum şi majoritatea dialogurilor beneficiază de câte o fereastră. Este posibil a avea mai mult de o singură fereastră pe ecran în acelaşi timp. În acest caz ele sunt aranjate în două moduri: cascade (suprapuse) sau tile (alăturate).

Elementele comune ferestrelor de aplicaţie sunt:

Page 14: Limbaje de Program Are Si Baze de Date Curs

14 Software de sistem şi software de aplicaţie

♦ Window Display Area (aria de lucru) este zona ocupată de fereastră pe ecran.

♦ Title Bar (antetul ferestrei) linia în care este afişat

numele programului sau al documentului asociat ferestrei. ♦ Control Menu permite selectarea unor opţiuni pentru

controlul ferestrei (Restore –restabilire, Move -mutare, Size -redimensionare, Maximize -maximizare, Minimize -minimizare, Close -închidere).

♦ Horizontal şi Vertical Scroll –linii cu butoane care permit afişarea informaţiei neincluse în spaţiul curent de afişare.

♦ Minimize Window - buton care reduce fereastra şi o plasează în taskbar.

♦ Maximize Window - expandează afişarea conţinutului ferestrei la nivelul întregului ecran.

♦ Close Window - închide fereastra activă. ♦ Menu Bar –linia meniului principal care permite alegerea

unui element dintr-o listă de opţiuni şi subopţiuni.

Close WindowMaximize Window

Title BarControl Menu Menu Bar

Vertical Scroll Bar

Horizontal Scroll Bar Window Display Area

Toolbar

Format Bar

Window Borders

Minimize Window

Page 15: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 15

♦ Toolbar (bara de instrumente) –permite activarea funcţiilor principale ale aplicaţiei.

♦ Format bar (linia de formatare) –pentru stabilirea caracteristicilor textuale.

♦ Windows Borders (chenarul exterior). Fiecare fereastră poate fi redimensionată, prin „tragerea” marginilor acesteia, schimbările putându-se efectua pe lăţime, înălţime sau pe diagonală.

Pictograme

Pictogramele (icons) sunt elemente interactive ce se pot întâlni atât pe suprafaţa desktop-ului, cât şi în interiorul ferestrelor de explorare a conţinutului de fişiere al discurilor. Ele sunt compuse dintr-o imagine (sugerând voit conţinutul la care se referă) şi din denumirea conţinutului. Conţinutul poate fi un fişier (executabil sau document), un director, element al sistemului, o aplicaţie de sistem sau o scurtătură (shortcut) spre astfel de conţinut. Asupra pictogramelor se pot executa operaţii de activare (click), deschidere (dublu clic) sau gestionare (clic cu butonul drept –deschiderea meniului contextual Properties). Shortcut-urile (scurtăturile) sunt indicatoare de fişiere, directoare sau programe. Ele însele sunt de fapt nişte fişiere şi sunt tratate de sistem ca atare, permiţând ajungerea la orice componentă a sistemului de calcul sau a reţelei: documente, aplicaţii, directoare, imprimante etc.

Principalele pictograme pe care le vom regăsi pe orice calculator având instalat Windows -ul sunt:

◊ Recycle Bin -„coşul de gunoi”, acumulând fişierele şi directoarele şterse (prin ştergere simplă, fişierele şi directoarele nu sunt eliminate efectiv, conţinutul acestora putând fi recuperat din Recycle Bin);

Page 16: Limbaje de Program Are Si Baze de Date Curs

16 Software de sistem şi software de aplicaţie

◊ My Documents – directorul de documente al pachetului de programe Microsoft Office;

◊ My Computer - permite explorarea resurselor informaţionale (unităţi de disc, imprimante, directoare, fişiere etc.);

◊ Network Neighborhood - referitor la conexiunile dintre calculatoare prin intermediul reţelei.

1.3. Utilitare de sistem

Programele utilitare sunt programe utilizate împreună cu sistemul de operare pentru a controla şi a utiliza echipamentele hardware ale unui calculator, sau pentru a gestiona fişierele de date şi programe. Majoritatea utilitarelor tratează operaţiile de stocare şi gestionare a fişierelor. Utilitarele sunt folosite pentru o gamă largă de operaţii, cum ar fi:

Formatarea unui disc în vederea stocării de date şi programe Gestionarea datelor şi programelor - copierea, mutarea,

redenumirea sau ştergerea fişierelor de date şi programe Asigurarea securităţii datelor prin controlul existenţei viruşilor

sau crearea de copii de rezervă sau a unor copii codificate ale documentelor importante

Restabilirea datelor şi programelor pierdute Efectuarea de teste de diagnosticare asupra echipamentelor

hardware Sistemele de operare conţin utilitare necesare operaţiilor

minimale de gestionare a dispozitivelor. De exemplu, DOS conţine următoarele utilitare:

FORMAT, utilizat pentru pregătirea unui disc în vederea stocării de date

COPY, utilizat pentru copierea fişierelor dintr-o locaţie în alta RENAME, utilizat pentru modificarea numelui unui fişier BACKUP şi RESTORE, utilizate pentru efectuarea unor copii ale

fişierelor pe un alt disc UNDELETE, pentru regăsirea fişierelor şterse din greşeala DEL, utilizat pentru ştergerea fişierelor

Page 17: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 17

Lucrul cu fişiere şi directoare

Fişiere

Fişierul (file) reprezintă o colecţie de date înregistrate pe disc, date organizate astfel încât prezintă o însemnătate concretă pentru aplicaţia cu care interacţionează. După cum informaţia rezidentă se împarte, în general, în aplicaţii şi date, la nivelul fişierelor exista fişiere executabile şi fişiere de date / informaţii. Fişierul executabil este un program executabil şi determină o acţiune a sistemului. Informaţia din cadrul fişierului executabil este, de fapt, o înşiruire de instrucţiuni în cod maşină. Fiecare fişier are asociat un identificator constituit dintr-un nume, de până la 256 de caractere şi o extensie din maximum trei caractere. În identificator pot apare şi spaţii, caractere speciale ca, de exemplu, virgulă, punct şi virgulă, egal şi paranteze drepte. Dacă apar caractere mari şi caractere mici, sistemul le va memora ca atare (Windows regăseşte denumirea indiferent dacă este scrisă cu litere mari sau mici). În anumite situaţii, între nume şi extensie se regăseşte caracterul „.” (punct). Rolul extensiei numelui de fişier este de a arăta categoria căreia îi aparţine fişierul (având o valoare informativă atât pentru sistemul de operare cât şi pentru utilizatori). Cele mai utilizate nume de extensii sunt: EXE - fişier executabil (aplicaţie), COM - fişier comandă executabilă, HLP - fişier cu informaţii de ajutor (help), TXT- fişier text (text nativ, numit şi ASCII), DOC - fişier document Word, DBF - fişier de tip bază de date, XLS - fişier de calcul tabelar Excel, etc. Nu este obligatorie specificarea completă a numelui şi a extensiei putându-se folosi caracterele * şi ? pentru a suplini un grup de caractere, respectiv un singur caracter din denumirile respective. Astfel pot fi identificate sub aceeaşi denumire mai multe fişiere (de

Page 18: Limbaje de Program Are Si Baze de Date Curs

18 Software de sistem şi software de aplicaţie

exemplu A*.doc semnifică toate fişierele a căror nume începe cu A dar având extensia doc). Asupra fişierelor sunt posibile următoarele operaţii: creare, modificare a conţinutului, redenumire, mutare sau copiere în alt director, ştergere.

Directoare

Directorul (folder, dosar, mapă, catalog) poate fi privit ca un nume asociat unui grup de fişiere (numele unui recipient abstract în care se pot înscrie fişiere). Directoarele se definesc pe disc într-o structură ierarhică ramificată: există un director rădăcină (având numele unităţii de disc) în care se pot înscrie mai multe subdirectoare, iar fiecare dintre acestea poate conţine mai multe fişiere sau subdirectoare. Fiecărui fişier sau director i se asociază informaţii pentru stabilirea unor atribute care pot avea următoarele valori:

o R - read-only: nu se permite decât citirea (protejat la scriere);

o A - arhivă: semnalează provenienţa dintr-o arhivă; o H - hidden (ascuns): fişier invizibil la operaţiile uzuale de

căutare; o S - system: fişier rezervat de sistemul de operare (care, în

nici un caz nu trebuie şters).

Observaţii

Fiecare aplicaţie are propriul ei director. Directorul curent este cel în care se salvează fişierele la un

moment dat (numit şi director de lucru) sau în care rezidă aplicaţia aflată în execuţie.

Directorul rădăcină are denumirea identică cu cea a discului pe care se află. Discurile organizate logic pe sistem au următoarele denumiri: A - prima unitate de dischete, B - a doua unitate de dischete, C - primul hard-disk sau prima partiţie ( aici se află,

Page 19: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 19

de regulă, sistemul de operare), D - cel de-al doilea hard-disk (a doua partiţie sau prima unitate de CD-ROM), etc.

Directorul în care se află un subdirector se consideră, pentru acesta din urmă, director părinte, ceea ce subliniază organizarea ierarhică a directoarelor.

Nici un director nu permite existenţa mai multor fişiere sau subdirectoare cu acelaşi nume (nume incluzând şi extensia).

Orice fişier poate fi identificat prin precizarea completă şi unitară a căii (path). O cale reprezintă un şir de caractere care conţine, separate prin „backslash” (”\“), numele directoarelor din succesiunea ierarhică până la fişierul în cauză (exemplu: c:\My Documents\Gestiune\catalog.doc).

Organizarea standard a PC-urilor include în configuraţie o singură dischetă (A), un hard-disk (C) şi un CD-ROM (D). Volumul fizic al hard-disk-ului poate fi împărţit în mai multe discuri logice numite şi partiţii, iar procesul iniţial prin care se generează din volumul unui hard-disk mai multe partiţii se numeşte partiţionare. Directoarele suportă următoarele comenzi: citirea conţinutului (parcurgere, afişare), schimbarea directorului curent, crearea unui nou director (denumirea), redenumire, mutare, ştergere.

My Computer,Windows Explorer şi Network Neighborhood

My Computer şi Windows Explorer sunt utilitare sistem de lucru cu fişiere şi directoare. Cele mai multe programe vor fi lansate prin shortcut-uri, fie din meniul Start, fie de pe suprafaţa de lucru, cele două utilitare găsind obiectele cărora le sunt ataşate scurtături. Într-o fereastră Windows Explorer deschisă se poate vedea în partea stângă ierarhia de dosare; dacă unul din dosare este deschis, în partea dreaptă va fi afişat conţinutul acestuia.

Page 20: Limbaje de Program Are Si Baze de Date Curs

20 Software de sistem şi software de aplicaţie

Navigarea prin reţea se realizează cu ajutorul aplicaţiei Network Neighborghood, accesibilă de pe suprafaţa de lucru. Navigarea prin reţea cu Network Neighborhood este similară cu căutarea pe un hard-disk local, asigurând mobilitatea şi integrarea în reţeaua locală prin casetele de dialog standard.

Operaţii executate asupra fişierelor şi a directoarelor

Principalele operaţii executate asupra fişierelor şi a directoarelor sunt:

Căutarea fişierelor cu programul Search (Windows XP). Pentru a găsi un fişier sau un director al cărui nume se cunoaşte, se execută următorii paşi: o se execută clic pe butonul Start, se selectează Search şi apoi

For Files or Folders…; o se precizează scopul căutării (Pictures..., Documents…, All

files and folders…). Se pot folosi şi caracterele de substituire * şi ?) în caseta numelui de fişier sau folder;

o se execută clic pe Search pentru a lansa căutarea.

Page 21: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 21

Selectarea fişierelor şi a directoarelor pentru a fi mutate, redenumite sau copiate. Selectarea se poate realiza global sau parţial. Selectarea globală presupune alegerea opţiunii Select All a meniului Edit. Selectarea parţială presupune încadrarea într-un dreptunghi a pictogramelor corespunzătoare cu ajutorul mouse-ului (butonul drept).

Crearea unui director. Pentru a crea un director pe suprafaţa

de lucru se execută clic dreapta într-un loc liber al suprafeţei de lucru (desktop sau alt director) şi se selectează din meniu New Folder după care se înscrie numele noului director.

Ştergerea fişierelor şi a directoarelor se poate realiza în două

moduri: o Ştergerea logică prin care elementele supuse acestei operaţii

sunt înmagazinate în Recycle Bin (se efectuează prin apăsarea tastei Delete sau prin clic dreapta şi selectarea opţiunii Delete din meniul contextual – o altă metodă este de a trage pictograma obiectului şi de a o aduce deasupra coşului de gunoi). Aceste ştergeri pot fi refăcute (opţiunea Restore din Recycle Bin) sau transformate în ştergeri fizice (ştergeri din Recycle Bin).

o Ştergerea fizică, ştergere definitivă ce nu mai poate fi

Page 22: Limbaje de Program Are Si Baze de Date Curs

22 Software de sistem şi software de aplicaţie

refăcută (se apasă tastele Shift+Delete).

Partajarea (Sharing) se referă la faptul că un disc, imprimantă, director sau fişier se poate utiliza de către mai mulţi utilizatori care lucrează în reţea. Aceasta poate fi te tip Read only sau Full Acces şi presupune utilizarea unor parole (se realizează fie prin clic dreapta, fie prin alegerea opţiunii Sharing din meniul contextual).

Mutarea şi copierea fişierelor şi a directoarelor se poate

realiza folosind comenzile Cut (decupare), Copy (copiere), Paste (lipire). Aceste comenzi pot fi lansate, după selectarea obiectului corespunzător, prin clic dreapta cu mouse-ul sau prin combinaţiile de taste, Ctrl+X (decupare), Ctrl+C (copiere), Ctrl+V (lipire). Astfel operaţia de mutare (Move) se desfăşoară în succesiunea: selectare sursă, Cut, stabilire destinaţie, Paste, în timp ce, pentru copiere, trebuie parcurşi următorii paşi: selectare sursă, Copy, stabilire destinaţie, Paste. Mutarea obiectelor poate fi efectuată şi prin utilizarea procedeului Drag and Drop cu mouse-ul.

Redenumirea fişierelor şi a directoarelor se execută prin dublu

clic sau clic dreapta (şi alegerea opţiunii Rename din meniul contextual) pe nume după care acesta se va putea edita.

Page 23: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 23

Meniul principal Linia cu instrumente standard

Linia cu instrumente pentru format

Linia de editareAdresa celulei active

Meniul principal Linia cu instrumente standard

Linia cu instrumente pentru format

Linia de editareAdresa celulei active

2. Programare tabelară

2.1. Programul de calcul tabelar Excel

Excel este un program de calcul tabelar, care face parte din

familia de utilitare Microsoft Office păstrând, în general, aceeaşi

manieră de lucru (meniul principal, linia cu instrumente standard, linia cu instrumente pentru format, etc.).

Un program de calcul tabelar (Spreadsheets), numit şi "foaie electronică de calcul" este un produs ce cuprinde facilităţi de lucru cu tabele, baze de date şi posibilităţi de reprezentare grafică a foilor de calcul. Programele de calcul tabelar se adresează utilizatorilor neprogramatori ce prelucrează date statistice, financiare, ştiinţifice, fiind, datorită funcţiilor predefinite puse la dispoziţie, un instrument flexibil şi uşor de învăţat. De asemenea foile electronice

Page 24: Limbaje de Program Are Si Baze de Date Curs

24 Software de sistem şi software de aplicaţie

de calcul permit cele mai diverse operaţii asupra informaţiilor de piaţă, preiau datele colectate şi păstrate în fişiere sau date captate prin intermediul reţelelor de transmisie. Cele mai multe studii de piaţă care se comercializează la ora actuală în lume, se livrează în fişiere tip foaie electronică de calcul. Editarea unei foi electronice de calcul se face cu ajutorul tastelor ordinare (litere, cifre, caractere speciale) sau prin combinaţii de taste, în pagina logică. Pagina logică este încadrată în pagina fizică (coala de hârtie, de obicei de format A4) prin margini (dreapta/stânga, sus/jos). La lansarea Excel-ului cursorul se află în poziţia Home (colţul stânga sus al ecranului şi al paginii logice). Excel-ul oferă posibilitatea editării simultane a mai multor documente, înscrise în mai multe ferestre de editare. Comenzile de editare pot fi lansate utilizând meniul principal (intrare în meniul principal prin F10 sau Alt+litera subliniată) sau butoanele din liniile de instrumente. Comutarea ferestrelor de editare (notate, la prima deschidere, cu Book1, Book2, … sau cu numele fişierelor sub care au fost salvate foile electronice de calcul) presupune selectarea opţiunii Window (Alt+W)

din meniul principal, în care sunt afişate ferestrele active la un moment dat. Documentele care se creează sub Excel sunt fişiere stocate pe diferite suporturi (dischetă, hard-disc, CD-ROM), având extensia implicită xls. Când se doreşte editarea (modificarea) unui document, fişierul corespunzător documentului trebuie copiat în memoria internă -deschidere (Open). Operaţia de stocare a unui document aflat în editare, ca fişier, se numeşte salvare (Save).

Page 25: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 25

Observaţie

Există un istoric al ultimelor fişiere editate. Acest istoric poate fi folosit pentru relansarea în editare a acestora.

Comenzile mediului de editare Excel

Comanda New (Ctrl+N) permite deschiderea în editare a unui nou document (lansare prin meniu : File, New).

Comanda Open (Ctrl+O) permite încărcarea fişierelor Excel în memoria internă (lansare prin meniu : File, Open).

Comanda Save (Ctrl+S) realizează salvarea documentelor ca fişiere pe disc (lansare prin meniu : File, Save). Comanda Save As realizează salvarea documentelor sub un nume diferit de cel curent (lansare prin meniu : File, Save As).

Editează un document existent

Editează un document nou

Inchide editarea documentului

Salvează fişierul sub un alt numeSalvează fişierul

Afişează conţinutul imprimării

Imprimă documentul

Istoricul documentelor editate

Ieşire Excel

Page 26: Limbaje de Program Are Si Baze de Date Curs

26 Software de sistem şi software de aplicaţie

Comanda Print (Ctrl+P) realizează tipărirea documentelor editate (lansare prin meniu File, Print).

Comanda Print Preview are rolul vizualizării documentelor editate (lansare prin meniu File, Print Preview). Funcţia de imprimare este dependentă de imprimanta selectată la instalarea Windows-ului (există şi posibilitatea selectării ulterioare). Un document editat poate fi tipărit. Comanda Print Preview oferă posibilitatea previzualizării documentului, în forma în care aceasta va fi imprimat pe hârtie, folosind toate informaţiilor specifice imprimantei utilizate.

Comenzile Undo (Ctrl+Z), Redo (Ctrl+Y) au ca scop anularea sau repetarea acţiunilor de editare anterioare.

Majoritatea mediilor de editare memorează un istoric al ultimelor operaţiuni efectuate, începând cu cea mai recentă dintre ele. Folosind butonul Undo (prin meniu: Edit, Undo…) se pot anula, secvenţial, mai multe acţiuni anterioare. Există şi posibilitatea repetării ultimilor acţiuni efectuate utilizând Redo (prin meniu: Edit, Redo…). În cazul când au fost iniţiate operaţii (de obicei prin deschiderea unor ferestre asociate acestora), ce trebuie anulate se poate apăsa butonul Cancel sau tasta Esc.

Comanda Exit (Alt+F4) încheie lucrul cu Excel (prin meniu File, Exit). Funcţia Close (lansare prin meniu File, Close) finalizează editarea unui document.

Comanda Help permite descrierea comenzilor şi utilizarea acestora:, exemple şi demonstraţii, lista comenzilor Excel (Index), ajutor interactiv (Asistent Office), etc.

Page 27: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 27

Foaia electronică de calcul

Foaia electronică de calcul este împărţită în linii şi coloane şi este prevăzută cu un sistem de coordonate. Coloanele sunt notate cu litere, iar liniile cu cifre arabe (“tablă de şah”), intersecţiile liniilor şi coloanelor numindu-se celule (de exemplu celula G3 este pe coloana G linia 3). Cu ajutorul acestui sistem de coordonate o celulă este determinată în mod unic. Fiecare celulă poate conţine unul din următoarele trei tipuri de date : un text, un număr sau o formulă. Ultimul tip este "găselniţa" problemei. Numerele aflate în celule sunt legate între ele prin formule, astfel încât dacă se modifică conţinutul unei celule, aceasta va afecta în lanţ multe altele. De exemplu, dacă celulele B1, B2, B3, B4, B5, conţin cifre, se poate aduna conţinutul lor, printr-o formulă plasată în altă celulă: B1+B2+B3+B4+B5 sau SUM(B1:B5). Un program de calcul tabelar oferă zeci de funcţii de calcul, atât matematice, cât şi financiare şi statistice. Acestea pot fi interconectate după toate regulile matematicii, fapt ce permite descrierea unui algoritm de calcul, utilitatea calculului tabelar fiind verificată ca valoare şi funcţionalitate în multe domenii de activitate. Instrumentele principale de lucru ale unui program de calcul tabelar sunt tabelul şi graficul. Prezentarea datelor în formă tabelară şi în formă grafică contribuie la redarea concentrată a informaţiilor. Tabelele de date trebuie să fie astfel constituite încât:

o să asigure o prezentare compactă a datelor numerice; o să nu fie supraîncărcate cu detalii (deseori două tabele

scurte sunt preferabile unui tabel lung); o să includă un titlu complet şi clar pentru identificarea

imediată a conţinutului lor; o să precizeze, dacă este cazul, unităţile de măsură;

Page 28: Limbaje de Program Are Si Baze de Date Curs

28 Software de sistem şi software de aplicaţie

o să indice tipul de preţ (curent sau constant); o să prezinte datele sub formă procentuală sau ca indici,

atunci când este necesar un plus de claritate. Unitatea de lucru, pe foaia electronică de calcul, fiind celula,

acţiunile de editare se desfăşoară la nivel de celulă şi sunt vizualizate în linia de editare.

Editarea celulelor are ca scop introducerea celor trei tipuri de

informaţie : text, numere, formule. Introducerea textului presupune tastarea oricărui şir de

caractere. Alinierea textului se face la stânga celulei. Este posibil ca lungimea textului introdus într-o celulă să depăşească capacitatea celulei, în acest caz textul aflat în exces fiind afişat peste celulele următoare dacă acestea nu sunt vide (în caz contrar se afişează conţinutul acestora).

Introducerea numerelor se face cu ajutorul cifrelor, semnelor + şi – (plus şi minus) , virgulei zecimale (,) şi eventual a exponentului (E). Numerele sunt implicit aliniate la dreapta. Dacă un număr trebuie să fie tratat ca text este necesar ca mai întâi să fie tastat un apostrof (exemplu: '20765).

Introducerea formulelor trebuie să înceapă prin tastarea semnului =(egal). Expresiile de calcul pot să conţină : operatori, constante, identificatori de celule, nume de funcţii pentru calcul şi trebuie alcătuite conform regulilor algebrice.

• Constantele conţin valori sub formă de numere întregi (ex: 1, -23), numere reale în format fix (ex: 22,31, -12,234), numere reale în format exponenţial (ex: 12,76E3) sau date procentuale (ex: 125%).

• Identificatorii de celule permit referirea acestora (ex: A1, D10, A1:E8).

• Funcţiile de calcul pot fi : - financiare - statistice

Page 29: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 29

- matematice şi trigonometrice - logice

• Operatorii, împreună cu ordinea lor de evaluare sunt descrişi în următoarea tabelă :

Operator Nivel

^ (exponenţial) 1

+ (pozitiv), - (negativ) 2

* (înmulţire), / (împărţire) 3

+ (adunare), - (scădere) 4

= (egal), <> (diferit)

< (strict mai mic)

> (strict mai mare)

<= (mai mic sau egal cu)

>= (mai mare sau egal cu) 5

Tastele utilizate cel mai frecvent pentru deplasarea cursorului

sunt:

Tasta Mişcarea cursorului

← sau → cu o celulă, la stânga sau la dreapta

↑ sau ↓ cu o linie, mai sus sau mai jos

Home pe prima celulă din linie

PgUp la începutul ferestrei precedente

PgDn la începutul ferestrei următoare

Ctrl+Home în colţul din stânga sus al foii de calcul

Ctrl+End în colţul din dreapta jos al foii de calcul

Ctrl+G sau F5 la celula specificată

Exemplu Foaie electronică de calcul a rădăcinilor ecuaţiei de gradul 2, pentru diferite valori ale coeficienţilor a, b, c:

Page 30: Limbaje de Program Are Si Baze de Date Curs

30 Software de sistem şi software de aplicaţie

Conţinutul celulelor de calcul

E3 : =B4^2-4*B3*B5 (b2 – 4· a· c) E4 : =IF(E3>=0;(-B4+SQRT(E3))/(2*B3);F2) E5 : =IF(E3>=0;(-B4 - SQRT(E3))/(2*B3);F2) celulele E4, E5, pentru determinarea rădăcinilor x1, x2, conţin funcţia de testare IF (“dacă”) şi funcţia SQRT (radical). Dacă delta≥ 0 atunci afişează numerele reale, în caz contrar afişează

mesajul „complex”.

2.2. Editarea foilor electronice de calcul

Editarea conţinutului unei celule

Editarea conţinutului unei celule selectate, se poate realiza prin apăsarea tastei F2 sau prin poziţionare directă, cu ajutorul mouse-

ului, în linia de editare numită şi formula bar, folosind următoarele taste:

Tasta Acţiune

← sau → salt cu un caracter, la stânga sau la dreapta

Home salt la începutul liniei de editare

End salt la sfârşitul liniei de editare

Backspace şterge caracterul din stânga cursorului

Delete şterge caracterul de pe poziţia cursorului

Shift + ← sau → selecţie unul sau mai multe caractere

Page 31: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 31

Conţinutul curent al celulei poate fi validat dacă se acţionează tasta Enter sau dacă se iniţiază deplasarea cursorului într-o altă celulă. Pentru anularea operaţiei se poate utiliza tasta ESC .

Inserarea liniilor şi a coloanelor

Inserarea liniilor sau a coloanelor se face întotdeauna before

(înaite) de linia curentă sau coloana curentă. Operaţia de inserare efectivă se realizează prin meniu: Insert Row/Column1.

Selectarea unui domeniu de celule

Punerea în evidenţă (highlighting) a unui bloc (domeniu) de celule se face în vederea executării de către Excel a unei acţiuni ulterioare asupra acestuia (copiere, ştergere, construirea graficelor, etc.).

Selecţia unui bloc se realizează folosind tastele săgeţi sau cu ajutorul mouse-ului. Un bloc de celule poate fi alcătuit dintr-o singură celulă, dintr-o linie de celule, dintr-o coloană de celule sau oricare altă porţiune dreptunghiulară a foii de calcul.

Specificarea unui bloc de celule se poate face prin precizarea primei şi ultimei celule din bloc (Ex. B3:B7, D2:E7).

Ajustarea dimensiunilor liniilor şi a coloanelor

Prin lăţimea coloanei se precizează numărul de caractere

conţinute de o celulă aparţinând acesteia. Lăţimea implicită a unei coloane este de 8.43 caractere normale. Dacă o celulă conţine text în exces acesta este afişat peste celulele următoare, cu condiţia ca acestea să nu fie vide. Datele numerice care depăşesc ca număr de caractere lăţimea celulei sunt afişate în format exponenţial iar dacă şi acest mod de afişare nu este posibil se tipăreşte şirul de caractere ###### (depăşire de format).

1 Inserare Rânduri/Coloane

Page 32: Limbaje de Program Are Si Baze de Date Curs

32 Software de sistem şi software de aplicaţie

Schimbarea dimensiunii unei coloane/linii se poate realiza prin meniu (Format, Column, Width... / Format, Row, Height...)2 sau utilizând mouse-ul, prin culisarea liniilor grilă pentru coloane şi rânduri.

Referinţe absolute şi relative de celulă

Celulele pot fi referite în două moduri, modurile de referire rezultând din tabelul următor :

Referire Exemple

coloană relativă, linie relativă A2

coloană absolută, linie absolută $A$2

coloană relativă, linie absolută A$2

coloana absolută, linie relativă $A2

O referire absolută înseamnă o poziţie fixă în foaia de calcul, poziţie care nu este afectată de modificări în foaia de calcul. Modificările din foaia de calcul (ştergeri de linii şi coloane) se reflectă şi în referinţele relative.

Copierea formulelor dintr-o celulă de calcul în altă celulă de calcul este influenţată de modul de referire a celulelor. Toate referirile relative sunt "translatate", în timp ce referirile absolute rămân nemodificate.

Copierea şi mutarea conţinutului celulelor

Copierea conţinutului celulelor: • se selectează celula, coloana, linia sau domeniul, • se selectează Edit, Copy3 din meniu sau se apasă Ctrl+C ,

• se deplasează cursorul pe locul unde se va face copierea, • se apasă tasta Enter.

Mutarea conţinutului celulelor:

• se selectează celula, coloana sau linia sau domeniul,

2 Format, Coloană, Lăţime… / Format, Rând, Înălţime… 3 Editare, Copiere

Page 33: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 33

• se selectează Edit, Cut4 din meniu sau se apasă Ctrl+X ,

• se deplasează cursorul pe locul unde se va face mutarea, • se apasă tasta Enter.

Formatarea conţinutului celulelor

Modul de afişare a conţinutului unei celule (afişarea numerelor, alinierea, fontul, aspectul liniilor de bordare, umplerea) poate fi schimbat prin meniu Format Cells5, sau Format, Style... Modify6 , în funcţie de tipul informaţiei pe care-l conţine.

Funcţii de calcul

Excel oferă posibilitatea efectuării unor calcule diverse prin funcţii de calcul financiare, statistice, matematice şi trigonometrice, pentru baze de date, etc. Sintaxa şi numărul de argumente ale

acestor funcţii este furnizată prin acţionarea butonului sau prin meniu Insert, Function...7

2.3. Calcule financiare

Funcţiile financiare efectuează calcule obişnuite pentru afaceri, ca de pildă determinarea plăţii pentru un împrumut, valoarea viitoare sau valoarea netă actualizată a unei investiţii şi valorile obligaţiunilor sau cupoanelor.

Argumentele comune pentru funcţiile financiare includ:

• Valoarea viitoare (fv) – valoarea investiţiei sau împrumutului după ce s-au efectuat toate plăţile.

4 Editare, Decupare 5 Format Celule 6 Format Stil… Modificare 7 Inserare, Funcţie…

Page 34: Limbaje de Program Are Si Baze de Date Curs

34 Software de sistem şi software de aplicaţie

• Numărul de perioade (nper) – numărul total de plăţi sau perioade ale unei investiţii. • Valoarea actualizată (pv) – valoarea unei investiţii sau a unui împrumut la începutul perioadei de investiţie. De exemplu, valoarea actualizată a unui împrumut este capitalul de bază care este împrumutat. • Rata (rate) – rata dobânzii sau rata de actualizare pentru un împrumut sau o investiţie. • Tip (type) – intervalul la care sunt efectuate plăţile în timpul perioadei de plată, ca de pildă la începutul unei luni sau la sfârşitul acesteia.

Observaţii

Unele funcţii financiare se folosesc pentru anuităţi. O anuitate constă dintr-o serie de plăţi constante efectuate pe o perioadă continuă (de exemplu un împrumut pentru un autoturism, sau un împrumut ipotecar). În funcţiile de anuităţi, sumele plătite, cum ar fi depozitele pentru economii, sunt reprezentate de numere negative; sumele primite, cum ar fi un cec de dividente, sunt reprezentate prin numere pozitive. Se recomandă consecvenţă în legătură cu unităţile utilizate pentru specificarea argumentelor rate şi nper (de exemplu, pentru plăţi lunare la un împrumut pe un număr de ani, rata dobânzii va fi împărţită întotdeauna cu 12, iar nper va fi înmulţit cu 12 şi cu numărul de ani).

Funcţia FV

Funcţia FV întoarce valoarea viitoare a unei investiţii bazate pe

plăţi periodice şi constante şi o rată a dobânzii constantă. Sintaxa: FV(rate;nper;pmt;pv;type)

Page 35: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 35

o argumentele pv şi type pot fi omise; o rate - rata dobânzii pe o perioadă; o nper - numărul total de perioade de plată dintr-o anuitate; o pmt - plata efectuată periodic, neschimbată pe durata

anuităţii (în mod tipic, argumentul pmt conţine capital şi dobândă, dar nu şi alte taxe şi datorii);

o pv - valoarea actualizată, sau suma globală pe care o serie de plăţi viitoare o reprezintă în momentul actual (dacă argumentul pv este omis, se consideră zero);

o type – este 0 sau 1 şi indică momentul când sunt datorate plăţile (dacă type este omis, se consideră 0).

Exemplu O persoană fizică depune 8 milioane lei într-un cont de economii cu o dobândă anuală de 26% şi îşi planifică să mai depună câte un milion de lei la începutul fiecăreia din următoarele 12 luni. Câţi bani va avea în cont la sfârşitul celor 12 luni?

=FV(26%/12;12;-1000000;-8000000;1) 24.178.497 lei

Funcţia PV

PV întoarce valoarea actualizată a unei investiţii. Valoarea

actualizată este suma totală pe care o reprezintă în prezent o serie de plăţi viitoare. De exemplu, pentru împrumut, suma împrumutată este valoarea actualizată pentru creditor.

Sintaxa: PV(rate;nper;pmt;fv;type)

Page 36: Limbaje de Program Are Si Baze de Date Curs

36 Software de sistem şi software de aplicaţie

argumentele fv şi type pot fi omise; rate - rata dobânzii pe perioadă; nper - numărul total de perioade de plată dintr-o anuitate; pmt - plata efectuată periodic, neschimbată pentru toată durata anuităţii (în mod tipic, argumentul pmt include capital de bază şi dobândă, dar nu şi alte onorarii sau taxe); fv - este valoarea viitoare, sau balanţa în numerar la care se ajunge după efectuarea ultimei plăţi (dacă fv este omis, se presupune a fi 0 - valoarea viitoare a unui împrumut, de exemplu, este 0); type - este 0 sau 1 şi indică momentul când sunt datorate plăţile.

Exemplu Ca urmare a depunerii cu o dobândă anuală de 25% a unei sume, o bancă returnează lunar 2 milioane de lei timp de cinci ani. Care este valoarea acestei sume?

=PV(25%/12;5*12;2000000) -68.140.028 lei

Funcţia NPER

Funcţia NPER furnizează numărul de perioade pentru o

investiţie bazată pe plăţi periodice constante şi o rată constantă a dobânzii.

Sintaxa: NPER(rate; pmt; pv; fv; type)

Page 37: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 37

argumentele fv şi type pot fi omise; rate - rata dobânzii pe o perioadă; pmt - plata făcută în fiecare perioadă, neschimbată pe parcursul anuităţii (tipic, pmt conţine capital şi investiţii, dar nu şi alte onorarii sau taxe); pv - valoarea actualizată, sau valoarea globală pe care ar reprezenta-o în acest moment o serie de plăţi viitoare; fv - este valoarea viitoare, sau o balanţă în numerar, obţinută după efectuarea ultimei plăţi (dacă fv este omisă, se presupune a fi egală cu 0 - valoarea viitoare a unui împrumut, de exemplu, este 0).

Observaţie

Valoarea returnată este de tip real, de aceea aceasta trebuie rotunjită.

Exemple 10 După câte luni se va atinge un sold propus de 30 milioane lei

pentru depuneri lunare de 1,5 milioane lei şi la o rată a dobânzii de 25% ?

=NPER(25%/12;-1500000;-30000000) 16,89… ≅ 17 luni

2o Ştiind suma lunară care se poate investi şi rata dobânzii oferită de o bancă oarecare să se calculeze câte rate sunt necesare pentru a se atinge soldul propus:

Page 38: Limbaje de Program Are Si Baze de Date Curs

38 Software de sistem şi software de aplicaţie

Conţinutul celulelor de calcul E1 : =-NPER(B2/12;-B1;-B3) E2 : =ROUND(E1;0) E3 : =FV(B2/12;E2;-B1) A6 : =1 B6 : =D6 C6 : =0 D6 : =$B$1 E6 : =D6 A7 : =A6+1 B7 : =B6+C7+D7 C7 : =B6*$B$2/12 D7 : =$B$1 E7 : =E6+D7

conţinutul celulelor din domeniul A8:E20 se obţine prin copierea

rândului 2 din tabel (linia 7)

Funcţia PMT

PMT calculează plata pentru un împrumut bazat pe plăţi

constante şi o rată constantă a dobânzii. Sintaxa:

Page 39: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 39

PMT(rate;nper;pv;fv;type)

argumentele fv şi type pot fi omise; o rate - rata dobânzii pentru împrumut; o nper - numărul total de plăţi pentru împrumut; o pv - valoarea actualizată, sau suma totală pe care o

valorează în prezent o serie de plăţi viitoare, denumită şi capital de bază;

o fv - valoarea viitoare, sau balanţa în numerar la care se ajunge după efectuarea ultimei plăţi (dacă fv este omis, se presupune a fi zero, ceea ce înseamnă că valoarea viitoare a împrumutului este zero);

o type - este 0 sau 1 şi indică momentul când sunt datorate plăţile.

Exemplu Cât trebuie să economisiţi lunar ca, după 10 ani, contul în bancă

să fie de 150 milioane lei la o dobândă lunară de 1% ? =PMT(1%;-10*12;-150000000) -652.064 lei

Funcţia IPMT

IPMT întoarce plata dobânzii pentru o perioadă dată, pentru o

investiţie bazată pe plăţi periodice constante şi o rată constantă a dobânzii.

Sintaxa:

Page 40: Limbaje de Program Are Si Baze de Date Curs

40 Software de sistem şi software de aplicaţie

IPMT(rate;per;nper;pv;fv;type)

argumentele fv şi type pot fi omise; rate - rata dobânzii periodice; per - perioada pentru care se calculează dobânda cuprinsă în intervalul [1, nper]; nper - numărul total de perioade de plată dintr-o anuitate; pv - valoarea actualizată, sau valoarea globală pe care ar reprezenta-o în acest moment o serie de plăţi viitoare; fv - valoarea viitoare, sau balanţa în numerar obţinută după efectuarea ultimei plăţi (dacă fv este omis, se presupune a fi egală cu 0 - valoarea viitoare a unui împrumut, de exemplu, este 0); type - este 0 sau 1 şi indică momentul când sunt datorate plăţile (dacă type este omis, se consideră 0).

Exemplu Care este dobânda datorată în al doilea an pentru un împrumut

de 100 milioane de lei pe trei ani la o rată a dobânzii anuale de 30% ? =IPMT(30%;2;3;100000000) - 22.481.203 lei

2.4. Tabele de decizie

Un tabel de decizie este o zonă de celule care arată modul în

care modificările anumitor valori referite în formule afectează rezultatele formulelor. Tabelele de decizie oferă facilitatea de a calcula variante multiple ale unei operaţii şi un mod de a vizualiza şi

Page 41: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 41

compara rezultatele (prognozarea valorilor cu ajutorul analizei: “ce se întâmplă dacă – What If”). Aceste tabele de date se construiesc pe baza unei formule având ca date de intrare una sau două valori numite celule de intrare (prin meniu: Data Tables...)8:

• Tabelele de decizie cu o variabilă (un singur factor de influenţă) preiau date dispuse pe coloane (linii) le trec prin formula de calcul şi le afişează pe coloane (linii). Pentru afişarea unor rezultate pe coloane se selectează domeniul conţinând coloana intrărilor şi a rezultatelor (inclusiv formula) după care se completează caseta Column input cell9 cu adresa celulei de intrare:

• Tabelele de decizie cu două variabile (doi factori de

influenţă) preiau date dispuse pe linii şi coloane, le trec prin formula de calcul şi le afişează tabelar. Pentru afişarea rezultatelor

8 Date, Tabel… 9 Celulă de intrare pe coloană

Formula

Celula de intrare

Re-zul-ta-te

I n t r ă r i

Page 42: Limbaje de Program Are Si Baze de Date Curs

42 Software de sistem şi software de aplicaţie

Formula

Celula de intrare pe linie

Rezultate

Celula de intrare pe coloană

I n t r ă r i

I n t r ă r i

se selectează domeniul corespunzător al intrărilor şi al rezultatelor (inclusiv formula) după care se completează casetele Row input cell şi Column input cell10 cu adresele celulelor de intrare pentru linii şi coloane:

Exemplu Pentru un împrumut de 225 milioane de lei se rambursează lunar

anumite sume. Ştiind că valoarea la zi a ratei dobânzii anuale este de 40% şi că valoarea maximă estimată a acesteia pentru următorii ani este 47% să se calculeze plăţile lunare pentru diverse valori ale ratei dobânzii în situaţia în care plăţile pot fi eşalonate pe un număr de 3, 4 sau 5 ani.

10 Celulă de intrare pe rând, Celulă de intrare pe coloană

Page 43: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 43

Se va construi un tabel de date cu două variabile. Celula de intrare pentru coloană este C5 iar pentru linie este C4. Formula de calcul (în B8) va conţine funcţia PMT.

2.5. Tabele de date

Tabelele de date reprezintă un grup de date organizate pe linii şi pe coloane (baze de date relaţionale), astfel încât, principalele elemente care definesc un tabel de date sunt:

• Înregistrările (articole, records), entitatea de lucru a bazei de date.

• Câmpurile (fields), informaţiile distincte din cadrul unei înregistrări.

• Linia de antet (header row) care permite identificarea informaţiilor din cadrul unei înregistrări. Analogia cu un tabel obişnuit constă în identificarea unei

înregistrări cu o linie, a coloanelor cu câmpurile tabelului de date, iar a capului de tabel cu linia de antet.

Page 44: Limbaje de Program Are Si Baze de Date Curs

44 Software de sistem şi software de aplicaţie

După definirea structurii unui tabel de date, ceea ce înseamnă scrierea etichetelor prin care se vor identifica câmpurile tabelului de date, se poate trece la definirea conţinutului. Datele se pot introduce în celule ţinându-se cont de semnificaţia lor.

Observaţii

• Etichetele prin care sunt precizate câmpurile tabelului de date trebuie să fie diferenţiate în mod corespunzător. Dacă un titlu de coloană trebuie scris pe mai multe rânduri se poate folosi combinaţia de taste Alt + Enter sau se poate utiliza opţiunea

Format, Cells...11 Opţiunea menţionată permite ca în tab-ul Alignment (aliniere) să se facă precizări legate de afişarea textului cum ar fi:

o alinierea textului pe orizontală sau pe verticală (Horizontal, Vertical),

o scrierea multirând (Wrap text), o adaptarea dimensiunii textului la dimensiunea celulei

(Shrink to fit), o contopirea mai multor celule (Merge cells), o orientarea direcţională a textului (Orientation).

• datele de pe coloană trebuie să fie de acelaşi tip; • liniile (coloanele) nu trebuie să fie goale sau întrerupte; • datele de tip text nu trebuie să înceapă cu spaţiu (se pot crea

probleme la căutarea sau sortarea în listă); • pentru a uşura citirea tabelului este recomandat a se formata

coloanele (câmpurile) în mod diferit.

Prelucrarea tabelelor de date

Excel oferă o posibilitate comodă de a efectua prelucrări asupra

înregistrărilor, prin utilizarea formularului de date (opţiunea Data, Form…12 din meniul principal).

11 Format, Celule… 12 Date, Machetă…

Page 45: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 45

Trece la înreg. următoare

Adaugă

Trece la înregistrarea precedentă

Caută o înregistrare conform unui criteriu

Şterge

Anulează

Câmpurile tabelului de date

Prelucrare

Conţinutul înregistrării curente

Condiţia de bază, pentru iniţializarea unei prelucrări a datelor constituite în tabele de date este de a selecţiona tabelul bază de date (de obicei acesta se personalizează prin Format, AutoFormat...13). Asupra tabelului de date se pot executa anumite operaţii cum ar fi:

10 Căutarea prin formularul de date şi opţiunea Criteria

(criterii).

20 Sortarea. De cele mai multe ori datele trebuie prelucrate

într-o ordine diferită de cea în care au fost introduse în tabelul de date. Procedeul de ordonare a tabelelor de date, după diferite criterii, numite chei de sortare poate fi realizat prin meniu (Data, Sort...)14. Ordonarea poate fi ascendentă sau descendentă. Pot fi selectate, drept chei de sortare (chei de sortare primare sau secundare) câmpurile tabelului de date. Se pot utiliza, de asemenea şi butoanele

de sortare rapidă din bara de instrumente standard: 13 Format, Autoformatare… 14 Date, Sortare…

Page 46: Limbaje de Program Are Si Baze de Date Curs

46 Software de sistem şi software de aplicaţie

30 Filtrarea (selecţia pe orizontală) care reprezintă

posibilitatea de a introduce în prelucrare doar datele care îndeplinesc o anumită condiţie. Pentru a putea realiza selecţia se poate folosi opţiunea Data, Filter15 din meniul principal. Filtrarea se poate realiza pe o valoarea anumită cuprinsă în unul din câmpurile tabelului de date (AutoFilter)16 sau poate fi personalizată prin criterii (Data, Filter) acţionând săgeata de derulare pentru introducerea opţiunii de filtrare particularizată (Custom), care permite precizarea condiţiilor logice: Is Greater Than (mai mare decât), Equals (egal cu), Does Not Equal (diferit de), Begin With (începe cu), etc.

Observaţie

Pentru a reafişa întreaga listă (toate înregistrările) se selectează (Data, Filter, Show All), iar pentru a dezactiva opţiunile AutoFilter se selectează Data, Filter, AutoFilter (astfel se va reafişa vechiul mod de afişare al listei, fără săgeţile de derulare).

15 Date, Filtrare 16 Filtrare automată

Page 47: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 47

40 Interogarea care reprezintă posibilitatea obţinerii unor

informaţii statistice din tabelul de date cum ar fi totaluri, subtotaluri, contorizări, etc.

2.6. Grafice (diagrame)

Datele din tabele devin mai convingătoare atunci când sunt prezentate sub formă de histograme, diagrame circulare, grafice liniare, etc. Mediile de realizare a foilor de calcul electronic conţin facilităţi de redare grafică a tabelelor. Construirea unui grafic pornind de la un tabel dat, presupune următoarele etape : 1o Alegerea tipului de grafic: ao linii (lines) bo bare (bars) co stivă de bare (stacked bars)

Page 48: Limbaje de Program Are Si Baze de Date Curs

48 Software de sistem şi software de aplicaţie

do diagrame circulare (pie) 2o Alegerea zonelor din tabel în care se găsesc seriile de date, care se doresc a fi reprezentate şi seria de date care va constituii axa orizontală a graficului (de regulă date temporale - ani, zile, etc.). 3o Alegerea datelor ce vor fi marcate pe axa verticală (de regulă cantităţi, preţuri, etc.). 4o Alegerea titlurilor axelor şi a titlului graficului. 5o Stabilirea legendelor şi a altor detalii care contribuie la claritate reprezentării grafice. 6o Alegerea datelor care vor fi marcate cu valori în clar în interiorul graficului.

Observaţii

• pentru a putea stabili corelaţii între diverse serii de date se recomandă reprezentare simultană pe acelaşi grafic a unui a mai multor serii de date, dar nu a mai mult de şase;

• marcarea axelor, scrierea titlurilor şi folosirea legendelor; • folosirea, dacă este necesară identificarea unor valori pe

grafic, a liniilor paralele verticale care prelungesc gradaţiile verticale;

• marcarea valorilor reprezentative pe grafic;

Crearea unui grafic în Excel începe cu specificarea datelor (seriilor) ce vor fi reprezentate şi presupune selectarea blocurilor de date numerice din foaia electronică de calcul. Liniile din cadrul unui bloc selectat constituie, de obicei, seriile.

Page 49: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 49

Etapele realizării unui grafic : 1o Se selectează seriile; 2o Se fixează colţul stânga-sus al zonei unde va fi afişat graficul;

3o Se selectează Insert, Chart...17

4o În fereastra Chart Wizard (tipuri de diagramă) se alege tipul de grafic. Componentele unui grafic sunt constiruite din obiecte şi pot fi

modificate prin instrumente de tip Chart (titlul graficului, denumirea axelor, etichetarea datelor, legende). Pentru aceasta este necesar ca opţiunea Chart să fie activată (prin meniu View, Toolbars, Chart)18.

Pentru a modifica oricare din obiectele care constituie un grafic se poate acţiona folosind lista derulantă Chart Objects (obiecte din diagramă) sau, mai simplu prin dublu clic cu mouse-ul pe obiectul vizat.

17 Inserare Diagramă… 18 Vizualizare, Bare de instrumente, Diagramă

Formatarea graficului

Tipul graficului

Lista derulantă Chart Objects

Page 50: Limbaje de Program Are Si Baze de Date Curs

50 Software de sistem şi software de aplicaţie

3. Internet Ce este INTERNET-ul ?

INTERNET este cea mai mare colecţie de reţele de calculatoare, în sistem descentralizat care a devenit cel mai popular mijloc de schimb de informaţii. Prin intermediul INTERNET-ULUI abonaţii trimit şi primesc corespondenţă comercială, particulară (e-mail), angajează discuţii de grup pe orice temă (grupuri de discuţii), oferă servicii sau primesc oferte, se informează din domeniul comercial, marketing, cultură, tehnică etc. INTERNET-ul trebuie văzut ca o reţea globală formată din mii de reţele de calculatoare aparţinând diverselor instituţii guvernamentale, universităţi, companii private, servicii informaţionale comerciale precum şi abonaţi individuali. Oricine poate să aibă acces la informaţiile oferite, gratuit sau în schimbul unor taxe. Biblioteca Congresului SUA, de exemplu, oferă gratuit accesul la cele 100 milioane de obiecte din colecţia sa - cărţi, filme, hărţi, partituri, fotografii. TCP/IP (Transmission Control Protocol/Internet Protocol) este protocolul de transmisie utilizat de INTERNET. Reţeaua INTERNET din SUA este CIX (Commercial INTERNET Exchange) iar în Europa EUNet. Pentru a utiliza CIX sau EUNet utilizatorul trebuie să fie membru al INTERNET. Un instrument oferit de INTERNET este Mosaic, o interfaţă grafică ce permite utilizatorilor să vizioneze filme, imagini fotografice sau text, însoţite de sunet. Multe firme din lume comercializează software pentru accesul la INTERNET. Noile sisteme de operare pentru PC-uri începând cu Windows'95, Windows NT, Unix incorporează module software necesare conectării la INTERNET. Toţi utilizatorii de PC-uri pot comunica între ei, în mod text sau video/audio. Astfel această reţea multimedia devine o magistrală informaţională.

Cine guvernează INTERNET-ul ? Nu există o autoritate centrală pentru întreg INTERNET-ul. Acesta nu are preşedinţi, directori sau responsabili cu funcţionarea sa. Reţelele constitutive pot avea preşedinţi şi directori executivi, dar nu există o autoritate centrală pentru întreg INTERNET-ul. Nu există nici o firmă INTERNET Inc. care să colecteze plăţile de la toate reţelele INTERNET sau de la utilizatori. În schimb toată lumea plăteşte pentru partea sa. Există un mit că INTERNET-ul este gratis, dar adevărul este că cineva plăteşte pentru fiecare conexiune. De multe ori aceste plăţi nu sunt date de utilizatori, ceea ce dă iluzia de “acces gratis”. Reţelele se adună şi decid cum să se conecteze împreună, apoi creează fonduri pentru aceste interconexiuni. Un colegiu ori o corporaţie plăteşte pentru conectarea sa la o reţea regională, care la rândul ei plăteşte pentru un furnizor naţional pentru accesul la o reţea internaţională. Autoritatea ultimă privitoare la direcţia în care se va îndrepta INTERNET-ul revine Societăţii INTERNET sau ISOC. ISOC este o organizaţie de voluntari al cărei scop este să promoveze un schimb global de informaţie prin intermediul tehnologiei INTERNET. Ea stabileşte un consiliu format din

Page 51: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 51

membrii mai vechi ai INTERNET-ului, care are responsabilitatea conducerii tehnice şi a direcţiilor către care se va îndrepta INTERNET-ul. Utilizatorii INTERNET îşi pot exprima părerile prin intermediul INTERNET Engineering Task Force (IETF), altă organizaţie de voluntari care se întâlnesc regulat pentru a discuta probleme tehnice şi de funcţionare ale INTERNET-ului.

Cine sunt utilizatorii INTERNET ?

Peste 50% din activităţile INTERNET sunt comerciale, management, reclamă şi marketing. Clienţii cei mai importanţi au devenit băncile, companiile de publicitate, publicaţiile, companiile de consultanţă şi avocatură, companiile de vânzări prin corespondenţă, companiile specializate în studii de marketing, agenţii de informaţii comerciale şi publice. Pentru ca utilizatorul de servicii INTERNET să poată desfăşura o activitate susţinută este necesar să posede un calculator, eventual modem-linie telefonică individuală, software de conectare.

Utilizare Internet • E-MAIL. Prin poşta electronică se poate realiza schimbul de mesaje, ce reprezintă documente scrise, cu toţi abonaţii INTERNET din întreaga lume. Spre deosebire de mijloacele clasice schimbul de mesaje se poate face aproape instantaneu, eliminându-se riscul pierderii. • FAX. Fax-urile transmise prin INTERNET vor putea fi recepţionate rapid (faxurile transmise interurban se plătesc la tariful telefonic local, datorită conectării la un nod local). • Culegerea de informaţii din INTERNET. În INTERNET informaţiile se găsesc sub formă de fişiere ca pagini WEB. Apelarea fişierelor se face cu ajutorul unor programe FTP (File Transfer Protocol). Prin această metodă, se poate face transferul de fişiere spre şi dinspre orice server legat la INTERNET la tarife telefonice locale. Paginile WEB sunt documente ce conţin texte şi imagini. Utilizatorul îşi poate defini tema ce îl interesează, aceste programe putând căuta pe toate serverele legate la INTERNET toate informaţiile legate de tema căutată. • Publicitate în INTERNET. INTERNET-ul dă posibilitatea utilizatorului de a se prezenta cu ajutorul uneia sau a mai multor pagini WEB (texte, poze, grafice, animaţii, sunete) şi prin aceasta să se facă cunoscut. • Comerţul prin INTERNET. La paginile de prezentare (ale firmei proprii de exemplu) se pot adăuga şi cataloage de comandă pentru produse. Pe baza acestora orice client poate s| facă comenzi prin completarea unui formular aflat pe aceeaşi pagină WEB. După completarea formularului acesta este transmis prin INTERNET, iar comanda poate fi onorată în scurt timp. • Conferinţele tematice (FORUMS). În prezent există un număr mare de forumuri organizate după cele mai diverse criterii, aderarea la aceste forumuri fiind liberă. • Discuţii prin INTERNET. Prin INTERNET se pot purta discuţii libere cu toţi cei care sunt conectaţi la acest sistem.

Page 52: Limbaje de Program Are Si Baze de Date Curs

52 Software de sistem şi software de aplicaţie

3.1. Structura reţelei Internet

Internet-ul este o reţea globală formată din mii de reţele de calculatoare aparţinând diverselor instituţii guvernamentale, universităţi, companii private, servicii informaţionale comerciale precum şi abonaţi individuali. Conectarea fizică a calculatoarelor la reţea poate fi realizată prin linie telefonică (analogică sau digitală), prin cablu direct, prin radio sau prin satelit.

Informaţia este stocată în Internet sub formă de site-uri (pagini). Calculatoarele din reţea capabile să furnizeze informaţii se numesc Server (sau Host). Interconectările între diversele grupuri de calculatoare se fac cu ajutorul dispozitivului numit Router.

Principiul de funcţionare al Internet-ului este cel denumit „principiul client - server” (un utilizator trimite cereri către server şi primeşte servicii). Pentru a accesa informaţie pe Internet utilizatorul foloseşte un program client (cum ar fi un browser), în timp ce server-ul trebuie să ruleze un program server, cele două programe fiind dedicate aceluiaşi serviciu de Internet.

Internet Service Providers (ISP) sunt companii furnizoare de servicii Internet. Conectarea la un ISP se poate realiza prin linii telefonice (via modem) sau alte conexiuni (radio, satelit). Protocolul de transmisie este TCP/IP (Transmission Control Protocol/ Internet Protocol).

Program client Web (browser, navigator, viewer)

Program server Web

ProtocolDocument

Web

Internet

Page 53: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 53

Servicii Internet

Serviciu Descrierea serviciului

E-mail Poşta electronică. Permite trimiterea şi recepţionarea mesajelor de la alţi

utilizatori de Internet.

Gopher

Un instrument de căutare ce permite utilizatorilor să desfăşoare operaţii

de localizarea a informaţiilor printr-un sistem adecvat de meniuri. Este

înlocuit treptat de WWW.

FTP File Transfer Protocol. Reprezintă un sistem ce permite utilizatorilor

transferul de fişiere de pe un calculator pe altul.

Usenet

news Un sistem distribuit de buletine informaţionale referitoare la un anumit

subiect, pentru schimbul de articole între diverse grupuri de utilizatori

(newsgroup – uri).

WWW World Wide Web (prescurtat Web). Accesată utilizând un browser de

Web cum ar fi Netscape Navigator sau Internet Explorer, pentru

căutarea şi afişarea informaţiei stocate pe Internet.

IRC Internet Relay Chat (conversaţie pe Internet). Este un sistem de

discuţii ce permite utilizatorilor să converseze online.

Telnet Este un sistem ce permite conectarea la alte calculatoare şi rularea unor

aplicaţii sau accesul la fişiere aflate pe aceste sisteme.

Adrese Internet

Deşi din punct de vedere tehnic World Wide Web este doar o porţiune a lnternet-ului, acesta permite accesul la tot mai multe servicii. Web-ul reprezintă o combinaţie între TCP/IP, protocolul de transmitere a documentelor în reţea, cu o metodă complet nouă de localizare şi acces la documentele aflate pe diverse reţele. Mecanismul de localizare a informaţiilor transmise prin reţeaua Internet utilizează un şir de caractere numit localizator universal de resurse (URL - Universal Resource Locator), care identifică numele şi adresa fiecărui document disponibil în Web:

Tipul protocolului de server utilizat în locaţia

Page 54: Limbaje de Program Are Si Baze de Date Curs

54 Software de sistem şi software de aplicaţie

documentului. Un server configurat special pentru documentele Web utilizează protocolul de transfer al hipertextelor (HTTP – Hyper Text Transfer Protocol).

Tipul site-ului, în general WWW, FTP sau Gopher. Adresa calculatorului gazdă (numele unui server)

constituită din: o subdomeniu (în general numele unei reţele, al unei

universităţi sau al unei firme); o domeniu - abrevieri din 2 sau 3 litere ale instituţiei,

organizaţiei sau ţării care deţine domeniul respectiv (com, edu,net, ro)

Locaţia unui document în reţeaua respectivă (directoare şi subdirectoare, urmate de numele fişierului).

Exemplu: http://www.microsoft.com/msoffice/train_cert/word.htm Protocol: http Tip site: www Subdomeniu: microsoft Domeniu: com Document: msoffice/train_cent/word.htm Un document din Web conţine un hypertext (text, grafică, audio, video) şi are asociată o adresă care permite accesul la acesta direct din alte documente cu ajutorul limbajului de marcare HTML (Hypertext Markup Language). De la un document la altul este creată o legătură (Hyper-Link) sub forma unor cuvinte subliniate. Efectuarea unui clic pe o legătură iniţiază încărcarea documentului de pe calculatorul gazdă al acestuia.

3.2. Instrumente Web

Browser

Un document din Web se numeşte pagină Web. Un Browser (Navigator, Viewer) este un pachet deschis şi integrat de software pentru Internet, care furnizează un set complet de instrumente integrate pentru toate categoriile de utilizatori, de la servicii

Page 55: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 55

Back Forward

Stop History Mail

PrintAddress

elementare (transmiterea mesajelor e-mail, afişarea de pagini Web, deplasarea între diferite site-uri Web, salvarea, transferul, copierea sau tipărirea documentelor găsite, evidenţa locurilor vizitate) la funcţionalităţi complexe pentru conferinţe, difuzare în reţea şi creaţii Web. Cele mai utilizate navigatoare sunt: Internet Explorer, Netscape Comunicator, Opera, Mozilla, etc. Produsele oferă e-mail integrat şi servicii de ştiri (noutăţi), marcaje de pagină pentru însemnarea site-rilor interesante, facilităţi de securitate pentru a preveni accesul neautorizat la informaţii despre utilizatori, precum şi alte trăsături care facilitează navigarea prin Web.

Afişarea documentelor asociate (alcătuind un site) în spaţiul de afişare al browser-ului începe întotdeauna de la pagină iniţială (homepage). Navigarea în Web presupune utilizarea unor opţiuni care să permită executarea unor operaţii cum ar fi:

Introducere adresei documentului în caseta Address. Trecerea la afişarea paginii anterioare sau următoare (Back,

Forward).

Page 56: Limbaje de Program Are Si Baze de Date Curs

56 Software de sistem şi software de aplicaţie

Mărirea spaţiului de afişat la întregul ecran (Fullscreen). Folosirea istoricului (History), o listă a celor mai recente

pagini Web vizitate, pentru selecţia adreselor. Întreruperea transportului paginii aflată în curs de încărcare

(Stop). Imprimarea documentului (Print). Folosirea serviciilor de e-mail (Mail).

Instrumente de căutare

Un instrument de căutare (numit şi motor de căutare) este o aplicaţie din Web care permite căutarea anumitor site-uri Web pe baza unor cuvinte sau concepte cheie. Motoarele de căutare (ex. Altavista, Google) utilizează un program numit spider (robot) care se deplasează automat prin structura hipertext a Web-ului, găseşte un document, apoi identifică toate documentele referite de primul. După regăsirea documentelor, acestea sunt trecute într-o listă de index prin care utilizatorul este dirijat spre pagina Web corespunzătoare. Navigarea prin Web necesită cunoaşterea diferitelor instrumente de căutare disponibile şi a particularităţilor acestora. De exemplu, Yahoo este organizat după subiect, deci este foarte potrivit pentru căutarea unor colecţii de resurse legate de un singur subiect. Fiecare instrument de căutare este prevăzut cu propriile reguli de dirijare a unui proces de căutare (de aceea se recomandă citirea fişierelor de Help disponibile în homepage-ul instrumentului). Cel mai popular motor de căutare este Google. Google utilizează tehnici sofisticate de căutare pentru a găsi paginile care sunt importante şi relevante. De exemplu, când Google analizează o pagină, urmăreşte ce relevanţă au inclusiv legăturile din acea pagină. De asemenea, Google preferă paginile în care termenii căutării sunt unii lângă alţii. Caracteristici Google: o "şi" este implicit. Google afişează doar paginile care includ toţi termenii căutării. Nu este necesară includerea unui "and" între termeni. Pentru a rafina căutarea, se pot adăuga alţi termeni. o Cuvinte stop. Google ignoră cuvinte şi caractere comune, cunoscute drept cuvinte stop. Google sare automat termeni ca "http"

Page 57: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 57

şi ".com", ca şi anumite cifre sau litere singulare, deoarece aceşti termeni rareori ajută la rafinarea căutării, în schimb o pot încetini semnificativ. o Semnul "+" este folosit pentru a include cuvinte stop în căutare. Este necesară includerea unui spaţiu înainte de semnul "+" (se poate, de asemenea, include semnul "+" în căutări frazale). o Fiecare rezultat Google conţine unul sau mai multe citate din pagina web, care arată cum apar termenii căutării în context. o Familia cuvântului. Pentru a furniza cel mai bun rezultat, Goolge nu caută după familia de cuvinte şi nici nu suportă căutare parţială. Altfel spus, Google caută exact cuvântul introdus. Căutarea "googl" sau "googl*" nu va conţine "googler" sau "googlin". o Google nu face diferenţă între majuscule şi minuscule. Toate literele, indiferent cum sunt acestea introduse, vor fi considerate ca minuscule. De exemplu, căutări după "google", "GOOGLE" şi "GoOgLe" vor da aceleaşi rezultate. o Căutările Google sunt insensibile la accente şi diacritice. Adică, [Muenchen] şi [München] vor găsi aceleaşi pagini. Pentru a se face discriminare între astfel de cuvinte, se poate folosi semnul +, ca în [+Muenchen] faţă de [+München].

O altă metodă folosite de căutare a informaţiei Web (Altavista) este prin cuvinte cheie (keywords). Pot fi utilizate cuvinte, fraze sau cuvinte cheie compuse cu ajutorul unor operatori: + (plus), - (minus) sau * (asterisc). Frazele de căutare trebuie delimitate prin ” (ghilimele). Exemple, pentru cuvintele Mona Lisa:

mona lisa Găseşte documentele care conţin ambele cuvinte

în oricare variantă cu majuscule (Mona, MONA,

liSA, Lisa).

Mona Lisa Găseşte documentele care conţin cuvintele

Mona Lisa fără a lua în considerare variante cu

majuscule.

Page 58: Limbaje de Program Are Si Baze de Date Curs

58 Software de sistem şi software de aplicaţie

+mona +lisa Caută documentele care conţin cuvintele fără a

ţine cont de ordinea în care apar (a nu se lăsa

spaţiu după semnul plus).

"Mona Lisa" Căutare după frază (conţinutul frazei este

respectat întocmai).

+"Mona Lisa" -Louvre

Găseşte documentele care conţin fraza

"Mona Lisa" dar care nu conţin cuvântul "Louvre".

+ Mona +Lis* Caută documente conţinând cuvântul Mona şi

oricare cuvânt care începe cu Lis (asteriscul are

semnificaţie de „orice”).

Instrumentele de căutare pot pune la dispoziţia utilizatorilor şi opţiuni de căutare mai complexe Advanced Search, folosind operatori logici (AND, NOT, OR) sau identificatori de domeniu şi adrese Web.

Exemple:

cars AND bmw AND

mercedes

Găseşte documentele care conţin aceste

cuvinte ţinând cont de ordinea în care

sunt scrise (primul este cars).

(bmw AND mercedes)

AND NOT (used OR

ferrari)

Caută documentele care conţin cuvintele

bmw şi mercedes dar care nu conţin used

sau ferrari

Domain:gov AND nuclear

power plant*

Limitează căutarea la domeniu

guvernamental căutând fraza nuclear

power plant (sau nuclear power plants).

Golf AND Monterey AND

url:golf Limitează căutarea la paginile care includ

fraza Golf Montery şi la adresa web golf.

Page 59: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 59

3.3. Poşta electronică

Fiecare utilizator (user) care foloseşte serviciul de poştă electronică are o cutie poştală păstrată pe server-ul la care are deschis contul (account number). Adresa cutiei poştale este de fapt identificatorul utilizatorului de e-mail şi este stabilită de către administratorul de ISP sau poate fi obţinută de pe site-urile care oferă servicii gratuite de e-mail (cum ar fi yahoo.com, hotmail.com). Account number este compus din numele utilizatorului urmat de semnul @ şi numele server-ului de e-mail ca de exemplu: [email protected]. Dispunând de un cont (cutie poştală) de e-mail se pot trimite sau recepţiona mesaje (corespondenţă electronică) folosind un program specializat pe poştă electronică (Microsoft Outlook, Netscape Messenger, Eudora, etc.). Accesul la propria cutie poştală presupune declinarea identităţii de către utilizator, printr-un dialog cu server-ul, care solicită: numele utilizatorului şi parola de identificare (aceasta nu apare vizibilă când se tastează de către utilizator). Un mesaj e-mail, fie că este recepţionat, fie că este expediat, are următoarele componente:

adresa e-mail a expeditorului (From); adresa e-mail a destinatarului (To); data şi ora la care a fost emis (sunt completate automat de

către sistem); subiectul (titlul) mesajului (Subject); conţinutul (textul propriu-zis) mesajului.

Recepţionarea mesajelor sosite se realizează prin comanda explicită pusă la dispoziţie de programul de e-mail („Get Message”, „Send and Receive”, „Retrieve”, „Check Mail”,…). Dacă s-a realizat corect conexiunea, mesajele (scrisorile) vor fi transportate de pe server pe calculatorul client.

Page 60: Limbaje de Program Are Si Baze de Date Curs

60 Software de sistem şi software de aplicaţie

Trimiterea unui mesaj se iniţiază din programul de e-mail printr-o comandă de genul „New Message” şi presupune în primul rând completarea casetei To: cu adresa destinatarului. Acelaşi mesaj poate fi trimis mai multe destinaţii dacă, în câmpul de adrese, se scriu adresele separate prin ”;” (punct şi virgulă). Câmpurile Cc: (Carbon copy, copie la indigo) şi respectiv BCc: (Blind Cc) realizează copierea mesajului, acesta din urmă făcând duplicarea fără ca destinatarul principal (cel înscris în câmpul „To:”) să-şi dea seama că mai sunt şi alţi destinatari. O dată compus mesajul, se poate expedia prin comanda „Send”, disponibilă din bara de instrumente a programului de poştă electronic. Scrisorile recepţionate sau trimise sunt stocate ca fişiere, într-o structură de directoare care conţine:

directorul Inbox – scrisori recepţionate; directorul Outbox – scrisori care urmează a fi trimise; directorul Sent Items – scrisori trimise; directorul Deleted Items (Trash) – scrisori trimise sau

recepţionate şterse (dar nu eliminate definitiv). Pe lângă posibilităţile de recepţionare sau expediere amintite anterior, programele de e-mail oferă şi alte facilităţi cum ar fi:

Attachment: posibilitatea de a anexa mesajului fişiere (prin comanda „Attach File”, „Insert File”), care ajung la destinaţie exact în forma în care au fost trimise.

Forward: reexpedierea mesajului curent (cel citit) către o altă adresă e-mail.

Reply: o metodă de a răspunde la mesajul curent: programul creează imediat un mesaj nou în care completează automat câmpul destinaţie cu adresa expeditorului mesajului original, câmpul de subiect cu subiectul mesajului, precedat de particula „Re:” şi, eventual, include în zona mesajului propriu-zis şi mesajul iniţial.

Page 61: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 61

3.4. Comerţ electronic

Comerţul electronic este o tranzacţie financiară pentru un

produs sau serviciu, efectuată printr-o reţea de calculatoare (Internet). Comerţul electronic, adesea cunoscut sub denumirea de „e-com-merce", devine pe zi ce trece o necesitate, astfel încât multe companii au făcut din acesta o parte importantă a activităţii lor.

Comerţul electronic se împarte în două categorii: Comerţ electronic de consum (cumpărături pe Web).

Comerţul electronic de consum constă în vânzarea de bunuri şi servicii direct către clienţi persoane fizice. Printre exemple se numără vânzările de software, înregistrări muzicale, calculatoare, electrocasnice, cărţi, etc.

Comerţ electronic între firme. Comerţul electronic între firme

presupune tranzacţii între două companii. Acest tip de comerţ reprezintă, practic, cea mai mare parte din piaţa comerţului electronic. Precursorul acestui tip de tranzacţii este setul de standarde EDI - Electronic Data Interchange (Schimb electronic de date). Sistemul EDI are o prezenţă importantă în universul corporativ şi guvernamental, unde zilnic se fac electronic multe tranzacţii. Pe viitor, acest tip de comerţ va fi derulat de companiile capabile să acceadă la şirurile web ale altor companii pentru a comanda produse, a vizualiza nivelul stocurilor, a face verificarea comenzilor şi a efectua manual sau automat achiziţii de materiale.

Comerţul electronic nu a ajuns încă la fructificarea întregului său potenţial. Doar o mică parte din firme şi-au pus în practică o strategie de comerţ electronic şi multe n-au reuşit încă să aibă succes în această direcţie. Şi totuşi, există suficiente exemple de reuşită în domeniul comerţului electronic, pentru a demonstra că poate fi o sursă de venituri pentru companiile potrivite.

Tranzacţiile de comerţ electronic au loc pe pagini World Wide Web care arată, în principiu, la fel ca oricare alte pagini de pe Internet. Există, însă, multe elemente complexe care depăşesc nivelul unui site normal de Internet, pentru a încorpora multe funcţii diferite, cum ar

Page 62: Limbaje de Program Are Si Baze de Date Curs

62 Software de sistem şi software de aplicaţie

fi lansarea de comenzi, securizarea, autorizarea creditului, urmărirea comenzilor şi sistemele de plată.

3.4.1. Site de comerţ electronic

Un site de comerţ electronic trebuie să cuprindă următoarele

patru componente: 1. Prezentare comercială electronică. În esenţă, e vorba de un

site web care să permită prezentarea produselor pe Internet. Este adesea denumit catalog on-line şi, în general, este organizat în aşa fel încât utilizatorii să-l poată răsfoi pentru a detecta descrieri ale bunurilor care se comercializează. 2. Un coş de cumpărături virtual. Trebuie să existe o modalitate

prin care clienţii să poată alege şi comanda bunuri şi servicii. Clienţii aleg articolele dorite şi le stochează în coşul virtual, până în momentul când sunt gata să facă plata. 3. Una sau mai multe metode de plată. Clienţii pot plăti în mai

multe modalităţi posibile, inclusiv cu carte de credit sau prin diverse alte metode electronice de plată. Indiferent de metoda folosită, plăţile se fac electronic, fără transfer fizic de bani. Atunci când se folosesc cărţi de credit, numărul cărţii de credit se criptează şi se trimite electronic prin Internet către un server de tranzacţii, după care se face verificarea creditului cumpărătorului şi se trece suma în contul cărţii de credit. Alte opţiuni de plată comportă diverse metode de transferare a fondurilor. 4. Integrare cu alte servicii de operaţiuni interne. Aceasta

este o componentă opţională şi include automatizarea anumitor operaţiuni: onorarea comenzilor, facturarea, producţia, expedierea, gestiunea stocurilor şi chiar procesele de lansare a comenzilor de aprovizionare către furnizori. Această integrare completă, pe tot parcursul traseului de la client la furnizori, presupune un grad ridicat de complexitate şi este îndeobşte cunoscut sub denumirea de „activitate electronică de afaceri" - „electronic business". Există situri dedicate care pot prelua şi onora comenzi în mod foarte eficient, fără intervenţie umană,

Page 63: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 63

automatizând întregul proces de activitate al unei companii, de la începutul şi până la sfârşitul lanţului valorii. Scopul activităţii electronice de afaceri este să realizeze o eficienţă maximă a costurilor de vânzare.

O unitate comercială implementează un sit web de comerţ electronic pentru a-şi lărgi aria de desfacere dincolo de zona locală proprie. Un client vede catalogul on-line (adică prezentarea comercială electronică) şi găseşte produsele pe care le doreşte, după care îşi înregistrează achiziţia printr-un browser de web sigur, împreună cu numărul criptat al cărţii de credit, printr-o conexiune sigură pe Internet. Tranzacţia este trimisă la serverul de tranzacţii, care apoi transmite datele cărţii de credit la instituţia financiară a comerciantului, pentru verificare. Se face verificarea financiară şi tranzacţia este automat finalizată şi trecută în creditul

comerciantului. Serverul de web trimite informaţiile aferente comenzii clientului la serverul de operaţiuni interne al comerciantului. Ca parte din soluţia de activitate electronică a companiei, serverul de

Internet

Internet

Serverul de operaţiuni interne integrate al comerciantului execută

prelucrarea comenzii, facturarea, expedierea, producţia şi gestiune

stocurilor

Serverul de comerţ electronic pe web al comerciantului: prezentare

comercială electronică şi coş de cumpărături virtual

Serverul de tranzacţii validează cartea de credit şu face tranzacţia

cu instituţia financiară a comerciantului

Stocul epuizat declanşeazăcomanda la furnizor

Internet

Produsul expediat la consumator

Trimite datele

comenzii la server

INSTITUTIŢIA FINANCIARĂ

CONSUMATOR

Page 64: Limbaje de Program Are Si Baze de Date Curs

64 Software de sistem şi software de aplicaţie

producţie primeşte informaţiile privind comanda clientului în baza sa de date şi generează comanda. Comanda este apoi introdusă în softul de onorare a comenzilor folosit de comerciant, unde este pre-lucrată.

Softul integrat de expediere întocmeşte până şi buletinul de expediţie, cu informaţii din baza de date privind greutatea de transport a produsului şi distanţa. Softul de expediţii al comerciantului înregistrează produsul şi acesta este ridicat de compania de transport, care începe să urmărească traseul de expediere a coletului.

Clientul poate să verifice oricând pe Internet în ce etapă de expediţie se află produsul. Singurul moment când cineva intervine fizic în acest proces este la împachetarea şi livrarea produsului.

Pe măsură ce se acumulează comenzi, serverul urmăreşte nivelul stocurilor şi evidenţa vânzărilor, generează comenzi de producţie, întocmeşte comenzi de aprovizionare către principalul furnizor al comerciantului.

Unele bunuri pot fi distribuite electronic. De exemplu, programele informatice şi înregistrările muzicale pot fi descărcate de pe Internet după ce clientul le-a plătit.

Avantajele comerţului electronic se referă la:

o Distribuţie. Activitatea unui mijlocitor sau distribuitor plătit poate fi substituită electronic. Adesea, se face referire la acest lucru cu termenul de „dezintermediere". o Arie mai largă de acoperire a pieţei. Comerţul electronic poate asigura o acoperire geografică mai mare decât cea realizată, în mod normal, cu resurse limitate. Expansiunea geografică normală necesită adesea mai mult personal de vânzări, mai mulţi distribuitori şi mai mulţi bani. o Eficienţă. Multe soluţii de activitate electronică integrează verificarea creditului, contabilitatea, gestiunea stocurilor, aprovizionarea şi procesele de producţie în cadrul soluţiei de comerţ electronic.

Page 65: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 65

Soluţiile de comerţ electronic pot aduce avantaje şi clienţilor. Comerţul electronic le oferă în general clienţilor posibilitatea de a face cumpărături oricând şi oriunde, deci comoditate; preţuri mai bune (uneori) decât ar obţine în altă parte, o selecţie mai bună şi variante mai bune de a cumpăra.

Securitate este cea mai mare problemă cu care se confruntă comerţul electronic. Ameninţarea cu încălcarea securităţii există atât pentru consumatori, cât şi pentru comercianţi. În ciuda celor mai bune metode de securizare şi criptare, există întotdeauna riscul ca orice tranzacţie să poată fi interceptată sau să se intre într-un server în mod ilicit. Dar pericolul real e mult mai mic. Pentru ca tranzacţiile să fie sigure, trebuie folosit software de criptare.

O soluţie spre comerţul electronic este găzduirea sitului la un furnizor de servicii Internet (ISP), mulţi dintre furnizorii ISP oferind softul necesar şi serviciile necesare pentru elaborarea unui sit web. Mulţi producători de servere vând servere special făcute pentru situri web.

A exploata la maximum o soluţie completă de activitate electronică de “cibervânzare” înseamnă integrarea în funcţiile de operaţiuni interne, cum ar fi facturarea, gestiunea stocurilor şi producţia. Soluţiile de activitate electronică impun un angajament uriaş în materie de timp şi de bani, precum şi ajutorul unui consultant de specialitate.

3.4.2. Vânzarea on-line

Securitatea. Securitatea este preocuparea numărul unu a

consumatorilor care cumpără de pe Internet. Trebuie ţinut pasul cu tehnologia cea mai recentă în materie de securitate. În prezent, standardul principal pentru tranzacţii sigure pe Internet este cel denumit SSL (Secure Sockets Layer - Strat de socluri sigur), care utilizează criptarea pentru a codifica informaţiile de natură financiară, cum ar fi numerele cărţilor de credit. Aceasta garantează practic că nimeni nu va putea intercepta tranzacţiile de pe Internet şi nici nu va putea descifra numerele de pe cărţile de credit ale utilizatorilor.

Page 66: Limbaje de Program Are Si Baze de Date Curs

66 Software de sistem şi software de aplicaţie

Tehnologia de criptare, denumită SET (Transactions Secure Electronic), este standardul elaborat de MasterCard şi Visa pentru tranzacţiile cu cărţi de credit. Pot fi puse în funcţiune metode alternative de plată, dar puţin probabil să fie tot atât de populare ca utilizarea numerelor criptate de pe cărţile de credit decât, poate, cu excepţia cumpărătorilor „înrăiţi" de pe Internet, care nu se lasă intimidaţi de nimic. Tranzacţia în sine nu reprezintă decât o parte a preocupării pentru securitate. Interceptarea întâmplătoare a unei tranzacţii financiare este o mare lovitură pentru un hacker. Un avantaj al tehnologiei SET este că informaţiile aferente cărţilor de credit sunt stocate la instituţia financiară a comerciantului şi nu pe serverul acestuia, deci nu există nici o şansă să vă fie furate date din sediu.

Metoda de plată. Modalitatea de plată cea mai des folosită pe Internet este, de departe, utilizarea numerelor criptate ale cărţilor de credit. Criptarea se face prin codificarea numerelor de pe cartea de credit a cumpărătorului şi decriptarea lor pe server. Atât protocolul SSL, cât şi SET, criptează date aferente cărţilor de credit. Există, totuşi, mai multe soluţii alternative de efectuare a plăţilor pe Internet. Sistemele electronice de plată cunoscute sub denumirea de „bani electronici" („e-cash") şi „bani digitali" („digital cash") permit comercianţilor să debiteze conturile bancare ale clienţilor cu sumele cuvenite. Avantajul acestui mod de plată este că utilizatorii nu mai trimit prin Internet numerele cărţilor de credit. Portofelele electronice stochează pe unităţile hard ale utilizatorilor informaţii de pe cartea de credit şi elemente digitale de identificare. De fiecare dată când utilizatorii fac o achiziţie, calculatorul lor trimite informaţii criptate la magazinul electronic, pentru efectuarea plăţii, iar în cartea lor de credit apare operaţiunea exact ca pentru oricare altă tranzacţie. Desigur, fiecare dintre aceste sisteme de plată include şi posibilitatea de validare a creditului înainte de autorizarea achiziţiei. Cartela inteligentă funcţionează ca o carte de debit şi poate fi introdusă într-un cititor de cartele aşezat lângă calculator, pentru a plăti o tranzacţie, şi poate chiar să fie reîncărcată printr-un ciberbancomat.

Page 67: Limbaje de Program Are Si Baze de Date Curs

Software de sistem şi software de aplicaţie 67

3.4.3. Sisteme electronice de plată

Mod de plată Descriere

Criptare carte de

credit

Autorizarea cărţii de credit şi criptarea numărului

cărţii de credit

Bani electronici /

Bani digitali

Utilizează conturi bancare electronice pentru

transferul numeric al banilor digitali

Portofele electronice Stochează informaţii ale cărţii de credit şi certificări

digitale pe calculator; poate folosi mai multe

modalităţi de plată şi stochează chitanţele pentru

tranzacţii

Microplăţi Pentru plăţi în sumă foarte mică: între 0,25€ şi 10€

Cartele inteligente Cartelele „încărcate" electronic sunt folosite prin

introducere în cititoare de cartele inteligente,

conectate la calculator (adică dispozitive hard

adăugate la calculator)

Construirea unei prezenţe on-line poate fi un mare pas

înainte pentru orice firmă. Utilizarea eficientă a unui sit pe World Wide Web poate ajuta majoritatea companiilor să ajungă la noi clienţi potenţiali, să-şi micşoreze costurile de asistenţă şi să-şi îmbunătăţească imaginea. Prin extinderea prezenţei pe Web pentru a cuprinde şi tranzacţii electronice, pot spori în mod semnificativ vânzările şi se pot reduce costurile de găsire a clienţilor şi de vânzare, rezultând îmbunătăţirea propriilor procese interne de activitate.

Page 68: Limbaje de Program Are Si Baze de Date Curs

68 Structuri de date şi programare structurată

Structuri de date şi

programare structurată

1. Conceptul de algoritm

Definiţie Algoritmul este un concept intuitiv reprezentând o mulţime finită şi ordonată de paşi executabili descrişi fără echivoc, care, pornind de la o mulţime de valori, numită domeniul de definiţie (intrarea), produce în timp finit o altă mulţime de valori (ieşirea).

Termenul de algoritm derivă de la numele matematicianului arab Abu Ja’far Mohamed ibn Mũsa al Kahowârizmî.

Procesul de rezolvare a problemelor cu ajutorul calculatorului constă în două activităţi: dezvoltarea algoritmului şi reprezentarea acestuia ca program. Procesul de elaborare al algoritmului reprezintă etapa cea mai importantă, obligatorie şi de cele mai multe ori cea mai dificilă. Descoperirea algoritmului înseamnă găsirea unei metode de rezolvare a problemei, claritatea şi calitatea acestuia impunând fiabilitatea şi calitatea programului. În contextul dezvoltării programelor, etapele de rezolvare ale problemelor corespund cu cele definite de matematicianul G. Polya în 1945:

Înţelegerea problemei este etapa cea mai importantă şi constă în: • definirea datelor de intrare (tip, proprietăţi, domeniul

valorilor), • definirea rezultatelor (ieşirile),

Page 69: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 69

• stabilirea relaţiilor dintre date şi rezultate. Conceperea modului de rezolvare a problemei şi descrierea acestuia printr-un algoritm. Reprezentarea algoritmului ca program. Evaluarea programului din punct de vedere al corectitudinii şi ca potenţial instrument pentru rezolvarea altor probleme.

Acest proces poate fi reprezentat schematic astfel:

Reprezentarea unui algoritm trebuie să ţină cont de

următoarele caracteristici: • Claritatea – presupune inteligibilitatea şi ordonarea exactă

a paşilor pentru o exprimare corectă şi fără ambiguităţi. • Generalitatea – aplicarea algoritmului la o clasă mai mare

de probleme. • Finititudinea – soluţionarea problemei într-un timp

determinat.

În practica reprezentării algoritmilor se utilizează diverse forme cum ar fi schemele logice, limbajul algoritmic (pseudocod), tabelele de decizie, limbajele de programare, însă, indiferent de modul de descriere al acestora, se stabileşte o mulţime bine definită de blocuri elementare numite primitive. Definirea precisă a primitivelor duce la îndeplinirea dezideratelor de claritate şi determină modul în care aceste primitive pot fi combinate pentru reprezentarea ideilor mai complexe. Fiecare primitivă este constituită din două elemente: sintaxa şi semantica. Sintaxa se referă la reprezentarea simbolică a primitivei, în timp ce semantica se referă la conceptul reprezentat (semnificaţia primitivei).

Problema Algoritm

+ Date

Program

abstractizare codificare

Page 70: Limbaje de Program Are Si Baze de Date Curs

70 Structuri de date şi programare structurată

Ansamblul de primitive ales pentru reprezentarea algoritmilor trebuie să fie adaptat la specificul de calcul electronic. De obicei aceste primitive sunt definite la un nivel mai înalt decât cel oferit de limbajul în cod maşină, astfel încât abordarea construcţiei şi analizei algoritmilor se face prin prisma unor concepte moderne, cum ar fi principiile programării structurate.

2. Principiile programării structurate

Programarea structurată este o metodă de concepere, organizare, codificare, testare, menţinere şi documentare ale algoritmilor de calcul prin definirea unui set de primitive grupate în trei forme de structuri fundamentale: secvenţa, selecţia şi ciclul. Aceste structuri sunt constituite în scopul optimizării procesului de programare prin realizarea unor produse program fiabile şi de bună calitate. Termenul de “programare structurată” este introdus în 1972 de E.W. Dijkstra, însă fundamentarea matematică este făcută de Böhm şi Jacopini într-un articol publicat în 1966. Construirea algoritmilor, conform principiilor de programare structurată are în vedere două elemente:

Acţiunea elementară, tradusă în instrucţiuni simple (instrucţiunea de atribuire, instrucţiunea de apel subprogram, instrucţiuni de intrare/ieşire, subprograme).

Condiţia (control, test, expresie booleană) cu valoare de adevărat (True) sau neadevărat (False).

Acţiune

Condiţie C

True

False

Page 71: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 71

Acţiune a Acţiune b

Condiţie C

True

False

Acţiune a

Acţiune b

True

Condiţie C

False

Acţiune a

Un algoritm adaptat programării structurate se reprezintă prin trei primitive astfel (structura D – Dijkstra):

Secvenţa (una sau mai multe acţiuni elementare). Această primitivă se va nota: a; b

Selecţia (structura alternativă). Această primitivă se va nota: IF C THEN a ELSE b

Ciclul cu test iniţial (structura repetitivă, iteraţia). Această primitivă care semnifică repetarea acţiunii atât timp cât este îndeplinită condiţia C va fi notată: WHILE C DO a

O extensie a structurii D este structura D’ care conţine:

Structura D.

Selecţia redusă (selecţia pseudoalternativă). Această primitivă se va nota: IF C THEN a

Ciclul cu test final (structura repetitivă condiţionată posterior). Notaţie: REPEAT a UNTIL C

Condiţie C

True

False

Acţiune a

False

True

Condiţie C Acţiune a

Page 72: Limbaje de Program Are Si Baze de Date Curs

72 Structuri de date şi programare structurată

Selecţia multiplă (structura alternativă multiplă). Notaţie: CASE OF i 1:a1 2:a2 … n:an

Conform teoremei de structură al Böhm – Jacopini, orice algoritm conţinând o secvenţă de structuri D sau D’ este un algoritm de programare structurată. Una din metodele de proiectare a algoritmilor este metoda rafinării pas cu pas. Această metodă îşi propune împărţirea problemei în mai multe subprobleme (permiţând elaborarea algoritmilor în mai multe etape), în ideea că fiecare în parte este mai uşor de rezolvat decât problema în ansamblul ei. Din acest punct de vedere rafinarea pas cu pas este o metodologie descendentă (metoda “top – down”, de “sus în jos”). Următorul algoritm, schematizat sub forma unui program structurat,

poate fi descompus succesiv până la ultimul nivel, astfel:

s2s1 s3

s5

False

C1

a1

False

True

False

True

C2

a4 C3

a3

a2

C4 a6

a5

True

True

False

s4

Caz i

i=1

i=n

Acţiune a1

Acţiune an

Page 73: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 73

P: s1; s2; a6

s1: IF C1 THEN s3 ELSE s4 s3: a1; a2 s4: IF C2 THEN a3 ELSE s5 s5: REPEAT a4 UNTIL C3 s2: WHILE C4 a5

Rezultă un program care poate fi scris sub forma:

IF C1 THEN a1; a2 ELSE IF C2 THEN a3 ELSE REPEAT a4 UNTIL C3 WHILE C4 a5 a6

3. Elemente din teoria bazelor de date

3.1. Structuri de date

Definiţie O structură de date defineşte un grup de date (omogene sau eterogene) între care s-au stabilit o serie de legături în scopul realizării unor mecanisme de identificare, selecţie şi prelucrare a componentelor acestui grup. Organizarea datelor în structuri se realizează pe două nivele: logic şi fizic. Procesul de prelucrare a datelor (mai ales când acestea sunt de volum mare) impune necesitatea ca acestea să fie uniform structurate, conform unor modele – nivelul logic. La nivel fizic forma de organizare şi conservare a datelor este fişierul, care permite stocarea, identificarea şi consultarea datelor memorate pe suporturile de stocare. Fiecare fişier cuprinde un grup de elemente numite înregistrări, articole (record). Înregistrarea este o entitate semantică care asociază (prin legături) date de tip diferit, conform modelului de organizare utilizat.

Page 74: Limbaje de Program Are Si Baze de Date Curs

74 Structuri de date şi programare structurată

Materiale Produse

M 2

M1 0 M3 0

M4 0 0 P1

0 P2

legături interne legături externe

Studenţi Matricole

S2 0

S3 0

S1 0 0 M1

0 M2

0 M3

3.1.1. Tipuri de legături între diferite colecţii de date

Elementele (numite şi realizări) unei colecţii de date intră în anumite legături (asocieri). Ele pot fi legături în cadrul aceleiaşi colecţii (legături interne) sau legături între colecţii diferite (legături externe). De exemplu pentru colecţiile de date Produse şi Materiale legăturile interne rezultă prin aceea că mai multe materiale aparţin aceluiaşi sortiment iar cele externe prin faptul că mai multe materiale participă la realizarea unui produs, aşa cum unul sau mai multe produse se pot obţine pe seama unui singur material. Legăturile între realizările diferitelor colecţii de date pot fi binare şi n-are. Legăturile binare sunt determinate de existenţa a două colecţii de date numite domeniu şi codomeniu (legăturile interne sunt relaţii binare la care domeniul şi codomeniul sunt identice). Se disting următoarele tipuri de legături:

• legături „unu la unu” (1 - 1 sau biunivoce). Unui element din domeniu îi corespunde un singur element din codomeniu şi invers. Exemplu: relaţia dintre colecţiile de date Studenţi şi Matricole. O matricolă este atribuită unui singur student, iar un student poate beneficia de o singura matricolă.

Page 75: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 75

Grupe Studenţi

G2 0

G1 0

0 S1

0 S2

0 S3

0 S5

0 S4

Materiale Produse

M 2

M1 0 M3 0

M4 0 0 P1

0 P2

0 P3

d1 d2 d3 dn

• legături „unu la mulţi” (1- n). Unui element din domeniu îi corespund zero una sau mai multe realizări din codomeniu. De exemplu un student face parte dintr-o singură grupă, o grupă poate avea mai mulţi studenţi.

• legături „mulţi la mulţi” (m - n). Unui element din domeniu îi corespund mai multe realizări din codomeniu corespondenţa realizându-se şi invers. De exemplu un produs este realizat din mai multe materiale, acelaşi material folosindu-se la fabricarea mai multor produse.

Legăturile n-are sunt legăturile prin care sunt asociate mai multe colecţii de date (ele pot fi descompuse în legături binare). Aceste tip de legături este luat în considerare în algebra relaţiilor care constituie baza teoretică pentru tratarea bazelor de date relaţionale.

3.1.2. Tipuri de structuri de date

Principalele tipuri de structuri de date care impun modul de organizare al datelor sunt structura liniară, structura arborescentă, structura reţea, şi structura relaţională. Structura liniară este definită printr-o relaţie de ordine pe un grup de date sub forma denumită listă.

Page 76: Limbaje de Program Are Si Baze de Date Curs

76 Structuri de date şi programare structurată

Furnizor Sortiment Materiale

F1 F2

S1

S2

M1 M2

M4 M3 S3

a2 a1

r

b4 b5 b1 b2 b3

a3

b6 b7

c1 c2

Nivel 0

Nivel 1

Nivel 2

Nivel 3

Elementele unei liste sunt înlănţuite conform următoarelor principii:

a. orice element neterminal al listei are un succesor unic (listă simplu înlănţuită);

b. primul element nu are predecesori; c. ultimul element nu are succesori; d. dacă ultimul element se înlănţuie cu primul element lista se

numeşte listă circulară; e. dacă înlănţuirea se defineşte şi în sens invers (de la fiecare

element al listei spre predecesorul său) lista se numeşte listă dublu înlănţuită.

Exemplu:

Structura arborescentă (ierarhică sau descendentă) este definită printr-o relaţie de ordine pe un grup de date astfel:

a. elementele grupului de date se numesc noduri şi sunt dispuse pe nivele;

b. există un singur nod pe primul nivel – nod rădăcină; c. orice nod diferit de rădăcină are un predecesor imediat unic; d. orice nod neterminal are un număr finit de succesori imediaţi; e. legăturile stabilite între noduri sunt de tipul 1 – n (o structură

arborescentă definită numai prin legături de tip 1 –2 se numeşte arbore binar).

Page 77: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 77

Această structură se bazează pe existenţa unei mulţimi de colecţii de date şi o mulţime de legături ierarhice. Fiecărui tip de colecţie de date i se atribuie un număr de nivel (există o singură colecţie de date de nivel 1 numită rădăcină). Colecţiile de date pe acelaşi nivel formează o familie de date. Exemplu:

Structura reţea este definită printr-o relaţie de ordine având următoarele proprietăţi:

a. o reţea este un graf în care între două noduri există legături bidirecţionale;

b. un nod are mai mulţi predecesori şi el însuşi poate fi predecesor pentru propriul lui predecesor;

c. o succesiune de legături în care nodul iniţial este acelaşi cu nodul final determină un ciclu al reţelei (o reţea care nu posedă nici un ciclu se numeşte reţea simplă, in caz contrar se numeşte reţea complexă);

Furnizori

Clienţi Materiale

F1

F2

P1 P2

M1

M2

M3 C1

Produse

Comenzi

C2

Com1 Com2

F3

F4

Nivel 0

Nivel 1

Nivel 2

Page 78: Limbaje de Program Are Si Baze de Date Curs

78 Structuri de date şi programare structurată

d. între elementele(nodurile) reţelei se stabilesc legături de tipul m - n.

Structura de reprezentare în reţea se bazează pe existenţa unei mulţimi de colecţii de date şi a unei mulţimi de relaţii ierarhice care, spre deosebire de structurile arborescente, admite ca o colecţie de date să aibă mai multe colecţii de date suplimentare. Exemplu:

Structura relaţională este definită prin tabele (relaţii, tablouri) de date elementare între care există se stabilesc legături n-are.

a2 a3

b3 b4 b5 b6 b7

a1

b1 b2

c1 c3

Nivel 0

Nivel 1

Nivel 2

Nivel 3

r2 r1

Produse

ContracteNote de

comanda

P1

P2

C1 F1

N1

N2 N3 Ct1

Clienţi

Materiale

Ct3

M1

M2 P3

Ct2

Furnizori

F2 Nivel 0

Nivel 1

Nivel 2

Page 79: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 79

3.2. Concepte de reprezentare a datelor

3.2.1. Modelul de reprezentare liniară

Realizarea fizică a modelului este lista, care poate fi

asimetrică (când informaţia corespunzătoarea fiecărei realizări are asociată adresa următoarei realizări sau simetrică (când, la fiecare realizare se asociază două adrese: precedentă şi următoare).

În scopul optimizării operaţiilor de căutare a informaţiilor în listă

au fost elaborate structuri de reprezentare liniară specializate : stack (stiva) şi queue (coada).

Stiva este o structură asimetrică care permite ca operaţiile de

adăugare, consultare şi ştergere să se poată efectua în capul colecţiei de date. Ea este bazată pe principiul LIFO (Last Input First Output), astfel încât ultima realizare adăugată să fie prima consultată.

Coada este o structură simetrică care permite adăugări la

sfârşitul listei şi consultări/ştergeri la începutul listei. Principiul se numeşte FIFO (First Input First Output.

Un fişier de date construit pe baza modelului liniar constă într-o succesiune de înregistrări, de lungime variabilă. De exemplu, pentru structura arborescentă prezentată anterior, luând în considerare posibilitatea descompunerii acesteia în structuri liniare, se poate constitui un fişier care conţine următoarele înregistrări: (P1,C1) (P1,C2) (P2,M3,Com1) (P2,M3,Com2) (P2,M1,F4) (P2,M1,F3)…..

d1 d2 dn

d1 d2 dn

Page 80: Limbaje de Program Are Si Baze de Date Curs

80 Structuri de date şi programare structurată

3.2.2. Modelul ierarhic (arborescent)

Modelul de reprezentare arborescentă se poate realiza fizic cu

ajutorul unor adrese care indică adresa primei realizări din cadrul colecţiei şi adresa următoarei realizări din cadrul colecţiei (organizare FIU, FRATE).

Modelul ierarhic permite organizarea datelor pe orice tip de

suport magnetic (sau optic) şi prezintă următoarele caracteristici:

• consultarea datelor este permisă numai prin intermediul rădăcinii;

• accesul la realizările colecţiilor de date inferioare colecţiei rădăcină se face prin specificarea tuturor colecţiilor care se găsesc între colecţia rădăcină şi colecţia pe care dorim să o consultăm.

Practic consultarea se face în mod "top-down" (de sus în jos

şi de la stânga la dreapta).

Limite modelului sunt date de problemele legate de actualizarea fişierelor de date:

• adăugarea de noi înregistrări se poate face numai cu specificarea colecţiilor superioare;

• ştergerea unei realizări determină ştergerea tuturor realizărilor subordonate.

r

a1 a2 a3

b1 b2 b3

c1 c2

Page 81: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 81

La nivel fizic, un fişier de date constituit pe baza modelului conţine înregistrări de lungime variabilă. Exemplu:

(P1,C1) (P1,C2) (P2(M3(Com1, Com2))) (P2(M1(F3, F4),M2(F1, F2)))

3.2.3. Modelul reţea

Modelul reţea este un model conceptual complet de structurare

a datelor, bazat pe structurile de reprezentare reţea şi tipurile de relaţii 1-1, 1-n caracteristica principală a acestui model fiind aceea că acesta acceptă ca orice colecţie de date să se situeze la nivelul 1, ceea ce permite să se realizeze accesul direct la realizările colecţiilor.

Exemplu: legăturile dintre colecţiile de date "PRODUSE" şi colecţiile de date “MATERIALE”

3.2.4. Modelul relaţional

Acest model se bazează pe teoria matematică a relaţiilor şi pe

calculul relaţional şi este independent de suportul fizic. Cu ajutorul lui structura conceptuală poate fi reprezentată sub forma unei mulţimi de tabele legate între ele prin intermediul unor chei. Considerând colecţiile de date din structura arborescentă anterioară, se pot constituii următoarele tabele:

P1

M1 M2 M3 M4 M4

P1

Page 82: Limbaje de Program Are Si Baze de Date Curs

82 Structuri de date şi programare structurată

Produse Clienţi Produse Materiale Furnizori Produse Materiale Comenzi

P1 C1 P2 M1 F3 P2 M3 Com1

P1 C2 P2 M1 F4 P2 M3 Com2

P2 M2 F1

P2 M2 F2

Înlocuirea relaţiilor ierarhice sau reţea cu relaţii n-are, precum

şi eliminarea neajunsurilor generate de cele dintâi în procesul de creare şi de actualizare a bazelor de date, poartă numele de normalizare.

Prin procesul de normalizare mulţimea legăturilor dintre

realizările colecţiilor de date se include în tabele bidimensionale (baze de date). În aceste tabel se admite, desigur, o anumită redundanţă deci anumite legături se repetă.

Modelului relaţional prezintă o serie de avantaje:

• permite o reprezentare simplă, uşor accesibilă oricărui utilizator datorită faptului că baza de date este concepută ca o colecţie de tabele;

• permite proiectarea unei structuri optime cu ajutorul

operaţiei de normalizare;

• permite crearea, actualizarea şi consultarea bazei de date folosind tehnici de acces şi prelucrare superioare, proprii unui sistem de gestiune a bazei de date relaţionale;

• admite satisfacerea cerinţelor utilizatorilor prin

intermediul unor limbaje bazate pe algebra relaţiilor;

Page 83: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 83

3.3. Algebra relaţională – Modelul relaţional

E.F. Codd a definit conceptele disciplinei numită algebră relaţională ca o colecţie de operaţii pe relaţii, fiecare operaţie având drept operanzi una sau mai multe relaţii şi producând ca rezultat o altă relaţie.

Definiţie Dată fiind o colecţie de mulţimi D1, D2,....Dn,numite domenii, nu neapărat distincte, R este o relaţie pe aceste n mulţimi, dacă există o mulţime de n-tupluri (d1, d2,......dn) astfel încât d1∈D1, d2∈D2, ....dn∈Dn.

Valoarea n reprezintă gradul relaţiei, iar numărul de tupluri

reprezintă cardinalul. Într-un sens mai puţin abstract putem privi relaţia ca un tabel organizat pe linii şi coloane în care capul de tabel cuprinde domeniile, coloana este atributul, iar linia este tuplul. Numărul de coloane este gradul relaţiei, numărul de linii reprezintă cardinalul relaţiei.

În sistemele de programare care prelucrează colecţii de date noţiunea de relaţie se suprapune peste noţiunea de tabel de date, domeniul este câmp, tuplul este articol (înregistrare, record), cardinalul reprezentând dimensiunea tabelului de date (dată de numărul de înregistrări), iar numărul de câmpuri este gradul relaţiei. Din punct de vedere al operaţiilor de prelucrare a datelor definim următoarele elemente de bază:

• Relaţia este ansamblul de date şi legături între acestea. • Domeniul reprezintă un ansamblu de nume prin care se

identifică datele din relaţie. • Atributul este un grup de date de acelaşi tip aparţinând

unui domeniu. • Tuplul (sau n-tuplul) este definit de succesiunea de

legături care asociază datele având atribute diferite.

Page 84: Limbaje de Program Are Si Baze de Date Curs

84 Structuri de date şi programare structurată

Exemplu Model Firma Culoare FIAT Roşu BMW Roşu FIAT Alb BMW Alb VW Alb

Convenţii de scriere: relaţia: Model[Firma, Culoare] domenii: Firma {FIAT, BMW, VW, …} Culoare {Roşu, Alb, Verde,….} atribut Model.Firma, Model.Culoare tuplu (FIAT, Roşu) (BMW, Roşu)

Observaţii • Atributele sunt unice (nu pot exista coloane cu

nume identice). • Ordinea liniilor şi a coloanelor în tabel este

indiferentă. • Atributele reprezintă o mulţime finită de valori

inclusă în mulţimea valorilor posibile dintr-un anumit domeniu (a nu se face confuzie între domeniu şi atribut).

Modelul de reprezentare a datelor care utilizează elemente de

algebră relaţională şi calculul relaţional se numeşte modelul relaţional.

3.3.1. Reguli de integritate ale modelului relaţional

Regula de unicitate a cheii

Această regulă defineşte ansamblul minim de atribute care să permită ca fiecare tuplu să fie unic identificat (nu există tupluri identice). Identificarea unui tuplu în cadrul unei relaţii, fără a face apel la toate valorile din tuplu a dus la apariţia noţiunii de cheie. Orice relaţie prezintă cel puţin o cheie, la limită cheia fiind construită

Page 85: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 85

din cel puţin un atribut (cheie simplă). Când mai multe atribute contribuie la constituirea cheii, cheia se numeşte cheie compusă (din chei primare, chei secundare).

Exemplu În relaţia Marca, atributul Marca.Cod permite identificarea într-o

manieră unică a unui tuplu (cheia este singulară). Se poate accepta următoarea convenţie de scriere (cheia este subliniată):

Marca[Cod, Firma, Culoare]

Regula de restricţie referenţială Două sau mai multe relaţii pot fi asociate (legate), în sensul că

datele dintr-o relaţie sunt dependente de datele din alte relaţii. Termenii care se folosesc în acest caz sunt: „relaţie care referă (părinte)”, „relaţie referită (copil)”. Astfel o relaţie poate să conţină un atribut/grup de atribute care sunt incluse şi în altă relaţie (referită). Regula de restricţie referenţială este definită astfel: Dacă un atribut/grup de atribute este cheie într-o relaţie care referă (părinte) şi apare şi într-o relaţie referită (copil), toate valorile corespunzătoare cheii trebuie să apară în atributele/grupul de atribute al relaţiei referite(copil) sau să fie valori null (nedefinite).

Exemplu Fie relaţiile Marca[Cod, Firma, Culoare] Clienţi[Cod, Client, Data, Cantitate] În aceste relaţii atributul Cod, comun celor două relaţii este

cheie în relaţia Marca deci trebuie să conţină toate valorile cuprinse în atributul Clienţi.Cod.

Regula de restricţie a entităţii (integritatea entităţii)

Considerând convenţia de notare cu „null” a unei valori necunoscute, restricţia entităţii reprezintă restricţia de integritate care impune ca într-o relaţie atributele cheii primare să fie nenule. Cu valori „null” cheia îşi pierde rolul de identificator de tuplu.

Page 86: Limbaje de Program Are Si Baze de Date Curs

86 Structuri de date şi programare structurată

3.3.2. Calculul operaţional

Operaţiile definite în algebra relaţională sunt de tipuri:

o operaţii de bază (tradiţionale) o operaţii speciale

Operaţii relaţionale tradiţionale

Operaţiile relaţionale tradiţionale au în vedere acele relaţii care au acelaşi grad şi aceleaşi domenii (ele se numesc compatibile cu reuniunea). Pe două relaţii R1 şi R2, compatibile cu reuniunea pot fi definite următoarele operaţii: reuniunea, intersecţia, diferenţa.

Reuniunea Notaţii: R = R1 ∪ R2 = { t | t∈R1, sau t∈R2 } t -tuplu

R = OR (R1, R2) R = APPEND (R1, R2) R = UNION (R1, R2) Exemplu: Model3 = Model1 ∪ Model2

Model1 Firma Culoare Model2 Firma Culoare FIAT Roşu BMW Roşu BMW Roşu FIAT Alb FIAT Alb BMW Alb BMW Alb VW Alb VW Alb

Model3 Firma Culoare

FIAT Roşu BMW Roşu VW Alb FIAT Alb BMW Alb

R1 R2

R3

Simbol

Page 87: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 87

Intersecţia Notaţii: R = R1 ∩ R2 = { t | t∈R1, şi t∈R2 } t -tuplu

R = AND (R1, R2) R = INTERSECT (R1, R2) Exemplu: Model3 = Model1 ∩ Model2

Model1 Firma Culoare Model2 Firma Culoare FIAT Roşu BMW Roşu BMW Roşu FIAT Alb FIAT Alb BMW Alb BMW Alb VW Alb VW Alb

Model3 Firma Culoare

BMW Roşu BMW Alb FIAT Alb VW Alb

Diferenţa Notaţii: R = R1 R2 = { t | t∈R1, şi t∉R2 } t -tuplu

R = MINUS (R1, R2) R = REMOVE (R1, R2) R = DIFF (R1, R2) Exemplu: Model3 = Model1 Model2

Model1 Firma Culoare Model2 Firma Culoare FIAT Roşu BMW Roşu BMW Roşu FIAT Alb FIAT Alb BMW Alb BMW Alb VW Alb VW Alb

R1 R2

R3

Simbol

R1 R2

R3

Simbol

Page 88: Limbaje de Program Are Si Baze de Date Curs

88 Structuri de date şi programare structurată

Model3 Firma Culoare

FIAT Roşu

Operaţii relaţionale speciale

Produsul cartezian

Notaţii: R = R1 X R2= {(t1, t2)|t1∈R1, t2∈R2 } t -tuplu

R = PROD (R1, R2) R = TIMES (R1, R2) Exemplu: Auto = Model X Tip

Model Firma Culoare Tip An CP FIAT Roşu 1997 60 BMW Roşu 1998 75 VW Alb

Auto Firma Culoare An CP

FIAT Roşu 1997 60 BMW Roşu 1997 60 VW Alb 1997 60 FIAT Roşu 1998 75 BMW Roşu 1998 75 VW Alb 1998 75

X

X

R1 R2

R3

Simbol

Page 89: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 89

Selecţia Notaţii: S = σ condiţie (R)

S = SELECT (R, condiţie) S = RESTRICT (R, condiţie) Exemplu: Auto1 = σ Culoare=Alb (Auto)

Auto Firma Culoare An CP FIAT Roşu 1997 60 BMW Roşu 1997 60 VW Alb 1997 60 FIAT Roşu 1998 75 BMW Roşu 1998 75 VW Alb 1998 75

Auto1 Firma Culoare An CP VW Alb 1997 60 VW Alb 1998 75

Proiecţia Notaţii: P = Π Atrib1, Atrib2, ... Atribn (R)

P = PROJECT (R, Atrib1, Atrib2, ... Atribn) P = P(R, Atrib1, Atrib2, ... Atribn) Exemplu: Culori = Π Firma, Culoare (Auto)

Auto Firma Culoare An CP FIAT Roşu 1997 60 BMW Roşu 1997 60 VW Alb 1997 60 FIAT Roşu 1998 75 BMW Roşu 1998 75 VW Alb 1998 75

Culoare=Alb

Condiţie

R

S

Simbol

R

P

Atribute

Simbol

Page 90: Limbaje de Program Are Si Baze de Date Curs

90 Structuri de date şi programare structurată

Culori Firma Culoare FIAT Roşu BMW Roşu VW Alb

Joncţiunea

Determină concatenarea unor tupluri di R1 cu tupluri din R2 (se concatenează acele tupluri din R1 şi R2 care satisfac o anumită condiţie specificată explicit în cadrul relaţiei).

Notaţii: J = R1 >< R2

condiţie

J = JOIN (R1, R2, condiţie) Exemplu: Modele = Auto >< Tip

Culoare

Observaţie: Această operaţie poate fi echivalată în felul următor: J = R1 >< R2 = σ condiţie (R1 X R2)

Auto Firma Culoare Tip Culoare An

FIAT Alb Alb 2001 BMW Alb Roşu 2002 VW Roşu Verde 2003

Modele Firma Culoare An FIAT Alb 2001 BMW Alb 2001 VW Roşu 2002

Firma, Culoare

R1 R2

R3

Simbol

operator

Atribut in R1 Atribut in R2

=Culoare

Page 91: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 91

3.4. Elementele unei baze de date

3.4.1. Definirea noţiunii de „bază de date”

Definirea noţiunii de bază de date trebuie să ţină cont de următoarele elemente: • gruparea datelor în fişiere de date; • descrierea legăturilor (asocierilor) între

fişiere (fişier de descriere globală a datelor);

• suportul fizic (hardware) pentru conservarea şi prelucrarea interactivă a datelor;

• sistemul de programe pentru descrierea structurii datelor astfel încât să fie posibilă actualizarea şi securizarea acestora (Sistemul de Gestiune a Bazelor de Date = SGBD);

• Utilizatorii bazei de date. Ideea principală este legată de necesitatea accesului oricărui

utilizator la date, ceea ce impune realizarea independenţei programelor (aplicaţiilor) faţă de date şi a datelor faţă de programe. Conceptul de „bază de date” a apărut în 1969 cu ocazia prezentării raportului CODASYL în cadrul unei conferinţe legate de folosirea limbajelor de gestiune a datelor.

Definiţie Baza de date este un ansamblu de date stocate în unul sau mai multe fişiere de date, aflate în interdependenţă, împreună cu descrierea datelor şi a relaţiilor între ele.

BAZA DE DATE

Fişier de descriere globală

Aplicaţia 1 Aplicaţia 2

Utilizatori

Fişiere de date

Sistem de gestiune al bazei de date

Page 92: Limbaje de Program Are Si Baze de Date Curs

92 Structuri de date şi programare structurată

Baza de date, astfel definită, trebuie să îndeplinească următoarele condiţii:

• structura bazei de date trebuie să fie astfel concepută încât să asigure informaţiile necesare şi suficiente de acces;

• să asigure o redundanţă minimă şi controlată a datelor; • să asigure accesul rapid la datele stocate; • să asigure independenţa datelor faţă de programele de

prelucrare şi invers.

3.4.2. Criterii de clasificare a bazelor de date

o după modelul folosit: ierarhice, reţele, relaţionale, orientate

obiect; o după aria de răspândire: locale, centralizate, distribuite; o după orientare: generalizate, specializate; o după limbajele utilizate: autonome (limbaje proprii), cu

limbaj gazdă, mixte. Nivelurile de organizare ale bazelor de date

o Nivelul 1 = nivelul logic Structura logica a aplicaţiilor o Nivelul 2 = nivelul conceptual Structura conceptuală a bazelor de date o Nivelul 3 = nivelul fizic Structura fizică a bazelor de date

3.4.3. Sisteme de gestiune a bazelor de date (SGBD)

Sistemul de gestiune al bazelor de date reprezintă soft-ul propriu-zis al acestora care asigură realizarea următoarelor activităţi:

• definirea structurii bazei de date, • încărcarea datelor în baza de date, • accesul la date (interogarea, actualizarea),

Page 93: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 93

• întreţinerea bazei de date (ştergeri, adăugări, modificări de date, refacerea bazei de date în caz de incident,

• reorganizarea bazei de date (restructurarea şi modificarea strategiei de acces),

• securizarea datelor. Rezultă că sistemul de gestiune al bazelor de date este un

sistem complex de programe care asigură interfaţa între o bază de date şi utilizatorii acesteia.

3.4.4. Funcţiile unui SGBD

Funcţia de descriere a datelor permite definirea structurii bazei

de date la nivel logic, conceptual şi fizic stabilind: o atributele (câmpurile) bazei de date, o legăturile dintre date, o criteriile de validare a datelor, o metodele de acces la date, o aspectele referitoare la asigurarea integrităţii şi

confidenţialităţii datelor.

Funcţia de manipulare a datelor este cea mai complexă şi realizează următoarele activităţi:

o crearea bazei de date, o adăugarea de noi înregistrări, o ştergerea unor înregistrări, o modificare conţinutului unor înregistrări, o căutarea, ordonarea.

Funcţia de utilizare a datelor asigură mulţimea interfeţelor

necesare pentru comunicarea cu utilizatorii bazei de date. Categoriile de utilizatori sunt:

o utilizatorii neinformaticieni („liberi” sau conversaţionali) care utilizează baza de date într-o formă simplificată fiind de fapt destinatarii constituirii unei baze de date;

Page 94: Limbaje de Program Are Si Baze de Date Curs

94 Structuri de date şi programare structurată

o utilizatorii programatori care utilizează limbajele de programare pentru realizarea procedurilor practice de exploatare;

o administratorii bazei de date cu rol în ceea ce priveşte menţinere bazei de date în parametrii ei de funcţionalitate.

Funcţia de administrare este de competenţa administratorilor

bazei de date. 3.4.5. Sisteme de gestiune a bazelor de date relaţionale

Organizaţia americană de norme TRG (Realtional Task Group) a definit termenul de „relaţionalitate”. Acesta propune un ansamblu de criterii care să definească noţiunea de SGBD minimal relaţional şi total relaţional. Creatorul modelului relaţional, E.F. Codd a propus 12 criterii de definire a SGBD-urilor din punct de vedere al relaţionalităţii.

SGBD minimal relaţional

1. Structura tabelului de date: Toate datele unei baze de date sunt reprezentate prin valori în

tabele. 2. Pointer-i (puncte de intrare) invizibili: Punctele de intrare ale tabelului de date sunt invizibili pentru

utilizator. 3. Operatori de bază: SGBD-ul trebuie să implementeze operaţiile de selecţie, proiecţie

şi joncţiune (fără nici o restricţie).

SGBD total relaţional

Un SGBD devine total reaţional dacă la cele trei criterii enunţate anterior se adaugă următoarele două:

4. Operatori: SGBD-ul suportă toate operaţiile algebrei relaţionale.

Page 95: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 95

5. Restricţii: SGBD permite respectă regula de unicitate a cheii şi regula de

restricţie referenţială.

Regulile lui Codd

1. Regula privind gestionarea unui SGBDR:

Toate funcţiile de manipulare a unui SGBD au ca unitate de informaţie relaţia (tabelul).

2. Regula privind garantarea accesului la date: Fiecare element al unui SGBD poate fi accesat într-o manieră

unică cu ajutorul numelui relaţiei, numelui atributului şi a valorii cheii. 3. Regula privind valorile „null” : SGBD trebuie să permită declararea şi manipularea sistematică a

valorilor de null cu semnificaţia unor date lipsă sau inaplicabile. 4. Regula privind metadatele (dicţionarul): Descrierea elementelor unei baze de date trebuie să se facă, la

nivel logic, în aceeaşi manieră cu descrierea datelor propriu-zise. Dicţionarul este o bază de date specifică (fişier de descriere globală a datelor) care permite descrierea, la nivel general, a tabelelor de date în scopul manipulării şi interogării acestora.

5. Regula privind limbajele de programare utilizate: Un SGBDR trebuie să facă posibilă utilizarea mai multor limbaje

de programare. dintre care cel puţin unul permite: o definirea tabelelor de date şi a tabelelor de date virtuale; o manipularea datelor; o definirea restricţiilor de integritate; o definirea regulilor de acces; o precizarea limitelor tranzacţiilor.

6. Regula privind actualizarea datelor: Tabelele de date virtuale (acele tabele construite pe baza

tabelelor de date existente) trebuie să fie efectiv actualizabile. 7. Regula privind manipularea datelor (inserări,

modificări, ştergeri):

Page 96: Limbaje de Program Are Si Baze de Date Curs

96 Structuri de date şi programare structurată

SGBD-ul trebuie să menţină o stare coerentă a datelor din punct de vederea al manipulării lor (regăsire, modificare, ştergere, inserare).

8. Regula privind independenţa fizică a datelor: Programele de aplicaţie trebuie să fie independente de modul şi

de suporturile de stocare a datelor. 9. Regula privind independenţa logică a datelor:

Programele de aplicaţii trebuie să fie independente de modificările semantice ale tabelelor bazei de date.

10. Regula privind restricţiile de integritate a datelor: Limbajul de programare utilizat trebuie să definească restricţiile de integritate ale datelor şi trebuie să fie le memoreze în fişierul de descriere globală (catalogul) a datelor.

11. Regula privind distribuirea geografică a datelor: SGBDR trebuie să permite manipularea datelor indiferent că bazele de date sunt dispuse în acelaşi loc (centralizate) sau dispuse în locuri diferite (distribuite).

12. Regula privind prelucrarea datelor la nivel de bază: Dacă SGBDR posedă un limbaj de programare de nivel scăzut,

orientat pe prelucrarea de tupluri (înregistrări) şi nu pe prelucrarea la nivel de relaţie, acesta nu trebuie utilizat pentru a face exprimări relaţionale.

4. Limbaje algoritmice

Limbajul algoritmic este un sistem de notare în care ideile sunt exprimate mai puţin formal, sistem utilizat în procesul de dezvoltare a algoritmilor. Acesta permite folosirea unor instrucţiuni care exprimă condensat structurile sintactice şi semantice utilizate cel mai frecvent şi câteva reguli simple de aliniere a textului scris. Trebuie precizat faptul că limbajul algoritmic nu este conceput ca un limbaj de programare, are puţine reguli sintactice, lăsând o mare libertate de exprimare a acţiunilor algoritmilor. Principalele elemente ale limbajului algoritmic sunt datele şi instrucţiunile.

Page 97: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 97

4.1. Datele

Datele pot fi clasificate după mai multe criterii:

Criteriul naturii datelor: date numerice: întregi, reale şi complexe date logice (booleene) date de tip text (şir de caractere)

Criteriul variabilităţii

constante - nu se modifică în intervalul de timp destinat execuţiei programului:

- constante numerice (numere întregi şi reale reprezentate în mod uzual);

- constante booleene (logice), cu valori de adevărat (true) sau fals (false);

variabile - se modifică pe durata derulării programului (se poate vorbi de valori iniţiale, intermediare şi finale).

Acest grup de date este pus în corespondenţă cu anumiţi identificatori.

Criteriul câmpului de acţiune

date cu caracter global care pot fi utilizate din orice punct al programului. Acestea se definesc şi li se alocă memorie o singură dată.

date cu caracter local ce nu pot fi folosite decât în zona de program (procedură sau funcţie) în care au fost definite.

Criteriul alocării memoriei

date statice - alocarea memoriei se rezolvă în faza de compilare.

date dinamice - alocarea memoriei se face în timpul execuţiei programului.

Criteriul dispunerii în memoria internă

Page 98: Limbaje de Program Are Si Baze de Date Curs

98 Structuri de date şi programare structurată

date dispuse în zone contigue care permit localizarea uneia din ele cunoscând o adresă şi o lungime.

date dispersate în memorie.

Criteriul construirii tipurilor date de tip fundamental care sunt implementate în

fiecare limbaj de programare (ex. tipul întreg, real, caracter, boolean).

date de tip derivat alcătuite din unul sau mai multe tipuri fundamentale şi care sunt definite în timpul construirii programelor.

Asupra datelor se acţionează folosind operatori de calcul în

funcţie de tipul şi natura datelor: o pentru date numerice

- operatorii aritmetici: adunare, scădere, înmulţire, împărţire, notaţi +, -, *, /, div (împărţirea pentru numere întregi), mod (împărţire modulo)

- operatorii relaţionali (=, <>, <, >, <=, >) o pentru date logice operatorii de disjuncţie (or), conjuncţie

(and) şi negaţie (not) o pentru şiruri de caractere operatorii de concatenare şi

comparare (bazată pe ordinea lexicografică).

4.2. Instrucţiunile limbajului algoritmic

Instrucţiunea de atribuire:

variabilă = expresie

Instrucţiunile de citire/scriere (read/write):

citeşte lista de variabile scrie lista de variabile

Page 99: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 99

Instrucţiunea de oprire:

stop

Instrucţiunea de ramificare (if … then … else …):

dacă condiţie atunci secvenţa 1

altfel secvenţa 2

Instrucţiunea cu ramificare redusă (if … then …):

dacă condiţie atunci secvenţa

Instrucţiunea repetitivă condiţionată anterior (ciclul cu test iniţial, while … do …):

cât timp condiţie execută secvenţa

Se execută pentru condiţie adevărată.

Instrucţiunea repetitivă condiţionată posterior (ciclul cu test final, repeat ... until):

repetă secvenţa până condiţie

Se execută, cel puţin o dată, pentru condiţie adevărată.

Instrucţiunea repetitivă cu număr finit de paşi (ciclul cu contor, for … do …):

pentru contor = valoare iniţială, valoare finală, pas execută secvenţa

Page 100: Limbaje de Program Are Si Baze de Date Curs

100 Structuri de date şi programare structurată

Instrucţiunea cu ramificare multiplă (case … of … else):

alege expresie dintre condiţie 1 : secvenţa 1

condiţie 2 : secvenţa 2 .................... condiţie n : secvenţa n

rest secvenţa n+1

4.3. Programare modulară. Subprograme

Subprogramele reprezintă o secvenţă de operaţii executate în scopul rezolvării unei probleme. Aceeaşi secţiune din algoritm întâlnită în mai multe puncte ale acestuia, poate fi scrisă o singură dată şi apelată de câte ori este nevoie. Utilizarea subprogramelor conduce la creşterea eficienţei activităţii de programare, astfel încât părţi ale algoritmului pot fi proiectate, codificate şi testate independent una faţă de alta. Se pot construi mult mai uşor algoritmi cu complexitate mare, utilizând module deja proiectate şi verificate. Aceasta sporeşte fiabilitatea programelor şi reduce efortul de programare. Subprogramele pot fi construite sub două forme: proceduri şi funcţii.

4.3.1. Proceduri

Definire: procedura nume procedură (parametrii formali) secvenţa

sfârşit

Apel: execută nume procedură (parametrii efectivi)

Page 101: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 101

4.3.2. Funcţii

Definire: funcţia nume funcţie (parametrii formali) secvenţa

sfârşit

Apel: În cadru unor relaţii de calcul: nume funcţie (parametrii efectivi)

Observaţii • O procedură sau o funcţie poate avea un număr oarecare de

parametrii (eventual nici unul). • Între parametrii formali şi cei efectivi se realizează o

corespondenţă biunivocă, în sensul că parametri actuali şi cei efectivi trebuie să corespundă ca număr şi tip.

• Apelul funcţiei este considerat ca un operand al expresiilor. Lista de parametrii formali conţine doar parametri de intrare, singurul parametru de ieşire fiind chiar numele funcţiei.

4.3.3. Iterativitate şi recursivitate

Iterativitatea este procesul prin care rezultatul este obţinut ca urmare a execuţiei repetate a unui set de operaţii, de fiecare dată cu alte valori de intrare. Numărul de iteraţii poate fi necunoscut sau cunoscut, dar determinabil pe parcursul execuţiei. Metoda de repetivitate este cunoscută sub numele de ciclu (loop) şi poate fi realizată prin utilizarea următoarelor structuri repetitive: ciclul cu test iniţial, ciclul cu test final, ciclul cu număr finit de paşi. Indiferent ce fel de structură iterativă se foloseşte este necesar ca numărul de iteraţii să fie finit. Recursivitatea este procesul iterativ prin care valoarea unei variabile se determină pe baza uneia sau a mai multora dintre propriile ei valori anterioare. Structurile recursive reprezintă o alternativă de realizare a proceselor repetitive fără a utiliza cicluri.

Page 102: Limbaje de Program Are Si Baze de Date Curs

102 Structuri de date şi programare structurată

Aplicaţii

1. Definirea şi apelul unei funcţii de calcul.

> Formularea problemei.

Să se calculeze:

)!(!!knk

nC kn −=

> Prezentarea algoritmului.

Definirea funcţiei funcţia FACT(m) FACT = 1 pentru i= 1, m, 1 execută FACT=FACT*i sfârşit Apelarea funcţiei citeşte n,k c=FACT(n)/FACT(k)/FACT(n-k) scrie c

stop

2. Calcul recursiv.

> Formularea problemei.

Se consideră polinomul P(x) = an .xn + an-1. xn-1 + ... a1 .x + a0 care poate fi scris şi sub forma P(x) = ( ... (an x + an-1) .x + ... a1) . x + a0 unde ai ∈ R, i = 0, 1, ... , n

de unde rezultă următoarele relaţii de recurenţă: P = an P = P.x + ai , unde i = n-1, n-2, ... , 1, 0

Page 103: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 103

> Prezentarea algoritmului. citeşte n, x, (a[i], i = 0,1, … ,n) P = a[n]; k = n-1 cât timp k ≥ 0 execută P = P*x + a[k]; k = k-1 scrie P

stop

3. Determinarea minimului şi maximului elementelor unui

vector. > Formularea problemei.

Se dă vectorul A = (a1, a2, … ,an). Să se determine: min = minim (a1, a2, … ,an) şi max = maxim(a1, a2, … ,an)

> Metoda 1

Se execută comparări succesive începând cu primul element. > Prezentarea algoritmului citeşte n, (a[i], i=1, … ,n) min=a[1]

max=a[1] pentru i= 2, n, 1 execută dacă a[i] < min atunci min=a[i]

dacă a[i] > max atunci max=a[i] scrie min, max

stop

> Metoda 2

În funcţie de paritatea lui n, se începe cu una din următoarele iniţializări:

- dacă n par ⇒ min = minim (a1, a2), max = maxim (a1, a2) - dacă n impar ⇒ min = a1, max = a1

Se consideră perechi succesive de elemente de forma: (ak, ak+1) unde:

k = 3,5, ... ,n-1 pentru n par k = 2,4, ... ,n-1 pentru n impar. Se compară min cu minim(ak, ak+1) şi max cu maxim (ak, ak+1) actualizându-se eventual valorile lui min şi max.

Page 104: Limbaje de Program Are Si Baze de Date Curs

104 Structuri de date şi programare structurată

> Prezentarea algoritmului citeşte n, (a[i], i = 1, … ,n) dacă n mod 2 = 0 atunci dacă a[1] < a[2] atunci min=a[1]; max=a[2] altfel min=a[2]; max=a[1]

k=3 altfel min = a[1]; max = a[1]; k = 2

cât timp k ≤ n-1 execută dacă a[k] < a[k-1] atunci dacă a[k]<min atunci min=a[k] dacă a[k+1]>max atunci max=a[k+1] altfel dacă a[k+1]<min atunci min=a[k+1] dacă a[k] > max atunci max = a[k] k = k + 2 scrie min, max stop

4. Problema căutării.

> Formularea problemei.

Fie A = (a1, a2, ...an) şi x o valoare. Se cere să se determine dacă x se află printre elementele vectorului A.

Se consideră A având elementele în ordine descrescătoare

(a1 ≤ a2 ≤ ... ≤ an) şi se aplică algoritmul de căutare binară.

Algoritmul se bazează pe metoda „divide et impera”. Se compară x cu elementul din mijloc, adică ai, unde i=[(n+1)/2].

- dacă ai = x ⇒ căutarea se încheie cu succes - dacă ai ≠ x ⇒ se caută în secvenţa:

{a1, a2, ... ,ai-1} dacă x < ai, {ai+1, ai+2, ... ,an} dacă x > ai

Page 105: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 105

Soluţia va fi exprimată sub forma:

unde: a0 = -∞, an+1 = +∞

> Prezentarea algoritmului

citeşte n, x, (a[i], i=1, … ,n) p=1; u=n; cod=0 cât timp (p ≤ u) şi (cod=0) execută i= (p+u)/2 dacă a[i] = x atunci cod=1; p=i altfel dacă a[i] < x atunci p=i+1 altfel u=i-1 scrie cod, p stop

> Test: A = (3, 5, 7, 8, 11, 15) - pentru x=7 ⇒ cod=1, p=3 - pentru x=10 ⇒ cod=0, p=5 - pentru x=2 ⇒ cod=0, p=1

5. Problema sortării.

> Formularea problemei.

Dat fiind vectorul A = (a1, a2, ...an) problema sortării constă în a ordona crescător elementele acestui vector. Se prezintă mai multe metode de sortare.

> Metoda 1: Sortarea prin interschimbare. Metoda constă în modificări succesive de forma ai ↔ ai+1 până

când elementele vectorului apar în ordine crescătoare. Sortarea se termină când, pornind cu perechea (a1, a2) şi finalizând cu perechea (an-1, an), nu s-a efectuat nici o interschimbare.

+∈<<

∈==

− }1,...,2,1{,),,0(},...,2,1{,),,1(

),(1 npaxadacăp

npaxdacăppcod

pp

p

Page 106: Limbaje de Program Are Si Baze de Date Curs

106 Structuri de date şi programare structurată

> Prezentarea algoritmului citeşte n, (a[i], i=1, … ,n) repetă gata=true pentru i= 1, n-1, 1 execută dacă a[i] > a[i+1] atunci w=a[i] a[i]=a[i+1] a[i+1]=w gata=false până gata scrie (a[i], i=1, … ,n) stop

> Metoda 2: Sortarea prin numărare.

Metoda constă în a număra pentru fiecare element ai câte elemente strict mai mici decât el există. Numerele obţinute se memorează într-un vector K, iar pe baza lui elementele din A vor fi aranjate într-un alt vector B. Elementele lui A se presupun distincte. > Prezentarea algoritmului citeşte n, (a[i], i=1, … ,n) pentru i= 1, n, 1 execută k[i]=0 pentru j= 2, n, 1 execută pentru i= 1, j-1, 1 execută dacă a[i] < a[j] atunci k[j]=k[j]+1 altfel k[i]=k[i]+1 pentru i= 1, n, 1 execută b[k[i]+1]=a[i]

scrie (b[i], i=1, … ,n) stop

Page 107: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 107

> Metoda 3: Sortarea prin inserţie directă.

Se consideră pe rând fiecare element al şirului şi se inserează în subşirul ordonat creat anterior din elementele precedente. Fie j cu proprietatea a1 ≤ a2 ≤ ... ≤ aj-1. Se compară succesiv aj cu aj-1, aj-2, ... până când se ajunge la primul ai cu ai ≤ aj.

Ca urmare se va insera aj după ai. Operaţia de inserare implică deplasarea spre dreapta a unei secvenţe. > Prezentarea algoritmului

citeşte n, (a[i], i=1, … ,n) pentru j= 2, n, 1 execută x=a[j]; k=0; gata=false; i=j-1 repetă dacă a[i] ≤ x atunci k=i; gata=true altfel a[i+1]=a[i]; i=i-1 până (i<1) sau gata a[k+1]=x scrie (a[i], i=1, … ,n)

stop

> Metoda 4: Sortarea prin selecţie.

Metoda constă în a plasa la fiecare pas un element al vectorului pe poziţia sa finală. La primul pas este determinat:

ak = minim (a1, a2, ... , an) şi este efectuată interschimabarea a1 ↔ ak, deci cel mai mic

element este plasat pe poziţia sa finală. În general la pasul i (i = 1,2, ... , n-1) se determină

ak = minim (ai, ai+1, ... , an) şi se efectuează interschimbarea ai ↔ ak

> Prezentarea algoritmului

citeşte n, (a[i], i=1, … ,n) i=1 repetă k=i; min=a[k]; j=k

repetă dacă min > a[k+1] atunci min=a[k+1]; j=k+1

Page 108: Limbaje de Program Are Si Baze de Date Curs

108 Structuri de date şi programare structurată

k=k+1 până k=n a[j]=a[i]; a[i]=min; i=i+1

până i=n scrie (a[i], i=1, … ,n) stop

> Metoda 5: Sortarea rapidă, quicksort (C. A. Hoare).

Metoda oloseşte procedeul „divide et impera”. Dacă într-o secvenţă (ap, ap+1, ... , aq), prin interschimbări de elemente ale secvenţei se poziţionează ap pe locul k, atunci se ajunge la situaţia:

as ≤ ak ≤ ai pentru s ∈ {p, ... ,k-1} şi t ∈ {k+1, ... , q}

În continuare se pot sorta secvenţele: (ap, ... , ak-1) şi (ak+1, ... , aq) independent una de alta.

> Prezentarea algoritmului

citeşte n, (a[i], i=1, … ,n) s=1; stânga[1]=1; dreapta[1]=n repetă st=stânga[s]; dr=dreapta[s] s=s-1; i=st; j=dr; x=a[(i+j)/2] repetă cât timp a[i]<x execută i=i+1 cât timp x<a[j] execută j=j-1 dacă i≤j atunci w=a[i]; a[i]=a[j]; a[j]=w; i=i+1; j=j-1 până i>j dacă st<j atunci s=s+1; stânga[s]=st; dreapta[s]=j dacă i<dr atunci s=s+1; stânga[s]=i; dreapta[s]=dr până s=0 scrie (a[i], i=1, … ,n) stop

Page 109: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 109

6. Problema interclasării.

> Formularea problemei.

Fie A = (a1, a2, ...am) şi B = (b1, b2, ...bn) doi vectori având elementele ordonate crescător. Se cere să se interclaseze cele două şiruri, adică să se construiască un vector:

C = (c1, c2, ...cm+n) care să conţină atât elementele lui A cât şi ale lui B în ordine crescătoare.

Dacă se compară ai cu bj sunt posibile două situaţii: - dacă ai<bj, se introduc în vectorul C elementul ai şi

toate elementele care îi succed lui ai în vectorul A şi sunt mai mici decât bj;

- dacă bj<ai, atunci se introduc în C atât elementul bj cât şi elementele care îi succed lui bj în vectorul B şi sunt mai mici decât ai.

În momentul în care un vector este epuizat, elementele neparcurse ale celuilalt vector sunt introduse în C şi algoritmul se termină.

> Prezentarea algoritmului citeşte m, n, (a[i], i=1, … ,m) (b[i], j=1, … ,n) i=1; j=1; k=0; cât timp (i≤m) şi (j≤n) execută k=k+1 dacă a[i]≤b[j] atunci c[k]=a[i]; i=i+1 altfel c[k]=b[j]; j=j+1 dacă i>m atunci pentru s=j, n, 1 execută k=k+1; c[k]=b[s] altfel pentru s=i,m,1 execută k=k+1; c[k]=a[s] scrie (c[k], k=1, … ,m+n)

Page 110: Limbaje de Program Are Si Baze de Date Curs

110 Structuri de date şi programare structurată

5. Limbaje de programare

5.1. Elemente de bază ale limbajelor de programare

Orice program descrie o transformare a unei mulţimi de valori

iniţiale, numite date de intrare sau fişiere de intrare, într-o altă mulţime de valori numite rezultate, sau date de ieşire sau fişier de ieşire. Între noţiunea de program şi noţiunea de algoritm există o strânsă legătură. Programul adaptează de fapt un algoritm la necesităţile calculului automat.

Folosirea programelor devine posibilă prin activarea

componentei numită program de translatare, care traduce şi converteşte în una sau mai multe etape un program scris într-un limbaj de programare, numit program sursă într-un şir de instrucţiuni executabile, în format binar, numit program obiect. Există două tipuri de programe translatoare: interpretoare şi compilatoare.

Programele interpretoare generează cod după fiecare instrucţiune sursă, înainte de executarea grupului de instrucţiuni.

Pentru programele compilatoare translatarea se realizează pe întreg grupul de instrucţiuni, o singură dată, rezultând un program obiect care reprezintă forma binară a programului iniţial.

Ca realizare practică, este de remarcat că un interpretor ocupă memoria internă şi pe durata execuţiei programului în timp ce, în cazul compilării, o dată generat programul obiect, compilatorul nu mai ocupă spaţiu de memorie.

Programele sursă sunt constituite dintr-o succesiune de

simboluri (caractere), numite entităţi, care sunt admise în scrierea programelor şi cărora li se asociază o definiţie sintactică. În limbajele de programare se consideră drept entităţi: identificatorii, constantele, cuvintele cheie, operatorii. etc. Pentru a se genera forma obiect se apelează, succesiv, mai multe resurse ale programului translator:

Page 111: Limbaje de Program Are Si Baze de Date Curs

Structuri de date şi programare structurată 111

1o Analizorul lexical primeşte la intrare şirul simbolurilor şi

produce la ieşire un şir de entităţi. 2o Analizorul sintactic, având la intrare şirul de entităţi,

verifică dacă acestea sunt corecte din punct de vedere al definiţiilor sintactice.

3o Generatorul de cod admite la intrare reprezentarea structurii sintactice a programului sursă şi produce translatarea programului în instrucţiuni executabile direct de calculator. Pentru constituirea formei textuale a programului sursă se au în vedere următoarele elemente (legate de teoria limbajelor formale):

vocabularul (alfabetul) - o mulţime nevidă, finită de simboluri (caractere).

fraza - o secvenţa finită de simboluri în conformitate cu vocabularul, luând eventual în considerare şi fraza vidă.

limbajul - o mulţime de fraze pe vocabular. Construirea frazelor în cadrul unui limbaj se face prin utilizarea

unui sistem generator numit gramatică. Oricare frază se poate construi prin metode bine definite, folosind regulile gramaticii numite producţii.

Programul este de fapt o frază corectă pe un vocabular.

Analizorul lexical Analizorul

sintactic Generatorul de cod

PROGRAM SURSĂ

PROGRAM OBIECT

Page 112: Limbaje de Program Are Si Baze de Date Curs

112 Structuri de date şi programare structurată

Limbajul de programare apare ca o mulţime de programe alcătuite conform unor reguli - regulile gramaticale ale limbajului.

Frazele unui program reprezintă de fapt descrieri ale unui

algoritm de calcul. Dezvoltarea limbajelor de programare a evoluat în strânsă

legătură cu dezvoltarea hardware-ului, rezultând următoarea clasificare a acestora:

limbaje în cod maşină (generaţia zero de limbaje), cu o semantică şi o sintaxă specifică fiecărui calculator ;

limbaje de asamblare (generaţia unu) în care operanzii şi adresele sunt reprezentaţi prin mnemonice;

Limbaje procedurale (de nivel înalt) - limbaje independente de calculator (C, Pascal, Java, Basic, FoxPro, etc.);

Limbaje neprocedurale (de nivel foarte înalt), specializate pe tipuri de aplicaţii - rezolvă prescripţii şi nu instrucţiuni (SQL, QBE, etc.).

Operaţiile de bază care intră în componenţa unui program

sunt: operaţia de citire a unei valori din fişierul de intrare şi

înregistrarea ei în memorie; operaţia de scriere a unei valori din memorie în fişierul de

ieşire; operaţia de atribuire prin care se atribuie unei variabile

(tot în memorie) o valoare calculată conform unei formule, cu operatorii de calcul permişi.

Important este caracterul adaptiv al unui program care se

realizează într-o construcţie modulară şi structurată .

Page 113: Limbaje de Program Are Si Baze de Date Curs

113 Bibliografie

Bibliografie Chan M., Griffith S., Iasi A.

Java, 1001 Secrete pentru programatori, Ed. Teora, 2001

Cosma E.

Informatică în economie, Ed. ExPonto, 2003

Davidescu N., Hotăran S., Ivancenco V., ş.a.

Produse program generalizabile în domeniul financiar – contabil, Ed. Didactică şi Pedagogică, Bucureşti, 1997

Levine J., Baroudi C. Internet pentru toţi, Ed. Teora, 1996

Lungu I., Bodea C., Bădescu G, Ioniţă C.

Baze de date. Organizare, proiectare şi implementare, Ed. All, 1995

Nossiter J. Utilizare Microsoft Excel 97, Ed. Teora,1998

PerkinsJ. Morgan B. SQL fără profesor în 14 zile, Ed. Teora 1998