Sunteți pe pagina 1din 0

Bazele Utilizrii Calculatoarelor

Cursul 2

1


CONCEPTE DE PROGRAMARE


1. Cunoaterea cererii de programe.
Atunci cnd persoanele individuale sau firmele au nevoie de un program, exist trei modaliti de a-l obine:
- cumprarea unui program deja scris. n acest fel programul poate fi obinut rapid i nu cost mult.
Exist ns posibilitatea ca programul s nu execute exact ceea ce trebuie.
- Cumprarea unui program i modificarea sa astfel nct versiunea personalizat s fac exact ceea ce
este necesar utilizatorului. Astfel programul poate fi transformat destul de rapid ntr-un program
utilizabil, ns nu este totdeauna posibil s se modifice un program de pe pia.
- Scrierea unui program propriu. Astfel, programul face exact ceea ce dorete utilizatorul ns aceast
opiune necesit mult timp i costurile sunt foarte mari.
Majoritatea utilizatorilor de microcalculatoare se opresc la prima opiune, deoarece programele sunt relativ
necostisitoare, comparativ cu puterea lor. Deoarece firmele, cum ar fi Intuit, Microsoft, Borland i Symantec,
vnd n cantitate foarte mare o versiune a unui program, pot s menin preturi relativ sczute. Utilizatorii
individuali de microcalculatoare pur i simplu nu dispun de resursele necesare pentru a scrie fiecare program de
care au nevoie.
Pe de alt parte, firmele nu aleg ntotdeauna prima opiune. Firmele investesc muli ani n realizarea acelor
produse i servicii care s le deosebeasc de alte firme. Atunci cnd o ntreprindere se decide s-i
computerizeze oricare dintre evidenele sale, este de importan vital ca programele s reflecte exact modul
de lucru utilizat deja n cadrul acesta. Firma nu trebuie s-i modifice modul n care face afaceri, numai pentru a
putea utiliza programele disponibile n magazine sau n livrrile de software prin pot. Programele de pe pia
trebuie s fie generice, astfel nct productorii acestora s le poat vinde mai multor cumprtori.
Cea de-a doua opiune - de a cumpra un program i a-l personaliza - pare s fie cea mai bun, dar este
aleas cel mai rar. Dac companiile ar putea cumpra un program deja scris, ar trebui s aib un cadru de lucru
n care s-l adapteze rapid necesitilor proprii. Problema este c programele sunt rareori vndute; n schimb,
este vndut licena lor. Atunci cnd cumperi un program, nu devii proprietarul acestuia, ci capei doar dreptul
de a-l utiliza. Din punct de vedere legal, nu ai dreptul de a-l modifica, vinde sau copia (exceptnd scopul
salvrilor de siguran). Aici sunt implicate nu numai aspecte legislative, ci uneori modificarea programelor nu
este posibil din punct de vedere fizic. Un program o dat scris, este transformat ntr-un format comprimat, pe
care programatorii nu o mai pot modifica.
Rezult c, dei scrierea programelor de la zero este costisitoare i necesit un timp ndelungat, majoritatea
firmelor prefer s procedeze astfel, pstrnd vaste departamente de programare pentru rezolvarea acestor
chestiuni. Se poate ntmpla ca o firm s plteasc timp de un an ntreg civa membri din echipa de
prelucrare a datelor, pentru ca acetia s scrie un program foarte asemntor - dar nu identic - cu unul pe care
l-ar putea cumpra de pe pia. n ciuda costului i eforturilor implicate, pentru firm merit s nu fie silit s se
conformeze constrngerilor unui program cumprat de la altcineva. O dat scris, programul corespunde
modului n care se lucreaz n firma respectiv.
Unele firme au descoperit c pot vinde programele realizate altor firme, ce se ocup de afaceri similare,
recupernd astfel o parte din costurile suportate. Atunci cnd scriei programe pentru firma dumneavoastr sau
pentru persoane individuale, reinei c exist posibilitatea vnzrii ulterioare a acestor programe.
Bazele Utilizrii Calculatoarelor
Cursul 2

2
Adeseori, firmele msoar timpul necesar pentru scrierea programelor n ani-persoan. Dac sunt necesari
doi ani-persoan pentru a scrie un program, se estimeaz c doi oameni ar putea s-l scrie ntr-un singur an
sau o persoan n doi ani. Un proiect de 20 ani-persoan ar necesita 20 de persoane pe durata unui an, sau o
persoan pe durata a 20 de ani, sau 10 persoane pe durata a doi ani i aa mai departe. Acest mod de
apreciere este doar estimativ, dar ofer celor din management o estimare a modului n care trebuie s aloce
oameni i timp pentru proiectele de programare.
Dac vei deveni un programator ce va executa lucrri pe baz de contract, estimarea n ani-persoan va
constitui un instrument important pentru stabilirea preului serviciilor dumneavoastr. Ai putea da clientului
dumneavoastr o estimare a preului n ani-persoan (sau, pentru proiecte mai mici, v-ai putea estima munca
n luni-persoan sau sptmni-persoan). Dac vei angaja programatori care s v ajute s terminai progra-
mul, vei putea ncheia mai devreme i totui vei putea s pltii n mod corect munca fiecruia, datorit faptului
c ai calculat preul n ani-persoan i nu n funcie de timpul calendaristic.
De ce nu sunt deja scrise toate programele necesare vreodat? Intrai n orice magazin de software i vei
vedea sute de programe de vnzare. Exist programe pentru orice: procesare de text, contabilitate, desen,
jocuri, proiectare de locuine, conectare on-line i planificarea itinerariilor excursiilor. S-ar prea c avei la
ndemn orice program dorii. Deoarece calculatoarele au aprut de 50 de ani, se poate crede c toat lumea
a cam terminat cu programarea necesar pentru mult timp de acum ncolo.
Dac toate programele necesare ar fi deja scrise, nu ai vedea lungile liste de afie de tipul Se caut
programator" din ziarele actuale. Realitatea este c lumea se schimb n fiecare zi, iar oamenii i ntreprinderile
trebuie s se schimbe o dat cu ea. Programele scrise acum zece ani pur i simplu nu mai corespund uzanelor
actuale. Pe lng aceasta, au fost scrise pentru calculatoare mult mai lente i mult mai limitate dect cele din
zilele noastre. Pe msur ce se fac progrese n ceea ce privete componentele hardware, programele trebuie
s in pasul cu acestea.
Astzi, mai mult dect oricnd, exist o cerere extraordinar de programatori. Pe msur ce calculatoarele
devin mai uor de utilizat, unele persoane sunt de prere c programatorii vor deveni relicve ale trecutului.
Ceea ce nu iau ns acetia n considerare este necesitatea de programatori de prim clas, care s realizeze
aceste programe uor de utilizat.

