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 Interfaţa sistemului de operare 1.2.2. 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 Site de comerţ electronic 3.4.1. 3.4.2. Vânzarea on-line 3.4.3. Sisteme electronice de plată
C
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 Tipuri de legături între diferite colecţii 3.1.1. 3.1.2. Tipuri de structuri de date 3.2. Concepte de reprezentare a datelor Modelul de reprezentare liniară 3.2.1. 3.2.2. Modelul ierarhic (arborescent) 3.2.3. Modelul reţea Modelul relaţional 3.2.4. 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
2
3.4.1. Definirea noţiunii de „bază de date” Criterii de clasificare a bazelor de date 3.4.2. 3.4.3. Sisteme de gestiune a bazelor de date (SGBD) 3.4.4. Funcţiile unui SGBD Sisteme de gestiune a bazelor de date relaţionale 3.4.5. 4. Limbaje algoritmice 4.1. Datele 4.2. Instrucţiunile limbajului algoritmic 4.3. Programare modulară. Subprograme 4.3.1. Proceduri Funcţii 4.3.2. 4.3.3. Iterativitate şi recursivitate Aplicaţii Bibliografie
á 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:
Drivere de dispozitiv
Utilitare de sistem
SOFTWARE DE SISTEM
S
O F W A R E
Sistem de operare
Limbaje de programare
Baze de date
SOFTWARE DE APLICAŢIE
Procesoare de texte
Calcul tabelar
Comunicaţii
Grafică
Proiectare
Educaţie
Afaceri
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 şi software de aplicaţie
4
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):
U T I L I Z A T O R I
SISTEM BIOS
HARD BIOS
DE OPERARE PROGRAME UTILITARE
U T I L I Z A T O R I
SOFTWARE DE APLICAŢIE
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
á Software de sistem şi software de aplicaţie
5
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 Pornire care stabileşte configuraţia componentelor PC-ului (conexiunea Power On cu diferite tipuri de tastaturi, displaySelf Test uri, imprimante, periferice speciale); Hard Booting disc • 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ă
á Software de sistem şi software de aplicaţie
6
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
á 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.
á Software de sistem şi software de aplicaţie
8
Î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
á 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
á Software de sistem şi software de aplicaţie
10
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.
á 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.
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
á 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 siteuri 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:
á Software de sistem şi software de aplicaţie
14
♦ Window Display Area (aria de lucru) este zona ocupată de fereastră pe ecran.
Control Menu
Title Bar
Minimize Window Maximize Window Close Window
Menu Bar
Toolbar Format Bar
Vertical Scroll Bar Window Borders
Horizontal Scroll Bar
Window Display Area
♦ 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 şi o plasează în taskbar. ♦ Maximize Window
- buton care reduce fereastra -
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.
á 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);
á Software de sistem şi software de aplicaţie
16
◊ ◊ ◊
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
á 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
á Software de sistem şi software de aplicaţie
18
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ă,
á 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.
á Software de sistem şi software de aplicaţie
20
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 harddisk 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.
á 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
á Software de sistem şi software de aplicaţie
22
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.
á Software de sistem şi software de aplicaţie
á
2. Programare tabelară
á
2.1. Programul de calcul tabelar Excel
23
Excel este un program de calcul tabelar, care face parte din familia de utilitare Microsoft Office păstrând, în general, aceeaşi Meniul principal
Meniul principal Adresa celulei active
Linia cu instrumente standard
LiniaLinia cu instrumente pentru format cu instrumente standard Linia de editare
Linia cu instrumente pentru format Adresa celulei active
Linia de editare
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
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).
á Software de sistem şi software de aplicaţie
25
Editează un document nou Editează un document existent Inchide editarea documentului Salvează fişierul Salvează fişierul sub un alt nume
Afişează conţinutul imprimării Imprimă documentul
Istoricul documentelor editate Ieşire Excel
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).
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 oferă document editat poate fi tipărit. Comanda Print Preview 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.
á 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ă;
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
á 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:
á Software de sistem şi software de aplicaţie
30
)
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 mouseului, î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
á 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
á Software de sistem şi software de aplicaţie
32
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 3
Format, Coloană, Lăţime… / Format, Rând, Înălţime… Editare, Copiere
á 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
7
meniu Insert, Function...
á
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 împrumutului după ce s-au efectuat toate plăţile.
4 5 6 7
Editare, Decupare Format Celule Format Stil… Modificare Inserare, Funcţie…
sau
á Software de sistem şi software de aplicaţie
34
• 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)
á Software de sistem şi software de aplicaţie
35
argumentele pv şi type pot fi omise; rate - rata dobânzii pe o perioadă; nper - numărul total de perioade de plată dintr-o anuitate; 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).
o o o o
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)
á Software de sistem şi software de aplicaţie
36
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)
á 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:
á Software de sistem şi software de aplicaţie
38
Conţinutul celulelor de calcul E1 : E2 : E3 : A6 : B6 : C6 : D6 : E6 : A7 : B7 : C7 : D7 : E7 :
=-NPER(B2/12;-B1;-B3) =ROUND(E1;0) =FV(B2/12;E2;-B1) =1 =D6 =0 =$B$1 =D6 =A6+1 =B6+C7+D7 =B6*$B$2/12 =$B$1 =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:
á 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:
á Software de sistem şi software de aplicaţie
40
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
á 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:
Celula de intrare Formula I n t r ă r i
•
8 9
Rezultate
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 Date, Tabel… Celulă de intrare pe coloană
á Software de sistem şi software de aplicaţie
42
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:
Celula de intrare pe linie Celula de intrare pe coloană Formula
I n t r ă ri I n t r ă r i
Rezultate
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ă
á 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.
á Software de sistem şi software de aplicaţie
44
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 12
Format, Celule… Date, Machetă…
á Software de sistem şi software de aplicaţie
45
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). Câmpurile tabelului de Conţinutul înregistrării curente date Prelucrare Adaugă Şterge Anulează Trece la înregistrarea precedentă Trece la înreg. următoare Caută o înregistrare conform unui criteriu
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 14
Format, Autoformatare… Date, Sortare…
á Software de sistem şi software de aplicaţie
46
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 16
Date, Filtrare Filtrare automată
á 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)
á Software de sistem şi software de aplicaţie
48
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.
á 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. Tipul graficului
Lista derulantă Chart Objects
Formatarea graficului
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 18
Inserare Diagramă… Vizualizare, Bare de instrumente, Diagramă
á Software de sistem şi software de aplicaţie
50
á
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
á 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 modemlinie 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.
á Software de sistem şi software de aplicaţie
52
á
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. Program server Web Program client Web (browser, navigator, viewer) Internet
Protocol
Document Web
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).
á 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
Un sistem distribuit de buletine informaţionale referitoare la un anumit
news
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
á Software de sistem şi software de aplicaţie
54
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
á Software de sistem şi software de aplicaţie
55
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 siterilor 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. Forward Back Stop
History
Mail
Print
Address
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).
á Software de sistem şi software de aplicaţie
56
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: "ş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" o
á 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.
á Software de sistem şi software de aplicaţie
58
+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 +Lis*
Caută documente conţinând cuvântul Mona şi
"Mona Lisa" dar care nu conţin cuvântul "Louvre".
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
Găseşte documentele care conţin aceste
mercedes
cuvinte ţinând cont de ordinea în care sunt scrise (primul este cars).
(bmw AND mercedes) AND NOT (used OR ferrari)
Domain:gov AND nuclear power plant*
Caută documentele care conţin cuvintele bmw şi mercedes dar care nu conţin used sau ferrari
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.
á 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.
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.
á 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
á Software de sistem şi software de aplicaţie
62
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ă,
á 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 Serverul de tranzacţii validează cartea de credit şu face tranzacţia cu instituţia financiară a comerciantului
Serverul de comerţ electronic pe web al comerciantului: prezentare comercială electronică şi coş de cumpărături virtual
Internet Trimite datele comenzii la server
Internet
Stocul epuizat declanşează comanda la furnizor
INSTITUTIŢIA FINANCIARĂ
Internet
CONSUMATOR Serverul de operaţiuni interne integrate al comerciantului execută prelucrarea comenzii, facturarea, expedierea, producţia şi gestiune stocurilor
Produsul expediat la consumator
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
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 prelucrată. 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.
á 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.
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.
á Software de sistem şi software de aplicaţie á
67
3.4.3. Sisteme electronice de plată
Mod de plată
Descriere
Criptare carte de
Autorizarea cărţii de credit şi criptarea numărului
credit
cărţii de credit
Bani electronici /
Utilizează conturi bancare electronice pentru
Bani digitali
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.
C Structuri de date şi programare structurată
68
C
Structuri de date şi
programare structurată
C
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:
C Înţelegerea
problemei este etapa cea mai importantă şi
constă în: • definirea datelor de intrare (tip, proprietăţi, domeniul valorilor), • definirea rezultatelor (ieşirile),
C Structuri de date şi programare structurată
69
• stabilirea relaţiilor dintre date şi rezultate. C Conceperea modului de rezolvare a problemei şi descrierea acestuia printr-un algoritm. C Reprezentarea algoritmului ca program. C Evaluarea programului din punct de vedere al corectitudinii şi ca potenţial instrument pentru rezolvarea altor probleme. Acest proces poate fi reprezentat schematic astfel:
Problema
Algoritm + Date abstractizare
Program
codificare
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).
C Structuri de date şi programare structurată
70
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.
C
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:
C Acţiunea
elementară, tradusă în instrucţiuni simple (instrucţiunea de atribuire, instrucţiunea de apel subprogram, intrare/ieşire, subprograme).
C Condiţia
(control, test, expresie booleană) cu valoare de adevărat (True) sau neadevărat (False).
Acţiune
instrucţiuni
True Condiţie C False
de
C Structuri de date şi programare structurată
71
Un algoritm adaptat programării structurate se reprezintă prin trei primitive astfel (structura D – Dijkstra):
c Secvenţa (una sau mai multe acţiuni elementare). Această primitivă se va nota:
d Selecţia (structura alternativă). Această primitivă se va nota: IF C THEN a ELSE b
e Ciclul cu test iniţial
Acţiune a
Acţiune b
a; b
True
Acţiune a
Condiţie C False
Acţiune b
Acţiune a
True
(structura repetitivă, Condiţie C iteraţia). Această primitivă care semnifică False 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:
c Structura D. d Selecţia redusă (selecţia pseudoalternativă). Această primitivă se va nota: IF C THEN a
True
Acţiune a
Condiţie C False
e Ciclul cu test final (structura repetitivă condiţionată posterior). Notaţie: REPEAT a UNTIL C
True Acţiune a
Condiţie C False
C Structuri de date şi programare structurată
72
i=1
f Selecţia multiplă (structura alternativă multiplă).
Acţiune a1
Caz i i=n
Acţiune an
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, s1 True
C1 False
a1 True
a2 a3
C4
False
True
C2 False
s2
s3
False
a4 s4
a5
C3
True
s5
poate fi descompus succesiv până la ultimul nivel, astfel:
a6
C 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
C
3. Elemente din teoria bazelor de date
C
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.
C Structuri de date şi programare structurată
74
C
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. Materiale M4 0 M2 M1 0
Produse 0 P1 0 P2
M3 0
legături interne legături externe
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ă. Studenţi S1 0 S2 0 S3 0
Matricole 0
M1 0
M2
0
M3
C Structuri de date şi programare structurată •
75
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. Grupe
Studenţi 0
G1 0
S1 0
G2 0
0
S3 0 S5
S2 0
•
S4
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. Materiale M2
Produse
M4 0
0 P1 0
M1 0
P3 0 P2
M3 0
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.
C
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ă. d1
d2
d3
dn
C Structuri de date şi programare structurată
76
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: Furnizor
Materiale
Sortiment
M1
S1
M2
F1
M4 M3
S2 S3
F2
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). Nivel 0
r
Nivel 1 Nivel 2
a1 b1
Nivel 3 c1
b2 c2
a2 b3
b4
a3 b5
b6
b7
C 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: Produse P1
P2
Nivel 0
Materiale
Clienţi C1
M1
C2
Nivel 1
M2
Furnizori F4
Nivel 2
F2
M3
F1
Comenzi Com1 Com2
F3
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ă);
C Structuri de date şi programare structurată
78
d. între elementele(nodurile) reţelei se stabilesc legături de tipul m - n. Nivel 0
r1
Nivel 1
a1
Nivel 2 Nivel 3
b1 c1
b2
r2
a2 b3
a3 b4
b5
b6
b7
c3
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: Clienţi
Nivel 0
F1
C1
Contracte Ct2
Ct1
Furnizori
Ct3
F2 Note de comanda N1 N2
N3
Nivel 1
Produse P1 Nivel 2
P2
P3
Materiale M1 M2
Structura relaţională este definită prin tabele (relaţii, tablouri) de date elementare între care există se stabilesc legături n-are.
C Structuri de date şi programare structurată
79
C
3.2. Concepte de reprezentare a datelor
C
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). d1
d1
d2
d2
dn
dn
Î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)…..
C Structuri de date şi programare structurată
80
C
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). r
a1
a2
b1
c1
a3
b2
b3
c2
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.
C 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)))
C
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”
P1
P1
M1
C
M2
M3
M4
M4
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:
C Structuri de date şi programare structurată
82
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;
C Structuri de date şi programare structurată
C
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.
C Structuri de date şi programare structurată
84
Exemplu Model
Convenţii de scriere: relaţia: domenii: atribut tuplu
Observaţii • • •
Firma FIAT BMW FIAT BMW VW
Culoare Roşu Roşu Alb Alb Alb
Model[Firma, Culoare] Firma {FIAT, BMW, VW, …} Culoare {Roşu, Alb, Verde,….} Model.Firma, Model.Culoare (FIAT, Roşu) (BMW, Roşu)
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.
C
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ă
C 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.
C Structuri de date şi programare structurată
86
C
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
C
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:
Simbol
R1
R2
∪ Exemplu:
R = R1 ∪ R2 = { t | t∈R1, sau t∈R2 } t -tuplu R = OR (R1, R2) R = APPEND (R1, R2) R = UNION (R1, R2) Model3 = Model1 ∪ Model2
R3 Model1
Firma FIAT BMW FIAT BMW VW
Culoare Roşu Roşu Alb Alb Alb
Model2
Firma BMW FIAT BMW VW
∪
Model3
Firma FIAT BMW VW FIAT BMW
Culoare Roşu Roşu Alb Alb Alb
Culoare Roşu Alb Alb Alb
C Structuri de date şi programare structurată ¾ Intersecţia Notaţii:
Simbol
R1
R2
87
R = R1 ∩ R2 = { t | t∈R1, şi t∈R2 } t -tuplu R = AND (R1, R2) R = INTERSECT (R1, R2)
∩
Exemplu:
Model3 = Model1 ∩ Model2
R3
Model1
Firma FIAT BMW FIAT BMW VW
Culoare Roşu Roşu Alb Alb Alb
Model2
Firma BMW FIAT BMW VW
Culoare Roşu Alb Alb Alb
∩
Model3
¾ Diferenţa Notaţii:
Simbol
R1
R2
Culoare Roşu Alb Alb Alb
R = R1 R2 = { t | t∈R1, şi t∉R2 } t -tuplu R = MINUS (R1, R2) R = REMOVE (R1, R2) R = DIFF (R1, R2)
R3
Firma BMW BMW FIAT VW
Exemplu:
Model1
Firma FIAT BMW FIAT BMW VW
Model3 = Model1 Model2 Culoare Roşu Roşu Alb Alb Alb
Model2
Firma BMW FIAT BMW VW
Culoare Roşu Alb Alb Alb
C Structuri de date şi programare structurată
88
Model3
C
Firma FIAT
Culoare Roşu
Operaţii relaţionale speciale
¾ Produsul cartezian Simbol
R1
R2
Notaţii:
R = PROD (R1, R2) R = TIMES (R1, R2)
X R3
R = R1 X R2= {(t1, t2)|t1∈R1, t2∈R2 } t -tuplu
Exemplu: Model
Auto = Model X Tip
Firma FIAT BMW VW
Culoare Roşu Roşu Alb
Tip
An 1997 1998
An 1997 1997 1997 1998 1998 1998
CP 60 60 60 75 75 75
X
Auto
Firma FIAT BMW VW FIAT BMW VW
Culoare Roşu Roşu Alb Roşu Roşu Alb
CP 60 75
C Structuri de date şi programare structurată
89
¾ Selecţia Simbol
R
Notaţii:
S = σ condiţie (R)
Exemplu:
S = SELECT (R, condiţie) S = RESTRICT (R, condiţie) Auto1 = σ Culoare=Alb (Auto)
Condiţie
S
Auto
Firma FIAT BMW VW FIAT BMW VW
Culoare Roşu Roşu Alb Roşu Roşu Alb
An 1997 1997 1997 1998 1998 1998
CP 60 60 60 75 75 75
Culoare=Alb
Auto1
Firma VW VW
Culoare Alb Alb
An 1997 1998
CP 60 75
¾ Proiecţia Simbol
Notaţii: P = Π Atrib1, Atrib2, ... Atribn (R)
R
Atribute
P
P = PROJECT (R, Atrib1, Atrib2, ... Atribn) P = P(R, Atrib1, Atrib2, ... Atribn) Exemplu: Culori = Π Firma, Culoare (Auto) Auto
Firma FIAT BMW VW FIAT BMW VW
Culoare Roşu Roşu Alb Roşu Roşu Alb
An 1997 1997 1997 1998 1998 1998
CP 60 60 60 75 75 75
C Structuri de date şi programare structurată
90
Firma, Culoare
Culori
Firma FIAT BMW VW
Culoare Roşu Roşu 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: Simbol J = R1 >< R2 R1 R2 operator
Atribut in R1
condiţie Atribut in R2
J = JOIN (R1, R2, condiţie) Exemplu:
R3
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 FIAT BMW VW
Culoare Alb Alb Roşu
Tip
Culoare An Alb 2001 Roşu 2002 Verde 2003
= Culoare
Modele
Firma FIAT BMW VW
Culoare Alb Alb Roşu
An 2001 2001 2002
C Structuri de date şi programare structurată
91
C
3.4. Elementele unei baze de date
C
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.
BAZA DE DATE Fişiere de date Fişier de descriere globală
Sistem de gestiune al bazei de date
Aplicaţia 1
Aplicaţia 2
Utilizatori
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.
C Structuri de date şi programare structurată
92
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.
C
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 Structura fizică a bazelor de date
o Nivelul 3 = nivelul fizic
C
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),
C 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.
C
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;
C Structuri de date şi programare structurată
94
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.
C3.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.
C
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).
C
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.
C 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ă.
C
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):
C Structuri de date şi programare structurată
96
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.
C
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.
C Structuri de date şi programare structurată
C
97
4.1. Datele
Datele pot fi clasificate după mai multe criterii: C Criteriul naturii datelor: date numerice: întregi, reale şi complexe date logice (booleene) date de tip text (şir de caractere)
C 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.
C 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.
C 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.
C Criteriul dispunerii în memoria internă
C Structuri de date şi programare structurată
98
date dispuse în zone contigue care permit localizarea uneia din ele cunoscând o adresă şi o lungime. date dispersate în memorie.
C 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ă).
C
4.2. Instrucţiunile limbajului algoritmic
CInstrucţiunea de
atribuire:
variabilă = expresie
CInstrucţiunile de citire/scriere (read/write): citeşte lista de variabile scrie lista de variabile
C Structuri de date şi programare structurată
99
CInstrucţiunea de oprire: stop
CInstrucţiunea de ramificare (if … then … else …): dacă
condiţie
atunci secvenţa 1 altfel secvenţa 2
CInstrucţiunea cu ramificare redusă (if … then …): dacă condiţie atunci secvenţa
CInstrucţ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ă.
CInstrucţ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ă.
CInstrucţ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
C Structuri de date şi programare structurată
100
CInstrucţ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
C
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.
C
4.3.1. Proceduri
Definire:
procedura nume procedură (parametrii formali) secvenţa sfârşit
Apel:
execută nume procedură (parametrii efectivi)
C Structuri de date şi programare structurată C
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 • •
•
C
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.
C Structuri de date şi programare structurată
102
Aplicaţii C1. Definirea şi apelul unei funcţii de calcul. > Formularea problemei.
Să se calculeze:
C nk =
n! k!(n − k )!
> 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
C2. 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
C 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
C 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.
C Structuri de date şi programare structurată
104
> 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] k=k+2 scrie min, max
dacă a[k] > max atunci max = a[k]
stop
C4. 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.
(a1
Se consideră A având elementele în ordine descrescătoare ≤ 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} {ai+1, ai+2, ... ,an}
dacă x < ai, dacă x > ai
C Structuri de date şi programare structurată
105
Soluţia va fi exprimată sub forma:
(1, p), dacă x = a p , p ∈{1, 2, ... , n} (cod , p) = (0, p), dacă a p−1 < x < a p , p ∈{1, 2, ..., n + 1} 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 pentru x=10 pentru x=2
⇒ cod=1, p=3 ⇒ cod=0, p=5 ⇒ cod=0, p=1
C5. 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.
C Structuri de date şi programare structurată
106
> 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
C 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
C Structuri de date şi programare structurată
108
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
j dacă st<j atunci s=s+1; stânga[s]=st; dreapta[s]=j dacă i
C Structuri de date şi programare structurată
109
C6. 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
rel="nofollow"> 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)
C Structuri de date şi programare structurată
110
C
5. Limbaje de programare
C
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:
C Structuri de date şi programare structurată
111
PROGRAM SURSĂ Analizorul lexical
Analizorul sintactic
Generatorul de cod PROGRAM OBIECT
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.
112
C 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ă .
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