2. Definiii ale programelor
Dac v-ai orientat vreodat ntr-un teritoriu necunoscut dup hart, atunci tii cam ce nseamn pentru
calculator urmrirea instruciunilor dintr-un program. Avnd numai harta, suntei ca orb atunci cnd v mutai
dintr-un loc ntr-altul i o luai la stnga sau la dreapta, pn cnd ajungei la destinaie sau pn cnd
constatai c, undeva pe parcurs, ai luat-o ntr-o direcie greit. Calculatorul este o main oarb, care
ateapt de la dumneavoastr instruciuni. Atunci cnd i le dai, calculatorul ndeplinete instruciunile, fr a
ghici care sunt dorinele dumneavoastr aflate n spatele acestora. Dac-i cerei unui PC s fac ceva incorect,
va face tot ce poate ca s ndeplineasc sarcina.
Un program este o list de instruciuni detaliate, pe care le execut calculatorul.
Termenul de detaliat", din definiia de mai sus, este vital pentru a face calculatorul s urmeze ordinele
dumneavoastr. De fapt, sarcina unui programator nu este dificil; dificil este fragmentarea lucrrii unui
calculator n pai simpli i detaliai, care nu se bazeaz pe nici o presupunere.
Pentru a v face o idee despre modul de gndire din programare, imaginai-v cum ar trebui s descriei
cuiva din trecut pornirea unei maini. S presupunem c la ua dumneavoastr apare un cowboy din vestul
slbatic, complet zpcit de privelitea din jurul lui. Dup ce va fi trecut de ocul viitorului, el va dori s se
adapteze noii lumi. nainte de a nva s conduc maina, el va trebui s nvee s o porneasc. Atunci cnd
Bazele Utilizrii Calculatoarelor
Cursul 2

3
va ti bine s fac aceasta, l vei nva s conduc. Spre deosebire de un puti de 16 ani, el nu a crescut
vznd adulii pornind maini, aa c trebuie s stpneasc cu adevrat acest proces, nainte de a putea
merge mai departe. Fiind un programator foarte ocupat, i lsai urmtorul set de instruciuni agat de cheia
mainii:
1. Folosete aceast cheie.
2. Pornete maina.
Ct de departe va ajunge el? Nu prea departe. I-ai dat instruciunile corecte de a porni maina, dar ai
presupus c tie prea mult. Trebuie s v amintii c el nu tie nimic despre aceste ciudenii numite automobile
i c se bazeaz pe dumneavoastr ca s-i dai instruciuni pe care le poate nelege, n loc de a presupune att
de mult, poate c acestea ar fi nite instruciuni mai bune:
1. Cheia mainii este anexat acestui bilet, i trebuie ca s porneti maina.
2. Cu cheia n mn, mergi la ua mainii care se afl cel mai aproape de ua din fa a casei noastre.
3. Sub mnerul negru al uii, vei vedea o parte metalic rotund, de dimensiunile unui ban, n care poi s
introduci cheia (cu partea neregulat n jos).
4. Dup ce ai introdus cheia n gaur ct de mult se poate, rsucete-o spre dreapta pn cnd vei auzi
un clic.
5. Rsucete cheia napoi spre stnga, pn cnd ajunge n aceeai poziie n care ai bgat-o, apoi
scoate-o.
6. Deschide ua i intr n main. Ai grij s te aezi n faa roii (denumite volan), aflate n partea stng
a locurilor din fa.
7. nchide ua.
8. n partea dreapt a coloanei de susinere a volanului, vei vedea o scobitur n care poi pune cheia.
Lista de opt instruciuni este foarte detaliat i cowboyul nici mcar n-a apucat nc s porneasc maina.
Va mai trebui s descriei pedala de acceleraie pe care trebuie s-o apese atunci cnd rsucete cheia (n
direcia corect, se nelege), apoi desigur c nu vei dori s v bazai pe faptul c el va opri maina atunci cnd
va fi terminat de exersat, aa c va trebui s-i dai i aceste instruciuni.
n cazul n care credei c aceast analogie cu pornitul mainii a mers cam prea departe, gndii-v la ceea
ce ar trebui s facei pentru a-i putea spune unei piese de echipament electronic, care nu gndete -
calculatorul - s efectueze statul de plat pentru firma dumneavoastr. Un program de stat de plat const doar
n urmtorii pai:
1. Obinerea datelor pentru statul de plat.
2. Calcularea salariilor i impozitelor.
3. Tiprirea cecurilor.
Pentru calculator, acestor instruciuni le lipsesc mii de detalii pe care dumneavoastr le considerai ca
subnelese. Detalierea instruciunilor programului este cea care produce exasperarea i frustrarea ocazional
n programare. A programa calculatoarele nu este dificil, dar a fragmenta problemele din realitate ntr-o mulime
de pai detaliai - pe care-i poate nelege calculatorul - este greu.
Un program obinuit de stat de plat poate conine 20.000 de linii de instruciuni sau chiar mai mult. Totui,
aceasta nu trebuie s v descurajeze. Proiectele mari de programare din majoritatea firmelor sunt scrise de
echipe de programatori; vei beneficia din plin de ajutor, dac vei scrie vreodat astfel de programe pentru a
tri. Totodat, noile tehnici i medii de programare utilizate n limbajele de programare actuale fac ca
programarea - chiar pentru programatorul individual, ce lucreaz de unul singur - s fie mult mai uoar dect a
fost vreodat n trecut.
Bazele Utilizrii Calculatoarelor
Cursul 2

4
1. Exist multe instrumente de proiectare ce v ajut s fragmentai problemele cuprinztoare n
componente detaliate, care se traduc n elemente de programare. Prin urmare, n loc s v lsai
decepionat de aceste descrieri aparent nfricotoare ale detaliilor programelor, pstrai-v ncrederea
pentru c ajutorul sosete n curnd. Totodat, inei cont de aceasta dac programarea ar fi fost ntr-
adevr dificil, progresele din domeniul calculatoarelor din ultimii 50 de ani nu ar fi avut loc n nici un
caz.

3. Programele sunt instruciuni salvate
Partea frumoas n ceea ce privete programele pe care le scriei este c pot fi salvate pe disc, atunci
cnd sunt finalizate. Programele scrise se stocheaz n fiiere pe disc, tot aa cum se procedeaz i cu
documentele realizate cu ajutorul procesoarelor de text. Un program este pentru calculator ca o reet pentru un
buctar. Atunci cnd un buctar vrea s gteasc o anumit mncare, gsete reeta corespunztoare i
urmeaz instruciunile acesteia. Cnd cineva vrea s execute un program, instruiete calculatorul s ncarce
programul de pe disc n memorie i apoi s ruleze instruciunile din acesta, n lecia precedent a fost
prezentat o list detaliat de etape prin care trece calculatorul pentru a executa un singur program.
Memoria intern a calculatorului este de o importan vital pentru execuia programului. Unitatea CPU
nu poate executa instruciunile unui program direct de pe disc. Tot aa cum dumneavoastr nu putei ti ce este
ntr-o carte aflat pe mas pn cnd nu citii i avei n memorie coninutul acesteia (utiliznd propria unitate
CPU - mintea dumneavoastr), nici unitatea CPU din calculator nu poate prelucra instruciunile unui program
pn cnd nu-l ncarc de pe disc n memoria principal, n figura 1 este prezentat procesul de ncrcare a unui
program de pe discul calculatorului (sau o unitate de stocare asemntoare discului, cum ar fi un CD-ROM) n
memorie. Aa cum se arat n figur, unitatea CPU are acces direct la memorie, dar nu are acces la unitatea de
disc. Discul reprezint stocarea pe termen lung, iar memoria reprezint stocarea pe termen scurt, unde rezid
temporar programele n timp ce sunt executate de ctre unitatea CPU.
Reinei diferena dintre program i rezultatul su. Programul este un set de instruciuni, iar datele de
ieire sunt rezultatul acestor instruciuni. Data de ieire" a unei reete este felul de mncare terminat, iar datele
de ieire ale programului reprezint rezultatul tiprit, o dat rulate instruciunile.

FIGURA 1
Un program trebuie s se afle n memorie (minte) ca unitatea CPU s-i poat executa instruciunile.

Poate c un exemplu ar ajuta la clarificarea a ceea ce nseamn pentru un programator folosirea
programului su de ctre utilizator. Dac utilizai un procesor de text, probabil c executai o serie de pai
similari cu acetia:
Bazele Utilizrii Calculatoarelor
Cursul 2

5
1. ncrcai programul de procesare de text de pe disc n memoria principal a calculatorului. Atunci cnd
selectai din meniu denumirea programului de procesare de texte sau pictograma acestuia din Windows,
dumneavoastr i dai calculatorului instruciunea de a cuta pe unitatea de disc programul i de a-l ncrca n
memorie.
2. Ceea ce vedei pe ecran reprezint rezultatul programului. Putei produce mai multe rezultate scriind
textul pe ecran. Tot ceea ce apare pe ecran de-a lungul execuiei programului constituie date de ieire ale
programului.
3. Dup ce scriei textul, putei interaciona cu alte dispozitive. Probabil c vei da o comand de tiprire a
documentului (aproape sigur utiliznd opiunea standard din meniul File, Print) la imprimant i l vei salva pe
disc ntr-un fiier de date.
4. Dup ce ieii din procesorul de text, sistemul de operare preia controlul. Programul de procesare de
text nu se mai afl n memorie, ci undeva pe disc, n siguran.
Dup cum vedei, rezultatul execuiei unui program constituie datele de ieire. Instruciunile sunt cele care
produc aceste rezultate, n figura 2 este prezentat o trecere n revist a procesului program/ieire. Programele
moderne produc datele de ieire n diverse moduri. Programele redau piese muzicale, comunic cu alte
calculatoare prin liniile telefonice i controleaz dispozitivele exterioare. Datele de ieire trimise pe ecran sau la
imprimant nc mai constituie majoritatea rezultatelor programelor.

FIGURA 2
Programul vine de pe disc, este executat i apoi i trimite rezultatele spre oricare dintre dispozitivele de ieire, cum ar fi discul, ecranul sau
imprimanta (sau mai multe dintre ele, din acelai program).

Atunci cnd un program se afl n memorie, el nu este singur. Sistemul de operare este ntotdeauna
rezident n memorie. Dac nu ar fi, nu ai putea nici s ncrcai un program de pe disc, nici s-l rulai, deoarece
sistemul de operare este cel care ncarc de fapt programele n i din memorie, atunci cnd dai comanda
corect. Memoria limitat constituie adeseori o problem pentru programele mai mari. Trebuie s v amintii c
un program prelucreaz date, iar datele trebuie s se afle n memorie - ca i programul - nainte ca acesta s le
poat prelucra cu uurin.
n figura 3 se poate vedea cum arat memoria tipic instalat pe calculator atunci cnd este rulat un
program. Sistemul de operare ocup o poriune mare, programul trebuie s se afle i el acolo i, n final, trebuie
s existe loc i pentru date.

FIGURA 3
Schema tipic a unei memorii arat c sistemul de operare mparte memoria cu programele aflate n execuie.





Bazele Utilizrii Calculatoarelor
Cursul 2

6
Cu ct are o memorie mai mare PC-ul dumneavoastr, cu att mai rapid sunt rulate programele. Memoria
suplimentar se traduce prin aceea c sistemul de operare va trebui s comute mai rar pe disc, nainte i
napoi, pe msur ce ruleaz programul. Unele programe sunt chiar complet coninute n memorie, tot timpul
ct este rulat programul. Ca programator, va trebui s lucrai cu memorii mai mari, cum ar fi 32 MB sau 64 MB,
astfel nct s v putei testa n mod adecvat programele rulate, meninnd simultan mediul de programare
ncrcat.

O controvers adeseori ntlnit n literatura referitoare la calculatoare se refer la ntrebarea dac
programarea este o art sau o tiin. De-a lungul anilor au existat progrese n programare care, dac sunt
utilizate, mbuntesc exactitatea programului, posibilitatea acestuia de a fi citit i de a fi ntreinut (procesul de
modificare ulterioar a programului, pentru a putea ndeplini sarcini diferite sau suplimentare). Multe dintre
aceste progrese nu reprezint dect sugestii, ceea ce nseamn c programatorii nu sunt obligai s le utilizeze
pentru a scrie programe ce funcioneaz corect.
Dou dintre cele mai importante progrese din programare sunt mai mult de natur filosofic dect
inginereasc. Acestea sunt programarea structurat i programarea orientat spre obiecte. Aceste dou
progrese din programare vor fi analizate pe larg n capitolele ce urmeaz. Ambele sugereaz modaliti prin
care un programator poate scrie programe mai bune. Pe de alt parte, acestea constituie doar sugestii de
abordare a programrii; programatorii le pot ignora (i muli o fac).
Exist multe modaliti de a scrie chiar i cele mai mici i mai simple programe. Aa cum scriitorii i
muzicienii scriu i interpreteaz diferit, i programatorii pot avea propriul stil. Deci, s-ar prea c programarea
este mai mult o art dect o tiin. Pe o scal continu de la tiin la art, cei care sunt de aceast prere s-ar
situa mai aproape de adevr dect puinii care cred c programarea este mai mult o tiin. Oricum ar fi, pe
msur ce se fac mai multe progrese n dezvoltarea unor strategii ca programarea structurat i programarea
orientat spre obiecte, se constat o deviere a modului de gndire. Cu proliferarea masiv a calculatoarelor din
zilele noastre, instruirea intens n scopul pregtirii programatorilor de mine este n curs de desfurare. Deoa-
rece industria programrii este tnr (aa cum este ntreaga industrie a calculatoarelor), mai sunt nc multe
progrese de fcut.
Unii dintre cei mai fideli partizani ai ndeprtrii de strategia artistic, n direcia unei abordri tiinifice -
utiliznd programarea structurat i orientat spre obiecte - sunt firmele ce pltesc programatorii. Acestea au
nevoie de reacii rapide la modificrile condiiilor din lumea afacerilor, deci au nevoie de programe scrise ct mai
repede i mai exact posibil. Pe msur ce se fac noi descoperiri n programare, din ce n ce mai multe firme
sunt pe cale s adopte politici care cer programatorilor s utilizeze metode ct mai tiinifice i mai bttorite
pentru a scrie programe mai bune.

4. Cunoaterea limbajului
Instruciunile pe care le dai calculatorului trebuie s fie exprimate ntr-un limbaj pe care acesta l poate
nelege. La nivelul cel mai simplist, un calculator nu reprezint dect cteva mii de ntreruptoare ce se nchid
i deschid fulgertor de rapid. Un ntreruptor se poate afla doar ntr-una din dou stri: nchis sau deschis.
Deoarece oricare dintre aceste dou stri electrice poate fi cu uurin controlat de ntreruptoare electronice,
multe mii de asemenea ntreruptoare controleaz ceea ce face calculatorul de la o microsecund la alta.
Dac ar fi dup calculatorul dumneavoastr, ar trebui s-i dai instruciuni utiliznd ntreruptoare ce reprezint
strile electrice de nchis" sau deschis" . De fapt, aceasta este exact modalitatea n care se programau
primele calculatoare. Pentru introducerea tuturor programelor i datelor trebuia utilizat un panou de
ntreruptoare.
Bazele Utilizrii Calculatoarelor
Cursul 2

7
La nivelul de baz al calculatorului, strile electrice de nchis" i deschis" sunt reprezentate prin cifrele 1
sau 0. Putei controla ce face calculatorul dac cunoatei tiparul corect de cifre 1 i 0 necesar pentru a-i da
comenzi. Putei programa un calculator printr-o serie de l i O, dac dispunei de instrumentele de sistem
corecte. Desigur c programarea cu 1 i 0 nu este cu mult mai bun dect mutarea ntreruptoarelor n sus sau
n jos pe panoul de ntreruptoare, aa c trebuie s existe i o cale mai bun.
n ciuda celor vzute probabil n filmele SF, n viitorul apropiat calculatoarele nu vor fi capabile s nvee
vreo limb vorbit de ctre oameni. Trebuie s nvai un limbaj de programare, dac dorii s facei
calculatorul s ndeplineasc sarcinile dorite.
Limba englez i toate celelalte limbi vorbite sunt prea ambigue pentru calculatoare. Greierele umane pot
descifra propoziiile n mod intuitiv, ceea ce mainile nu pot face. Exist cteva ncercri de creare a inteligenei
artificiale - tiina de a programa calculatoarele astfel nct acestea s poat fi capabile de a nva singure. Aici
este inclus i programarea lor pentru a putea nelege o limb vorbit, cum ar fi engleza, n ciuda progreselor
recente, inteligena artificial se afl nc la muli ani distan n viitor (dac este cumva posibil pentru
calculatoare s neleag comenzi simple n englez).
Prin urmare, calculatoarele i oamenii se afl la capetele opuse ale spectrului. Oamenii doresc s
vorbeasc limba lor, dar aa fac i calculatoarele ce nu neleg, de fapt, dect cifrele 1 i 0. Trebuie s existe o
cale de mijloc. Limbajele de programare au fost create pentru a ncerca s mpace att calculatorul, ct i
persoana ce-l programeaz. Limbajele de programare utilizeaz cuvinte similare celor folosite de ctre oameni,
dar acestea au o sintax cu totul deosebit (structur, ordine, gramatic i ortografie), ce las foarte puin loc
ambiguitilor - att de rspndite n limba vorbit. Calculatorul poate prelua limbajul de programare i-l poate
traduce n limbaj main, compus din 1 i 0; programatorul poate nva, reine i utiliza limbajele de
programare mai eficient dect limbajul compus din 1 i 0, deoarece acestea sunt similare limbii vorbite, cu toate
c sunt mai precise i mai simple.
n decursul acestui curs vei afla multe lucruri despre diverse limbaje de programare. Este posibil s fi
auzit deja de unele dintre ele, iar de altele se poate s nu fi auzit. De-a lungul anilor ce au trecut de la
inventarea primului limbaj de calculator, au fost scrise multe limbaje de programare, dar numai cteva dintre ele
au ntietate fa de celelalte. Iat o list cu cteva limbaje de programare, care au cptat oarecare notorietate
de-a lungul timpului:
Limbaj main Assembler, Algol, PL/1, PROLOG, LISP, COBOL, Forth, RPG, RPG II, Pascal, Object Pascal,
C, C++, SNOBOL, ADA, Fortran, Basic, Visual Basic, Small Talk, APL, Java
Fiecare limbaj de programare are propriile dialecte.
Calculatorul este ca un turn Babei modern, responsabil indirect de existena mai multor limbaje de
programare dect au fost vreodat necesare. Majoritatea celor considerai a fi experi n calculatoare" s-ar
putea s cunoasc numai cteva dintre ele - ntre dou i cinci - i probabil c tiu numai unul sau dou foarte
bine. Deci, numrul mare de limbaje nu trebuie s v mpiedice de a nva programare.
Sunt mai multe motive pentru care exist att de multe limbaje de programare. Oamenii au diverse
preferine, unele limbaje sunt mai bune dect altele pentru anumite sarcini, iar unele persoane au acces doar la
unul sau dou limbaje.
Programul pe care-l scriei se numete program surs (sau cod surs). Atunci cnd vei ntlni pe parcursul
acestei cri termenul de program surs, vei ti c se refer la program nainte de a fi compilat.

Translatorul de limbaj
De fapt, calculatorul nu poate nelege nici limbajele BASIC, C, Pascal sau oricare dintre limbajele de
programare. S-ar putea ca aceasta s v provoace nedumerire, pentru c n seciunea precedent s-a explicat
Bazele Utilizrii Calculatoarelor
Cursul 2

8
c limbajele de calculator sunt importante tocmai pentru c aceste calculatoare nu pot nelege engleza sau
orice alt limb vorbit de ctre oameni. Chiar aa fiind, calculatorul nu nelege nici limbajul BASIC - dar un
program poate traduce cu uurin limbajul BASIC ntr-o serie de cifre 1 i 0, pe care calculatorul le poate
nelege.
Exist dou feluri de translatoare de limbaj: compilatoarele i interpretoarele. Ambele iau limbajul de
programare respectiv, cum ar fi Pascal, i-l traduc ntr-o form ce poate fi citit de ctre calculator. Fiecare
utilizeaz o strategie diferit, dar rezultatele sunt aceleai; ambele iau programele i le transform ntr-o serie
de cifre 1 i 0 (denumit limbaj main), aa cum se arat n figura 4.

FIGURA 4
Att interpretoarele, ct i compilatoarele traduc codul surs n limbajul main, de nivel inferior, pe care-l poate nelege calculatorul.

Interpretoarele
Unele limbaje de programare, cum ar fi APL i BASIC, exist ca interpretoare (exist i compilatoare
asemntoare cu interpretorul BASIC, cum ar fi Visual Basic). Interpretoarele traduc cte o linie o dat,
executnd fiecare linie pe msur ce este tradus. Denumirea de interpretor este foarte descriptiv. Se poate
cunoate modul n care opereaz interpretoarele calculatoarelor deoarece se cunoate modul n care lucreaz
interpreii umani.
S presupunem c v d cineva o carte ntr-o limb strin pe care n-o cunoatei. Pentru a nelege
coninutul crii, ai putea angaja un interpret uman care s v-o citeasc. Interpretul citete un rnd, l traduce,
apoi v citete urmtorul rnd. Singurul dezavantaj al interpretoarelor (spre deosebire de compilatoare, descrise
n seciunea urmtoare) este c interpretorul trebuie s traduc din nou liniile pe care dorii s le citesc nc o
dat. Interpretarea este mai lent dect compilarea, n figura 5 este ilustrat poziia interpretului uman ntre
dumneavoastr i carte. Reinei aceasta atunci cnd citii despre interpretoarele calculatoarelor.

FIGURA 5
Un interpretor traduce pe rnd cte o linie.

Un interpretor de limbaj de programare acioneaz ca i un interpret uman, prin aceea c procesul de
interpretare a cte unei linii o dat poate fi lent. Adeseori, calculatoarele ndeplinesc sarcini repetitive, cum ar fi
Bazele Utilizrii Calculatoarelor
Cursul 2

9
tiprirea unor sute de cecuri de pe statul de plat. Dac avei un limbaj de programare cu interpretor, acesta ia
fiecare linie a programului, o traduce, apoi o execut. Acest proces face ca sarcinile repetitive s decurg foarte
ncet.
Mai jos este prezentat o poriune dintr-un program n BASIC. Tot ceea ce trebuie s tii este c aceste
linii se repet de 50 de ori:
FOR i = 1 TO 50
PRINT i
NEXT i
Motivul pentru care interpretorul este lent const n faptul c - de fiecare dat cnd se repet o linie - trebuie s-o
interpreteze din nou. Rezult c aceste trei linii de program sunt interpretate i executate de 50 de ori.
Interpretoarele prezint i avantaje fa de compilatoare. Limbajele interpretate sunt puin mai uor de
nvat de ctre programatorii nceptori. Din punct de vedere istoric, procesul de compilare a programelor este
mai dificil dect interpretarea lor (cu toate c multe dintre compilatoarele actuale sunt aproape la fel de uor de
utilizat ca i interpretoarele). Timpul dintre rularea unui program pn la obinerea rezultatelor acestuia este mai
scurt, atunci cnd se utilizeaz un interpretor. Aceast reacie rapid este util nceptorilor n programare.

Compilatoarele
n loc de a angaja un interpret pentru a v traduce cartea scris ntr-o limb strin, ai putea mai bine s-
i cerei traductorului s compileze cartea pentru dumneavoastr. Traductorul poate s stea jos i s scrie
interpretarea pentru dumneavoastr, fr s v-o citesc n timpul acesta. Cu toate c aceast metod necesit
un timp mai ndelungat, dumneavoastr putei citi versiunea compilat i putei face referiri la aceasta de cte
ori este necesar.
n figura 6 este prezentat procesul de compilare a unei cri. Partea bun n a avea cartea compilat este
c, o dat aceasta compilat, nu mai este nevoie de interpret.

FIGURA 6
Dup compilarea crii, nu mai este nevoie de traductor.

Compilarea unui program necesit un pas n plus fa de interpretarea acestuia. Trebuie s-i cerei
compilatorului s compileze programul i apoi s ateptai rezultatul. Numai dup compilarea ntregului program
va putea funciona vreo parte din acesta. Majoritatea programatorilor nceptori ntmpin destule dificulti n
nvarea interaciunilor programului cu componentele hardware, sistemului de operare i limbajului n sine, fr
a mai avea de nvat i comenzile compilatorului.
Majoritatea firmelor prefer limbaje de programare cu compilatoare deoarece - o dat compilate -
programele sunt executate mult mai rapid dect dac ar fi interpretate. In exemplul din limbajul BASIC de mai
sus, cele trei linii sunt compilate n limbaj main o singur dat. Dup ce este terminat compilarea, programul
execut cele 50 de repetiii fr traducere.
Bazele Utilizrii Calculatoarelor
Cursul 2

10
Firmele prefer programele compilate fa de cele interpretate i din motive de securitate. O dat
compilat, un program nu poate fi modificat cu uurin. Atunci cnd cumprai un program, sunt anse bune ca
acesta s fie deja compilat. Putei s-l rulai, dar nu putei vedea codul surs.
Unele dintre limbajele de programare actuale, cum ar fi Visual Basic, permit att rularea programelor
interpretate, ct i a celor compilate. Prin urmare, se obin att avantajele oferite de ctre un limbaj interpretat
privind testarea, ct i - dup terminarea testrii - viteza i securitatea oferite de ctre limbajele cu compilatoare.

Exactitatea este totul
Acum v dai perfect de bine seama c un calculator este o main ce nu poate trata cu succes ambiguitile.
Pacostea unui programator o constituie seria de erori ce apar n program. Programatorii trebuie s se asigure
c nu scriu programe ce conin erori, cu toate c acest lucru nu este ntotdeauna aa de uor cum ar putea
prea. n terminologia folosit n domeniul calculatoarelor, o eroare de program este cunoscut sub denumirea
de bug. Atunci cnd programatorii fragmenteaz problema n instruciuni detaliate, adeseori se ntmpl ca
acetia s omit unele lucruri sau s programeze ceva ce nu trebuie. Atunci cnd este rulat programul, se
strecoar erori din cauza bug-urilor din acesta.

Depanarea este procesul pe care-l parcurge programatorul pentru a elimina erorile dintr-un program.
Atunci cnd acesta scrie un program, adeseori l ruleaz n forma sa neterminat (att ct se poate), pentru a
detecta ct mai multe erori posibil i a le exclude din programul final. Adeseori, majoritatea erorilor pot fi gsite
numai dup ce programul este scris n ntregime.
De multe ori, programatorii nceptori nu neleg ct de uor este s introduci hibe n program. Ateptai-
v la ele i nu v lsai surprins. Muli studeni n domeniul programrii duc programul instructorului, spunnd:
calculatorul nu merge cum trebuie", cnd - n realitate - programul conine una sau dou hibe. Atunci cnd
ncepei s scriei propriile programe, ateptai-v s avei de corectat unele probleme. Nimeni nu poate scrie
ntotdeauna un program perfect.
n funcie de lungimea programului, timpul necesar programatorului (sau programatorilor) pentru a
corecta problemele din acesta este adeseori aproape la fel de lung ca i cel necesar pentru scrierea
programului. Unele erori sunt foarte greu de gsit.
Exist dou categorii de hibe n programe: erori de sintax i erori de logic. Pentru a vedea care este
diferena, ncercai s gsii cele dou erori din urmtoarea afirmaie:

Exist dou errori n aceast propoziie.

Avei nevoie de un indiciu? nc nu; mai ncercai s gsii cele dou erori, nainte de a merge mai
departe. Prima eroare este evident. Cuvntul errori" este scris greit; ar trebui s fie erori". A doua problem
este mult mai dificil de gsit. A doua greeal din aceast afirmaie const n faptul c ntreaga premis pe care
se bazeaz afirmaia este incorect. Exist o singur eroare n aceast afirmaie, iar aceasta const n scrierea
greit a cuvntului errori". Deci, logica ntregii afirmaii constituie ea nsi o eroare.
Acest exemplu demonstreaz diferena dintre o eroare de sintax i o eroare de logic. Eroarea de
sintax este mult mai uor de identificat. De obicei, erorile de sintax constau n comenzi din limbajul de
programare ortografiate greit i probleme de gramatic legate de modul de utilizare a limbajului de
programare. Erorile de logic apar atunci cnd programul dumneavoastr este corect din punct de vedere al
sintaxei, dar i-ai spus s fac ceva ce nu reprezint ceea ce ar trebui fcut de fapt.
Bazele Utilizrii Calculatoarelor
Cursul 2

11
Compilatoarele i interpretoarele pot localiza erorile de sintax din programul dumneavoastr atunci cnd
ncercai s-l compilai sau s-l rulai. Acesta este un alt motiv pentru care erorile de sintax sunt mai uor de
depistat: calculatorul v spune unde se afl. Atunci cnd un calculator ntlnete o eroare de sintax, se oprete
i refuz s analizeze mai departe programul pn cnd aceasta nu este corectat.
S presupunem c scriei un program de tiprire a facturilor pentru clienii firmei dumneavoastr. Din
cauza unei erori, calculatorul tiprete toate facturile cu un deficit de 1.000$. Cu alte cuvinte, conform facturilor
fiecare client are un credit de 1.000$. Calculatorul i-a fcut treaba, acionnd conform instruciunilor din
programul dumneavoastr. Este evident c acesta nu a coninut erori de sintax, deoarece a fost rulat fr s
se opreasc. Totui, erorile de logic l mpiedic s calculeze corect.
Testarea extensiv este de importan major. Programatorul dorete s elimine toate erorile, astfel nct
programul s funcioneze corect n final, atunci cnd va fi folosit de ctre utilizator. Cu ct este mai vast
programul, cu att aceast sarcin este mai dificil, eliminarea bug-urilor din programe constituie doar o parte
din sarcinile la care se nham zilnic programatorul.
Mai exist nc un tip de eroare: eroarea din timpul execuiei. De fapt, erorile din timpul execuiei sunt
aproape ntotdeauna cauzate de ctre o greeal de logic, datorat faptului c programatorul nu a reuit s
prevad - deci s rezolve - o problem potenial. Erorile din timpul execuiei pot aprea dac un program
ncearc s scrie pe o dischet fr a verifica mai nti dac clapeta unitii de dischet este nchis i dac
discheta se afl n interiorul unitii. O eroare din timpul execuiei poate aprea, de exemplu, dac programul
face o mprire la zero (mprirea la zero nu are sens din punct de vedere matematic). Cu ct vei programa
mai mult, cu att vei nva mai bine s prevedei potenialele erori din timpul execuiei.

5.Proiectarea unui program
Programatorii nva s aib rbdare nc de la nceputul carierelor lor n programare. Ei descoper c
proiectarea corect este decisiv pentru un program de succes. Poate c ai auzit termenul de analiz i
proiectare de sistem. Aceasta este denumirea atribuit practicii de analizare a problemei i de proiectare
ulterioar a programului, conform acestei analize. Au fost scrise cursuri de facultate i cri ntregi despre
analiza i proiectarea de sistem. Aceast lecie va aborda ideile principale, permindu-v s vedei prin ce
trece un programator de calculator mainstream nainte de a scrie programe.
n aceast lecie vei afla rspunsurile la urmtoarele chestiuni:
De ce este att de important proiectarea programelor;
Care sunt cele trei etape necesare n scrierea unui program;
Ce se nelege prin definirea datelor de ieire;
De ce este mai bun proiectarea de sus n jos dect cea de jos n sus;
Ce este o organigram;
Ce semnificaie au simbolurile dintr-o organigram;
Cnd este mai avantajoas utilizarea pseudo-codului dect a organigramei;
Care este etapa final n procesul de programare.

Necesitatea proiectrii
Atunci cnd un constructor ncepe s construiasc o cas, nu ia un ciocan i se apuc s nale pereii
buctriei. nainte de a ncepe ceva, arhitectul trebuie s proiecteze casa cea nou. Aa cum vei vedea n
curnd, i un program trebuie proiectat nainte de a fi scris.
Un constructor trebuie s tie mai nti ce dorete cumprtorul casei. Nimic nu poate fi construit dect
atunci cnd constructorul are n minte rezultatul final. Deci, cumprtorii casei trebuie s consulte un arhitect. Ei
Bazele Utilizrii Calculatoarelor
Cursul 2

12
i spun acestuia cum vor s arate casa. Arhitectul i ajut s se hotrasc, spunndu-le ce este posibil i ce nu.
n stadiile iniiale, preul constituie ntotdeauna un factor care necesit acorduri de compromis ntre proiectani i
cumprtori.
Dup ce arhitectul a conceput planurile casei, constructorii trebuie s planifice resursele necesare pentru
construirea acesteia. Numai dup terminarea proiectului casei, ntocmirea dosarului cu autorizaii, plasarea
banilor, cumprarea materialelor i angajarea lucrtorilor poate ncepe construcia fizic a casei. De fapt, cu ct
constructorul investete mai multe eforturi n aceste etape preliminare, cu att mai repede poate fi terminat
construcia.
Dac se construiete casa nainte de a fi proiectat adecvat, problema este c eventualii cumprtori ar
putea dori s fac modificri atunci cnd este prea trziu pentru a mai fi posibil. Este foarte dificil de adugat o
camer de baie ntre dou dormitoare dup terminarea casei. Ideea principal este de a face proprietarii i
constructorii s se pun de acord asupra aspectului final al casei. Atunci cnd toate prile implicate au czut de
acord asupra tuturor specificaiilor, mai rmne puin loc pentru ulterioare dezacorduri. Cu ct sunt mai clare
planurile iniiale, cu att se pot ivi mai puine probleme pe parcurs, deoarece toate prile s-au pus de acord
asupra acelorai planuri ale casei.

Proiectarea programelor
Dumneavoastr trebuie s avei totdeauna n minte asemnrile cu construcia unei case, nainte de a
scrie un program de lungime mai mare. Nu trebuie s v repezii la tastatur i s v apucai s scriei
instruciuni din program nainte de a-l proiecta, aa cum un constructor nu trebuie s ia ciocanul n mn nainte
de a fi stabilite planurile casei. Cu ct vei depune mai multe eforturi pentru proiectarea iniial, cu att vei
termina mai repede programul final.
Mulumit tehnologiei calculatoarelor, un program de calculator este mai uor de modificat dect o cas.
Dac ai omis o rutin dorit de utilizator, putei s-o adugai ulterior mult mai uor dect ar putea un constructor
s adauge o camer unei case terminate. Cu toate acestea, a aduga ceva ntr-un program nu este niciodat
att de simplu ca a-l proiecta corect de la nceput.
ntreinerea programului, ce are loc dup ce acesta este scris, testat i distribuit, constituie unul dintre
aspectele ce consum cel mai mult timp n procesul de programare. Programele sunt n permanen
modernizate, pentru a reflecta noile cerine ale utilizatorului. Uneori, dac programul nu este proiectat corect
nainte de a fi scris, utilizatorul nu-l va accepta pn ce acesta nu va efectua exact ceea ce dorete el.
Consultanii din domeniul calculatoarelor nva repede s obin acordul utilizatorului i chiar semntura
acestuia pe proiectul programului, nainte de a ncepe programarea. Dac att utilizatorul, ct i programatorul
se pun de acord asupra a ceea ce este de fcut, la prezentarea programului mai rmne puin loc pentru
dispute. i firmele cu departamente de prelucrare a datelor cer echipelor de programatori s ajung la un acord
scris cu utilizatorii. Resursele firmei sunt limitate; nu este timp pentru a aduga ulterior ceva ce trebuia s fie
acolo nc de la nceput. O mare parte din aceast lecie este dedicat explicrii modului n care este bine s fie
nceput realizarea proiectelor asupra crora dumneavoastr i utilizatorul vei cdea de acord.
Exist trei etape care trebuie parcurse n scrierea un program:
1. Stabilirea definirii datelor de ieire;
2. Dezvoltarea raionamentului necesar pentru obinerea acelor date de ieire;
3. Scrierea programului.
Remarcai c scrierea programului este ultima etap n realizarea acestuia. Nu e att de absurd cum
pare. Amintii-v c realizarea fizic a casei este ultima etap a construciei acesteia; planificarea corect,
nainte de nceperea construciei propriu-zise, este de importan major. De fapt, vei descoperi c scrierea
Bazele Utilizrii Calculatoarelor
Cursul 2

13
liniilor de program constituie una dintre cele mai uoare etape ale procesului de programare. Dac proiectul
dumneavoastr este bine gndit, programul se scrie practic singur; scrierea acestuia devine aproape o urmare
fireasc a ntregului proces. n restul acestei lecii vor fi analizate aceste trei etape ale proiectrii programelor.
Etapa I: definirea datelor de ieire
nainte de a ncepe un program, trebuie s avei clar n minte ce trebuie s fac acesta. Dac privii nc o dat
modelul fundamental al programrii din figura 7 vei observa c ieirea este ultimul lucru realizat, dar primul
lucru ce trebuie proiectat. Aa cum constructorul trebuie s tie cum va arta casa nainte de a ncepe
construcia acesteia i programatorul trebuie s tie care vor fi datele de ieire, nainte de a ncepe scrierea pro-
gramului.


FIGURA 7
La nivel fundamental, prelucrarea datelor transform datele n informaii.

Ieirea ntr-un program nseamn mai mult dect tiprirea informaiilor. Orice este produs de ctre
program i este vzut de ctre utilizator este considerat dat de ieire iar dumneavoastr trebuie s-o proiectai.
Trebuie s tii cum trebuie s arate fiecare ecran din program i ce va fi pe fiecare pagin a fiecrui raport
tiprit de acesta.
Unele programe produc o cantitate imens de date de ieire. Nu srii peste aceast prim etap att de
important a procesului de proiectare, numai pentru c sunt multe date de ieire. Fiind un rezultat mai complex,
devine mai important ca dumneavoastr s-l definii. Stabilirea definirii datelor de ieire este relativ facil -
uneori chiar de-a dreptul plictisitoare i consumatoare de timp. Timpul necesar pentru definirea datelor de ieire
poate fi tot att de lung ca acela necesar pentru a treia etap, care const n scrierea programului (totui, cea
de-a doua etap necesit cel mai mult timp). Vei consuma tot att de mult timp - i chiar mai mult - dac evitai
stabilirea definiri datelor de ieire n faza de nceput.
Unul dintre avantajele oferite de sistemul de operare Windows const n natura sa vizual. nainte de
apariia acestuia, instrumentele de programare se limitau la proiectarea i implementarea bazate pe text. Astzi,
proiectarea ecranului unui utilizator nseamn lansarea unui mediu de programare, cum ar fi Visual Basic,
desenarea ecranului i tragerea obiectelor cu care va interaciona utilizatorul n interiorul acestuia, cum ar fi un
buton OK. Prin urmare, putei proiecta rapid ecrane prototip, pe care s le trimitei utilizatorului. Dup ce acesta
va vedea ecranul cu care va trebui s interacioneze, i va putea da seama mult mai bine dac dumneavoastr
ai neles care sunt cerinele pe care trebuie s le ndeplineasc programul.
Definirea datelor de ieire nseamn mai mult dect o proiectare preliminar. Ea permite o bun
cunoatere a acelor elemente ale datelor pe care trebuie s le urmreasc, s le calculeze i s le produc
programul. Definirea datelor de ieire ajut i la stabilirea tuturor datelor de intrare necesare pentru producerea
datelor de ieire.
Definirea datelor de ieire const n multe pagini de detalii. Trebuie s fii capabil de a specifica toate
detaliile unei probleme, nainte de a ti ce rezultat este necesar. Una dintre cele mai bune strategii n
specificarea detaliilor unei probleme este proiectarea de sus n jos.

Bazele Utilizrii Calculatoarelor
Cursul 2

14
Proiectarea programelor de sus n jos
Cea mai bun modalitate de proiectare existent este cea de sus n jos. Cu ajutorul proiectrii de sus n
jos, se pot obine detaliile necesare pentru ndeplinirea unei sarcini de programare. Proiectarea de sus n jos
este procesul de fragmentare a problemei generale n mai multe detalii, pn la epuizarea tuturor acestora.
Problema n ceea ce privete proiectarea de sus n jos este c programatorii au tendina de a nu o utiliza.
Ei au tendina de a proiecta ncepnd din direcia opus (denumit proiectare de jos n sus). Prin ignorarea
proiectrii de sus n jos, v ncrcai cu sarcina grea de a v aminti fiecare detaliu care va fi necesar; prin
proiectarea de sus n jos, detaliile se desprind de la sine. Dac utilizai strict proiectarea de sus n jos, nu
trebuie s v preocupe cele mai mici detalii deoarece acest proces se ocup de producerea acestora.
Unul dintre elementele cheie din proiectarea de sus n jos const n aceea c v foreaz s amnai
detaliile pe mai trziu. Proiectarea de sus n jos v foreaz s gndii ct de mult posibil n termeni privind
problema general. Proiectarea de sus n jos v menine concentrat. Prin utilizarea proiectrii de jos n sus, este
foarte uor s pierdei din vedere pdurea din cauza copacilor. Ajungei prea repede la detalii i pierdei din
vedere obiectivele generale ale programului.

Proiectarea de sus n jos n realitate
Proiectarea de sus n jos poate fi neleas mai uor prin aplicarea sa la o problem uzual din realitate, nainte
de a aborda o problem de calculatoare. Proiectarea de sus n jos nu se aplic doar problemelor de
programare. O dat stpnit, proiectarea de sus n jos se poate aplica n orice situaie concret ce necesit o
planificare n detaliu. Probabil cel mai detaliat eveniment pe care-l poate planifica o persoan este o cstorie.
Deci, o cstorie reprezint exemplul perfect de observare a planificrii de sus n jos n aciune.
Care este primul lucru ce trebuie fcut pentru a avea loc o cstorie? Mai nti, trebuie gsit un viitor
partener (pentru a gsi ajutor n aceast privin v trebuie o alt carte). Cnd se ajunge la momentul n care
este necesar planificarea cstoriei, proiectarea de sus n jos constituie cea mai bun strategie de abordare a
evenimentului. Modalitatea n care nu trebuie planificat o cstorie este s ncepi prin a-i bate capul cu
detaliile; totui, aceasta este utilizat de ctre majoritatea oamenilor, ncep s se gndeasc la rochii, la cel
care va cnta la org, la flori i la tortul ce va fi servit la recepie. Cea mai mare problem, atunci cnd se
ncearc cuprinderea tuturor acestor detalii nc de la nceput, const n aceea c se pierd din vedere att de
multe; este foarte uor s uii un detaliu pn cnd este prea trziu. Detaliile proiectrii de jos n sus constituie
un obstacol.

Etapele proiectrii de sus n jos
Cele trei etape necesare n proiectarea de sus n jos sunt:
1. Stabilirea scopului general.
2. Fragmentarea scopului n dou, trei sau mai multe detalii. Prea multe detalii duc la omisiuni.
3. Evitarea detaliilor inutile pe ct posibil. Trebuie repetate etapele l i 2, pn cnd fragmentarea problemei nu
mai are sens.
Care este scopul general al unei cstorii? Gndind n cei mai generali termeni posibili, a face nunta"
este o expresie ct se poate de general. Dac ai fi nsrcinat cu planificarea unei cstorii, scopul general de
a face nunta" v-ar ndrepta direct spre int. S presupunem c, la cel mai nalt nivel, scopul este a face
nunta".
Scopul general v menine concentrat, n ciuda naturii sale prolixe, a face nunta" omite asemenea detalii
cum ar fi planificarea lunii de miere. Dac nu stabilii exact limitele problemei la care lucrai, v vei pierde n
detalii i - ceea ce este mai important - vei uita o parte dintre acestea. Dac planificai att nunta, ct i luna de
Bazele Utilizrii Calculatoarelor
Cursul 2

15
miere, trebuie s facei dou proiecte de sus n jos sau trebuie s includei cltoria din luna de miere n scopul
general, aflat la cel mai nalt nivel. Acest plan al nunii include cstoria n sine - ceremonia i recepia - fr a
conine i detalii legate de luna de miere.
Acum, c tii ncotro v ndreptai, ncepei s fragmentai scopul general n dou sau trei detalii. S
zicem: culorile care se vor purta la nunt, lista de invitai, plata preotului, ... hopa, sunt prea multe detalii! Ideea
de baz n proiectarea de sus n jos este s lai deoparte detaliile, ct de mult este posibil. Nu v grbii. Atunci
cnd descoperii c ai fragmentat problema curent n mai mult dect trei sau patru pri, nseamn c v-ai
grbit n proiectarea de sus n jos. Lsai deoparte detaliile, n esen, putei fragmenta scopul de a face nunta"
n urmtoarele dou componente principale: ceremonia i recepia.



Utilizarea proiectrii de sus n jos
Urmtoarea etap n proiectarea de sus n jos const n a face acelai lucru cu fiecare dintre aceste
componente. Ceremonia se compune din participani i amplasare. Participanii la ceremonie includ oaspeii,
petrecerea i lucrtorii (preotul, organistul i aa mai departe - dar aceste detalii vor veni puin mai trziu).
Desigur c proiectarea de sus n jos produce un rezultat de form triunghiular, ale crui pri superioare sunt
prezentate n figura 8. Mai sunt nc multe detalii de adugat, dar aceasta este ideea general; trebuie s lsai
deoparte detaliile ct de mult este posibil. Detaliile apar de la sine, pe msur ce fragmentai sarcinile n mai
multe componente. Asigurndu-v c scopul suprem conine ideea general spre care intii, detaliile vor veni
de la sine.
n curnd, nu vei mai avea loc pe pagin. Nu-i nimic - utilizai mai multe coli de hrtie, n proiectarea de
sus n jos, putei s numerotai foile i s plasai numrul paginii n caseta de deasupra" acestora. De fapt,
evidena foilor nu este att de important cum ai putea crede. Prima pagin este punctul central care v
asigur c v ndreptai spre scopul dorit. Continuai s fragmentai fiecare detaliu ulterior, pn cnd nu vei
mai putea continua, n final, vei descoperi c nu a fost omis nici un detaliu.

FIGURA 8
Prima parte a planificrii unei nuni prin utilizarea proiectrii de sus n jos include cele mai importante scopuri.

Bazele Utilizrii Calculatoarelor
Cursul 2

16
Deocamdat, nu trebuie s v preocupe ordinea detaliilor. Scopul proiectrii de sus n jos const n
producerea tuturor detaliilor necesare (n final), nu o ordonare oarecare a acestor detalii. Trebuie s tii spre ce
intii i exact ceea ce este necesar, nainte de a lua n considerare relaiile dintre aceste detalii i ordinea lor.
n final, vei avea mai multe pagini cu detalii ce nu mai pot fi fragmentate, n acest caz, probabil c vei
sfri cu mncarea servit la recepie, cum ar fi arahidele servite la gustri. (Totui, dac ncepei s facei o
list cu aceste detalii, s-ar putea s uitai multe dintre ele.) Trecnd la o problem mai computerizat", s
presupunem c v-ai asumat sarcina de a scrie un program de efectuare a statului de plat pentru o firm. Ce ar
necesita programul de efectuare a statului de plat? Ai putea ncepe prin a ntocmi o list a detaliilor din statul
de plat, cum ar fi aceasta:
Tiprirea cecurilor din statul de plat;
Calculul impozitelor;
Ce este greit n aceast strategie? Dac ai spus c detaliile sunt puse prea devreme, avei dreptate. Locul cel
mai bun de pornire este de la vrf. Scopul cel mai general al unui program de realizare a statului de plat ar
putea fi efectuarea statului de plat". Acest scop suprem menine n afara programului alte detalii (nu va fi
inclus prelucrarea nici unui registru general, n afar de cazul n care o parte a sistemului de state de plat mo-
dernizeaz un fiier de registru general) i v menine atenia concentrat pe problema din faa dumneavoastr.
Privii figura 9. Aceasta ar putea fi prima pagin din proiectarea de sus n jos a statului de plat. Orice program
de stat de plat trebuie s includ un mecanism oarecare de introducere, tergere i modificare a informaiilor
despre salariai, cum ar fi adresa, oraul, statul, codul potal, scutirile de impozite i aa mai departe. Ce alte
detalii despre fiecare salariat mai sunt necesare? Deocamdat nu ntrebai. Proiectul nu este nc gata pregtit
pentru toate aceste detalii.

FIGURA 9
Prima pagin reprezentnd proiectarea de sus n jos a programului de efectuare a statului de plat ar include detaliile de cel mai nalt nivel.

Mai este mult pn ce vei termina proiectarea de sus n jos a statului de plat, dar figura 9 reprezint
primul pas. Trebuie s continuai fragmentarea fiecrei componente, pn la apariia detaliilor finale. Numai
dup ce ai pregtit toate detaliile, putei ncepe s stabilii ce rezultate va produce programul.
Numai dup ce ai reuit, mpreun cu utilizatorul, identificarea tuturor detaliilor prin proiectarea de sus n
jos, putei stabili ce vor cuprinde aceste detalii.