Sunteți pe pagina 1din 15

Bazele Utilizrii Calculatoarelor

Cursul 3

DEZVOLTAREA RAIONAMENTULUI
Dup ce v-ai pus de acord cu utilizatorul asupra scopurilor i rezultatului programului, restul
depinde numai de dumneavoastr. Treaba dumneavoastr este s luai acel rezultat i s stabilii
cum putei determina calculatorul s-l produc. Ai fragmentat problema global n instruciuni
detaliate, pe care calculatorul le poate executa. Aceasta nu nseamn ns c suntei gata de a scrie
programul, ci din contra. Acum suntei gata pentru a dezvolta raionamentul ce va produce acel
rezultat.
Definirea datelor de ieire parcurge o etap bun din descrierea a ceea ce se presupune c
trebuie s efectueze programul. Acum, dumneavoastr trebuie s hotri cum se va ndeplini
aceasta. Trebuie s ordonai detaliile astfel nct acestea s opereze ntr-un mod ordonat n timp. De
asemenea, trebuie s hotri ce decizii va lua programul dumneavoastr, ca i aciunile rezultate din
fiecare dintre aceste decizii.
Organigramele
Organigramele i instrumentele corespunztoare de concepere a raionamentului constituie
elementele de baz ale profesionitilor din domeniul calculatoarelor. Complexitatea programelor cere
ca s gsii o modalitate oarecare de descriere a raionamentului programului, nainte de a-l scrie.
Organigramele pot prea arhaice, dar se constat c programatorii ce nu utilizeaz astfel de
instrumente sunt mai puin productivi dect ar putea fi.
Se spune c o ilustraie face ct o mie de cuvinte, iar organigrama ofer o reprezentare ilustrat
a logicii programului. Organigrama nu include toate detaliile programului, ci reprezint cursul logic
general al acestuia. Organigrama ofer logica pentru programul final. Dac organigrama este corect
desenat, scrierea efectiv a programului devine o chestiune de rutin. Dup terminarea ntregului
program, organigrama poate constitui documentaia pentru acesta.
Organigrama descrie caseta central a modelului de intrare-prelucrare-ieire, corespunztor
programelor de calculator.
Organigramele sunt compuse din simboluri utilizate n standardele industriale:

Fig. 1
Numai dup ce ai nvat s programai, putei ncepe s creai organigrama unui program; cu
toate acestea, trebuie s realizai organigrame nainte de a scrie programe. Acest sindrom de tip oul
sau gina" este obinuit pentru nceptorii n programare. Atunci cnd vei ncepe s scriei propriile
programe, vei nelege mult mai bine necesitatea organigramelor.

Bazele Utilizrii Calculatoarelor


Cursul 3

Aa cum putei constata exist multe simboluri posibile. Cu toate acestea, numai cteva sunt
utilizate n mod curent. Acest curs v prezint cel mai des ntlnite simboluri de organigram. Cu cele
pe care le vei cunoate aici, vei putea scrie i realiza toate organigramele care v vor fi vreodat
necesare. Celelalte simboluri constituie doar rafinamente ale celor despre care vei afla aici.
n figura 2 sunt descrise simbolurile de organigram utilizate n acest curs; ele sunt extrem de
des utilizate n literatura referitoare la programare, n ceea ce privete proiectarea de sus n jos, putei
utiliza organigramele pentru a descrie orice eveniment, nu numai programele de calculator.

Fig. 2
Simbolurile de organigram nu au nici o legtur cu casetele din proiectarea de sus n jos.
Reinei c proiectarea de sus n jos este instrumentul utilizat pentru obinerea detaliilor programului.
Organigramele furnizeaz raionamentul necesar pentru obinerea acestor detalii.
n continuare sunt descrise aceste simboluri si modul lor de utilizare.
Prelucrare
Conine o descriere a ceea ce se efectueaz. Se utilizeaz un simbol de prelucrare
atunci cnd are loc un proces direct de prelucrare a datelor, cum ar fi un calcul sau
iniializare ntr-un program.
Decizie
Utilizat atunci cnd programul trebuie s ia o decizie bazat pe dou alternative
cum ar fi tiprirea pe ecran sau la imprimant, n funcie de locul n care dorete
utilizatorul s se efectueze tiprirea.
Intrare/Iesire
Se utilizeaz pentru orice intrare sau ieire efectuat de ctre program, cum ar fi
adresarea unei ntrebri utilizatorului sau tiprirea unui raport. (Forma nclinat a
simbolului I/O indic semnificaia sa; semnul"/" din prescurtarea I/O este nclinat n
acelai mod.)
Terminal
Simbolul terminal cu cuvntul START scris n interior este folosit ntotdeauna pentru
nceperea oricrei organigrame. Simbolul terminal cu cuvintele STOP sau RETURN
scrise n interior este folosit ntotdeauna la sfritul oricrei organigrame. Atunci
cnd v vei referi ulterior la organigram, nu se va pune ntrebarea unde ncepe i
unde se sfrete.

Bazele Utilizrii Calculatoarelor


Cursul 3

Continuare

Se pune un conector de continuare n partea de jos a oricrei organigrame ce se


continu pe o alt pagin. Numrul paginii urmtoare se pune n interiorul
conectorului de continuare. Se pune un conector de continuare la nceputul fiecrei
pagini ce continu organigrama de pe o pagin anterioar. Numrul paginii
precedente se pune n interiorul conectorului de continuare ce marcheaz nceputul
noii pagini din organigram.
Conectorul de flux
Se utilizeaz atunci cnd un flux logic al organigramei trebuie s fuzioneze cu
sensul logic existent. De obicei se observ o liter a alfabetului n interiorul
conectorului de flux. Un conector de flux corespunztor (cu aceeai liter)
indic punctul de revenire la raionamentul existent.
Direcia de flux Sgeile conecteaz fiecare simbol din organigram i indic direcia de flux a
programului.
Regulile de realizare a organigramelor
Cu toate c fiecare programator deseneaz organigramele n mod diferit, exist cteva reguli
clare pe care este bine s le cunoatei nainte de a continua. Aceste reguli sunt aproape universal
valabile i trebuie s le cunoatei, astfel nct organigramele s poat fi citite de i alii. Alturi de
fiecare regul vei putea observa cte un exemplu care urmeaz, respectiv ncalc regula, astfel nct
v vei putea face o idee despre modul de utilizare al regulii respective.
Regula 1: utilizarea simbolurilor de organigram standard. Dac folosii simbolurile convenionale,
ceilali vor putea nelege semnificaia organigramei dumneavoastr, iar dumneavoastr le vei putea
nelege pe ale lor. n figura 3, sus sunt prezentate modalitile corecte i incorecte de a urma aceast
regul.

Fig. 3

Bazele Utilizrii Calculatoarelor


Cursul 3

Regula 2: de obicei, raionamentul general al organigramei trebuie s se desfoare pe pagin de


sus n jos i de la stnga la dreapta. Dac organigramele dumneavoastr nu se conformeaz acestui
standard, ele ar putea deveni dezordonate i dificil de urmrit. n figura 3, jos este prezentat direcia
corect de desfurare a organigramelor. Observai c sgeile de direcie a fluxului indic sensul
urmat de raionament.

Fig. 4
Unele organigrame nu au nevoie s curg ctre dreapta, deoarece descriu secvenial logica
programului, ns majoritatea prezint un fel de curs ntr-una dintre cele dou direcii recomandate. Ar
putea exista situaii n care o organigram corect s par c ncalc aceast regul; n curnd vei
vedea un astfel de exemplu. Din cauza repetrilor din raionament, este posibil ca organigrama s
aib zone ce curg n sus i ctre stnga pentru a repeta seciuni din organigram, dar, de fapt, firul
logic trebuie s fie continuat n direciile prefereniale.
Firul logic general trebuie s curg de sus n jos i de la stnga la dreapta.
Regula 3: simbolul de decizie este singurul care poate avea mai multe puncte de ieire i, de obicei,
are dou. Majoritatea simbolurilor de organigram au un punct de intrare i unul de ieire. Sgeile de
direcie a fluxului indic punctele de intrare i de ieire. Simbolul de decizie are ntotdeauna dou
puncte de ieire deoarece n acel loc din raionament poate avea loc unul din dou lucruri, iar fluxul
ulterior al raionamentului este determinat de ctre rezultatul acelei decizii. n figura 4 este ilustrat
aceast regul.
Regula 4: un simbol de decizie trebuie s conin ntotdeauna o ntrebare la care se poate rspunde
prin da sau nu. Decizia dintr-o organigram trebuie s aib ntotdeauna dou i numai dou variante
(de aici rezult i motivaia celor dou ieiri de la Regula 3). Decizia se poate vedea n nsi simbolul
respectiv. Majoritatea simbolurilor de organigram conin cuvinte ce descriu ceea ce se ntmpl n
acel loc din organigram. Figura 5 ilustreaz aceast regul.

Bazele Utilizrii Calculatoarelor


Cursul 3

Fig. 5
Ieirile din fiecare decizie trebuie, de asemenea, etichetate n mod clar. Deoarece ieirile sunt
rezultatele unei ntrebri la care se poate rspunde prin da sau nu, acestea se eticheteaz prin Da
sau Y, respectiv Nu sau N, astfel nct s se tie ce indic ieirea respectiv.
S-ar putea s v ntrebai dac este rezonabil s v ateptai ca toate deciziile s aib doar
dou rezultate posibile. Exist momente n care programul dumneavoastr trebuie s aleag o
valoare dintre multe altele, bazndu-se pe datele primite. Oricum ar fi, mai multe simboluri de decizie
vor putea rezolva orice numr de posibiliti.
Regula 5: instruciunile din interiorul simbolurilor trebuie s fie descrieri clare n limba romn, nu n
calculatoreasc" sau ntr-un limbaj de programare, nainte de a scrie programul, este necesar s
realizai organigrama acestuia. Nu trebuie s includei n interiorul simbolurilor de organigram
instruciuni de programare. Dac n acest moment ai fi fost gata pentru a programa, n-ar mai fi fost
nevoie s cheltuii timp pentru realizarea organigramei.
Organigrama constituie propriul dumneavoastr mers al logicii. De fapt, vei converti
organigrama n instruciuni dintr-un limbaj de programare, dar numai dup ce este sigur c aceasta
reprezint raionamentul corect , nu mai nainte.
Exemplu de organigram
n figura 6 este prezentat organigrama de apelare telefonic a unui prieten. Pentru a pstra
exemplul acesta n limite rezonabile, organigrama include aspectele importante ale problemei, cu
toate c mai exist nc multe alte modaliti de a realiza organigrama.
Vedei dac putei urmri organigrama. Sgeile de direcie v arat cum s procedai. Urmrii
organigrama de mai multe ori, de la nceput pn la sfrit, avnd n vedere fiecare dintre aceste
situaii diferite:
1. Presupunei c telefonul nu funcioneaz atunci cnd ncepei apelul.
2. Presupunei c prietenul dumneavoastr este acas i rspunde la telefon.
3. Presupunei c telefonul prietenului dumneavoastr este ocupat.
4. Presupunei c acas la prietenul dumneavoastr nu este nimeni.
5. Presupunei c prietenul dumneavoastr nu este acas, dar rspunde colegul de camer.
Observai c organigrama nu omite detaliile unui apel real. Pe de alt parte, nici nu caut s
presupun prea mult. Pentru dumneavoastr, apelarea telefonic a unui prieten poate s nsemne

Bazele Utilizrii Calculatoarelor


Cursul 3

simpla ridicare a receptorului i apelarea, dar - atunci cnd organizai detaliile n organigram ncepei s observai ct de multe lucruri ai considerat a fi subnelese.
Observai cum v ajut utilizarea unei organigrame pentru detalierea raionamentului
programului la organizarea i selectarea detaliilor necesare din program? n cursul anterior ai aflat
ct de important este fragmentarea scopurilor acestuia n mai multe etape detaliate. Organigrama v
ajut s facei tocmai aceasta.
Observai i cum acioneaz simbolurile conectoarelor pentru a menine organigram aerisit i
ordonat. Exist mai multe locuri n care se repet poriuni din organigram. De exemplu, dac
telefonul prietenului este ocupat, cercul conector notat cu A dirijeaz fluxul napoi n partea de sus a
organigramei. Raionamentele repetitive, cum ar fi acest; pare s mearg n sens opus celui de
parcurgere al organigramei, contrar celei de-a doua reguli; n realitate nu se ntmpl aa, deoarece
raionamentul repetat continu de fapt n jos i spre dreapta cnd se va rspunde n sfrit la
telefonul prietenului.

Fig. 6
Organigramele ca soluii la probleme reale
Trecnd la o problem cu o soluionare computerizat, s presupunem c dorii s realizai
organigrama mai multor sisteme de state de plat, incluznd orele suplimentare efectuate. Trebuie

Bazele Utilizrii Calculatoarelor


Cursul 3

detaliat procedura necesar pentru calculul salariului net, dat fiind posibilitatea de a exista o norm
i jumtate sau norm dubl, nainte de a realiza organigrama, ncercai s analizai aceste detalii:
Dac un salariat lucreaz 40 de ore sau mai puin, acesta va primi tariful pe or nmulit cu
numrul de ore lucrate.
Dac un salariat lucreaz ntre 40 i 50 de ore, acesta va primi tariful normal pe or nmulit cu
40 de ore, plus o dat si jumtate tariful pe or (de 1,5 ori tariful pe or) pentru numrul de ore
cuprinse ntre 40 i 50.
Dac un salariat lucreaz peste 50 de ore, acesta va primi un tarif dublu (de dou ori tariful pe
or), plus 10 ore la un tarif de o dat i jumtate (pentru numrul de ore cuprinse ntre 40 i 50), plus
de 40 de ori tariful normal pe or pentru primele 40 de ore.
Dei putei urmri aceste detalii dac nu avei ncotro, organigrama v ofer o modalitate mult
mai simpl de descriere a raionamentului. Urmrii organigrama din figura 7. Luai orice numr de ore
lucrate i urmai-l de-a lungul organigramei. Organigrama v menine pe calea dreapt a cursului
logic, fr detalii ce nu se aplic. A ncerca s scrii un program dup lista de trei puncte de mai sus
este mult mai dificil dect a-l scrie dup organigram.

Fig. 7

Pseudocodul
n ciuda soliditii si uurinei de realizare a organigramelor, unele firme prefer o alt metod
de descriere logic, denumit pseudocod.
Pseudocodul, denumit uneori i englez structurat, este o metod de scriere a raionamentului
prin utilizarea de propoziii, n locul diagramelor necesare realizrii organigramelor.

Bazele Utilizrii Calculatoarelor


Cursul 3

Organigramele necesit mult timp i mult hrtie pentru a fi desenate. Cu toate c exist
programe de realizare a organigramelor, care v ajut la desenarea si plasarea simbolurilor, acestea
sunt adeseori limitate i nu ofer flexibilitatea necesar de multe ori n logica programrii. Ca urmare,
adeseori trebuie s v resemnai a desena organigramele cu mna. Atunci cnd ai terminat o
organigram i constatai c ai omis dou simboluri importante, va trebui s redesenai o mare parte
din aceasta. Prin natura lor, organigramele necesit mult timp pentru a fi desenate, iar unele firme nu
accept ca programatorii lor s cheltuiasc timp pentru realizarea acestora, atunci cnd pseudocodul
poate s le nlocuiasc si este mai eficient ca timp.
Singurul instrument necesar pentru pseudocod este un procesor de text. Procesoarele de text
ofer capacitatea de a insera, muta i a terge poriuni de text. Deoarece pseudocodul nu necesit
desene, este mai rapid dect realizarea de mn a organigramelor i mai uor de ntreinut. n plus,
muli programatori sunt de prere c logica pseudocodului este mai uor de convertit n programul
final.
Ca i n cazul organigramelor, nu exist o modalitate de a nva pe cineva tehnicile pseudocodului, dac nu a petrecut un timp oarecare programnd. Prefixul pseudo nseamn fals; prin
urmare, pseudocodul nseamn literal cod fals. Cu ct tii mai multe despre limbajele de programare,
cu att v vei adapta mai bine la pseudocod, aa c citii urmtorul exemplu i ncercai s v formai
o prere despre acesta.
Pseudocodul nu conine instruciuni ale unui limbaj de programare, dar nici nu este o engleza
cursiv. Este un set de cuvinte din limba englez, ce permite descrierea logic, observate att de des
n organigrame i limbaje de programare. Aa cum se ntmpl i cu organigramele, se poate scrie un
pseudocod pentru orice, nu numai pentru programe de calculator. O mulime de manuale de instruire
utilizeaz o form de pseudocod pentru a descrie etapele necesare asamblrii componentelor.
Pseudocodul ofer o descriere strict a raionamentului, ce ncearc s lase puin loc pentru
ambiguiti.
Mai jos este prezentat raionamentul n problema statelor de plat, sub form de pseudocod.
Observai c putei citi textul, dei nu este un limbaj de programare. Indentarea ajut la inerea
evidenei propoziiilor ce merg mpreun. Pseudocodul poate fi citit de oricine, chiar i de ctre
persoanele nefamiliarizate cu simbolurile de organigram:
FOR fiecare salariat:
IF salariatul a lucrat intre 0 si 40 ore THEN
Salariul net egal numrul de ore lucrate ori tariful pe ora.
OTHERWISE
IF salariatul a lucrat ntre 40 si 50 de ore THEN
salariul net egal 40 ori tariful;
la care se adaug (numr ore lucrate -40) ori tariful pe ora ori 1,5.
OTHERWISE
salariul net egal 40 ori tariful pe ora;
la care se adaug 10 ori tariful pe ora ori 1,5;l
la care se adaug (numr ore lucrate -50) ori de doua ori tariful pe ora.
Deducei impozitele din salariul brut.
PRINT cecurile
END problema

Bazele Utilizrii Calculatoarelor


Cursul 3

Etapa a lll-a: Scrierea programului


Dup ce este definit rezultatul i stabilit raionamentul de obinere a acestuia, trebuie s mergei
la calculator i s generai programul - instruciunile din limbajul de programare - necesar pentru
obinerea rezultatului. Aceasta nseamn c mai nti trebuie s nvai un limbaj de programare. Aa
cum s-a menionat anterior, exist multe limbaje de programare, iar scrierea programelor nu este o
sarcin uoar pentru nceptori, dar dumneavoastr vei ajunge n curnd s le scriei cu abilitate si
ndemnare.
A nva s scrii programe dureaz cel mai mult timp. Totui, dup ce nvai s programai,
procesul efectiv de programare necesit mai puin timp dect proiectarea, dac proiectarea este
corect si complet. Natura programrii cere ca dumneavoastr s deprindei cteva abiliti noi.

Procesul de programare i tehnicile structurate


Acum cunoatei etapele ce trebuie parcurse nainte de programare, n decursul urmtoarelor
cursuri v vei lansa n procesul de programare, ncepnd cu nvarea limbajului C i scrierea
propriilor dvs. programe.
Acum tii c dou etape trebuie s precead ntotdeauna scrierea programului - stabilirea
rezultatelor de ieire i dezvoltarea raionamentului. Dup ce ai dezvoltat logica, putei scrie
programul utiliznd unul dintre multele limbaje de programare disponibile.
Pentru a ncheia procesul de programare, trebuie s scriei, s testai i s distribuii programul.
Desigur c toate aceste trei etape pornesc de la presupunerea c tii un limbaj de programare.
Restul cursului va fi dedicat completrii procesului de programare, nceput cu proiectarea rezultatului
programului i dezvoltarea raionamentului.
n continuare vei afla rspunsurile la urmtoarele chestiuni:

Ce este necesar pentru scrierea programelor,


Ce este un editor;
De ce este att de important programarea structurat;
Care sunt cele trei construcii din programarea structurata;
Ce etape sunt necesare pentru testarea unui program;
Care este diferena dintre verificarea de birou i testarea beta;
De ce este att de important testarea paralel.

Utilizarea unui editor


Editorul este instrumentul utilizat pentru scrierea programelor de calculator. Un editor este
asemntor cu un procesor de text, prin aceea c ofer posibilitatea de a scrie linii de program, de a
le edita, de a le muta, copia i salva pe disc. Din acest motiv, editoarele sunt adeseori denumite i
editoare de text. Un editor difer de un procesor de text prin aceea c nu efectueaz aranjarea
automat a cuvintelor, ntr-un procesor de text, atunci cnd ai ajuns la captul rndului, procesorul
mut cursorul i poriunea de cuvnt de la sfritul rndului pe rndul urmtor. Aranjarea automat a
cuvintelor ar constitui un impediment pentru programele de calculator.

Bazele Utilizrii Calculatoarelor


Cursul 3

Reinei c limbajele de programare sunt concise. Instruciunile de program nu pot fi executate


mpreun ca un fel de vorbire tiprit, n anumite limbaje de programare se pot pune mai multe
instruciuni pe acelai rnd, dar acest obicei nu este recomandat deoarece face citirea programului
mai dificil pentru dumneavoastr si pentru alii. Cu ct un program este mai greu de citit, cu att va fi
ulterior mai dificil de ntreinut i de actualizat.

Programarea structurat
La sfritul anilor '60, departamentele de programare au nceput s se poticneasc n sarcini
nerezolvate, ce creteau n ritmuri incredibile. Mai muli oameni scriau mai multe programe ca
oricnd, n timp ce muli programatori trebuiau angajai pentru ntreinerea programelor scrise
anterior.
Atunci cnd un program este terminat, el este considerat finalizat doar pentru momentul
respectiv. Ipotezele dintr-un program referitoare la sarcina ndeplinit de program se vor schimba n
timp. ntotdeauna ntreprinderile evolueaz n aceast economie global. Responsabilii cu
prelucrarea datelor ncepuser s recunoasc faptul c povara ntreinerii programelor ncepea s
fac ravagii n detrimentul dezvoltrii. Programatorii erau retrai de la noile proiecte pentru a le
actualiza pe cele vechi, ntreinerea dura prea mult.
nvai s scriei programe ce pot fi citite i ntreinute. Firmele economisesc bani atunci cnd
un programator scrie programe uor de ntreinut.
n timpul crizei ntreinerii programelor din anii '60, persoanele ce se ocupau de prelucrarea
datelor au nceput s caute noi modaliti de programare. Nu erau neaprat interesai de noi limbaje,
ci mai degrab de noi modaliti de a scrie programe, care s le fac s funcioneze mai bine i mai
rapid i - ceea ce este cel mai important - s le fac uor de citit, astfel nct ceilali s le poat
ntreine fr prea mare btaie de cap. Tehnicile de programare structurat au fost concepute n
aceast perioad.
Programarea structurat este o filosofie ce declar c programele ar trebui scrise ntr-un mod
ordonat, fr multe salturi nainte i napoi. Dac un program este conceput astfel nct s poat fi
citit cu uurin, atunci el poate fi mai uor modificat. Oamenii tiau de muli ani c un stil de scriere
clar este important, dar acest lucru a devenit evident pentru cei din domeniul calculatoarelor numai
dup aproape 20 de ani de utilizare a tehnicilor nestructurate.
Exist unele controverse referitoare la momentul exact n care programatorii nceptori ar trebui
s nceap s foloseasc programarea structurat. Unii sunt de prere c programatorii trebuie
instruii s foloseasc programarea structurat nc de la nceput. Alii cred c nceptorii trebuie s
nvee s programeze n orice mod n care pot rezolva problema respectiv, ca apoi s se adapteze
la programarea structurat.
Acum, cnd ai neles organigramele i limbajul pseudocod, putei vedea n ce const
programarea structurat cu ajutorul acestor instrumente. Cnd vei nva un limbaj de programare
vei gndi n stilul programrii structurate i v vei ncadra nc de la nceput, n mod natural, n
tiparul acesteia.
Un program bine scris i uor de citit nu nseamn c este neaprat structurat. Programarea
structurat este o abordare specific a programrii, care produce n general programe bine scrise si
uor de citit. Nimic nu poate convinge la o schimbare un programator ce se grbete s termine un
program prin ceea ce crede el c este cea mai rapid modalitate. Adeseori se aud replici ca: Mai
trziu l voi face structurat, dar deocamdat l voi lsa aa cum este". Acest mai trziu" nu vine

10

Bazele Utilizrii Calculatoarelor


Cursul 3

niciodat. Oamenii utilizeaz un program pn ntr-o zi cnd trebuie efectuate modificri, iar acestea
dureaz tot att de mult ct - sau chiar mai mult dect - ar fi nevoie pentru a-l arunca la gunoi i a-l
rescrie de la zero.
Programarea structurat include urmtoarele trei construcii:

Secvena;
Decizia (denumit i selecie);
Bucla (denumit i repetiie sau iteraie).
O construcie este un bloc de construcie al unui limbaj i una dintre operaiile fundamentale ale
acestuia. Atta vreme ct un limbaj de programare accept aceste trei construcii (majoritatea
accept), putei scrie programe structurate. Opusul unui program structurat este cunoscut sub
denumirea de program spaghetti. Ca i spaghetele care se revars i se ncolcesc peste tot n
farfurie, un program nestructurat - unul plin de instruciuni spaghetti - se revars peste tot si nu are
nici un fel de structur. Un program nestructurat conine o mulime de ramificaii. O ramificaie apare
atunci cnd un program merge pe o cale sau alta, fr nici o ordine.
Majoritatea limbajelor de programare permit ramificarea printr-o instruciune GOTO. Instruciunea
GOTO funcioneaz dup cum sun; ea i comunic calculatorului s treac n alt loc din program i
s continue execuia de acolo. Cutarea urmtoarei instruciuni de executat din program te face s-i
pierzi irul gndirii.
Unii programatori i unele manuale de programare v avertizeaz s v inei departe de
instruciunea GOTO. Instruciunea GOTO n sine nu este rea, atunci cnd este utilizat moderat, dar
poate face ravagii n posibilitatea de a citi un program, dac este utilizat prea des.
Cele trei construcii din programarea structurat nu se aplic doar programelor. Vei descoperi c
le putei utiliza n organigrame, pseudocod i n orice alt set de instruciuni pe care le scriei pentru
alii. Construciile din programarea structurat garanteaz c un program nu se ramific peste tot i
c orice execuie este controlat i uor de urmrit.
n continuare se explic fiecare din cele trei construcii din programarea structurat. Citii-le cu
atenie i vei constata c programarea structurat este un concept uor de neles, nvnd despre
structur nainte de a nva un limbaj, vei ajunge s v gndii automat la aceasta atunci cnd v
vei dezvolta abilitile de programare.
Secvena
Secvena nu este nimic altceva dect un set de dou sau mai multe instruciuni, una dup alta.
Instruciunile secveniale reprezint cea mai simpl din cele trei construcii din programarea
structurat, deoarece permit urmrirea programului de la prima pn la ultima instruciune din
secven, n figura 8 este prezentat o organigram ce ilustreaz o secven.
Pseudocodul corespunztor secvenei din organigram este:
GET numrul de ore lucrate.
MULTIPLY numrul de ore cu tariful pe ora.
SUBTRACT impozitele pentru a calcula salariul net
PRINT cecul.

Deoarece calculatoarele trebuie s aib capacitatea de a lua decizii i de a executa secvene


repetitive, nu toate programele dumneavoastr pot consta doar dintr-un raionament repetitiv liniar.

11

Bazele Utilizrii Calculatoarelor


Cursul 3

Totui, secvena merit s fie utilizat pentru raionamentul liniar de programare, atunci cnd este
posibil.

Fig 8
Decizia (Selecia)
Ai ntlnit deja construcia de decizie, ntr-o organigram, simbolul de decizie este punctul n
care este luat decizia. Ori de cte ori un program ia o decizie, trebuie s o ia ntr-o direcie din dou.
Evident c o decizie reprezint o rupere a cursului secvenial al programului, dar este o rupere
controlat.
Prin natura sa, o ramificare trebuie efectuat pe baza rezultatului unei decizii (de fapt, programul trebuie s omit instruciunile ce nu trebuie executate). Totui, spre deosebire de o ramificaie
dreapt, o decizie garanteaz c nu trebuie s v batei capul cu secvena ce nu este executat. Nu
va trebui s v ntoarcei napoi i s citii partea din program omis de ctre decizie, (n funcie de
noile date, este posibil ca programul s repete o decizie i s ia o cale diferit a doua oar, dar, pe de
alt parte, putei ntotdeauna presupune c secvena de decizie ce nu este executat n momentul
respectiv este irelevant pentru bucla curent.)

Fig. 9
Pseudocodul corespunztor deciziei prezentate n organigram este:
IF elevul a obinut A sau B,
d elevului un certificat de absolvire.
OTHERWISE:
Organizeaz o ntlnire prini/profesor;
d elevului o tema suplimentara.

Executarea buclelor sau ciclarea (repetiia i iteraia)

12

Bazele Utilizrii Calculatoarelor


Cursul 3

Poate c cea mai important sarcin a calculatoarelor o constituie executarea de bucle sau
ciclarea (termenul utilizat pentru repetarea sau iterarea liniilor din program). Calculatoarele repet
poriuni de program de milioane de ori i nu se plictisesc niciodat. Calculatoarele sunt tovari
perfeci pentru cei care au o mulime de date de prelucrat, deoarece ele pot prelucra datele, repetnd
pentru toate datele calculele obinuite, n timp ce omul poate analiza rezultatele.
Executarea de bucle prevaleaz n aproape orice program scris. Rareori se ntmpl s scriei
un program format dintr-o secven liniar de instruciuni. Timpul necesar pentru proiectarea si
scrierea unui program nu merit ntotdeauna efortul, atunci cnd este vorba doar de o serie liniar de
instruciuni. Programul funcioneaz la capacitate maxim atunci cnd poate repeta o serie de
instruciuni secveniale sau decizii.
n figura 10 este prezentat o organigram ce repet o seciune dintr-o bucl. Buclele ncalc
doar temporar regula ce spune c organigramele trebuie s curg n jos i spre dreapta. Buclele din
interiorul organigramei sunt corecte, deoarece, n final, raionamentul va nceta s execute bucle.
Nu uitai de cumplita bucl infinit. O bucl infinit este o bucl ce nu se termin niciodat, n
cazul n care calculatorul dumneavoastr intr ntr-o bucl infinit, el va continua s o execute, fr a
termina vreodat, iar uneori este dificil de recptat controlul asupra programului fr a reporni
calculatorul. Buclele ar trebui ntotdeauna prefaate de ctre o instruciune de decizie, astfel nct, n
cele din urm, decizia s declaneze sfritul buclei, pentru ca restul programului s poat fi
executat.
Pseudocodul corespunztor organigramei este:
IF sunt mai muli cumprtori,
DO urmtoarele:
CALCULATE balana financiara pentru urmtorul cumprtor;
PRINT o factura.
OTHERWISE,
PRINT raportul total al balanei financiare.

Dup cum vedei, n cele din urm nu vor mai fi cumprtori, iar bucla (ce ncepe cu do") va
nceta a fi efectuat, astfel nct restul logicii va putea prelua comanda.

Fig. 10

Testarea programului

13

Bazele Utilizrii Calculatoarelor


Cursul 3

Cnd ai ncheiat scrierea efectiv a programului, nu nseamn c ai terminat complet


programul. Trebuie s v ndreptai atenia ctre depanarea programului. Desigur c dorii s eliminai
ct mai multe hibe posibil din program. Din motive evidente, nu vei dori ca utilizatorul s fac
aceasta. Nu vei dori ca utilizatorul programului s gseasc tot felul de greeli fcute de
dumneavoastr. Deci, va trebui s testai n amnunt programul.
Mai jos sunt enumerate etapele de testare caracteristice, pe care trebuie s le urmeze programatorii nainte de a distribui utilizatorilor o versiune final a programului:
1. Efectuarea verificrii de birou.
2. Efectuarea unui test beta.
3. Compararea rezultatelor testului beta cu rezultatele testului fcut n paralel pentru vechiul
sistem.
Majoritatea programatorilor i trec programele printr-o serie de verificri de birou. Verificarea de
birou nseamn a sta n faa calculatorului i a verifica programele utiliznd ct de multe cazuri
posibile cu date diferite, pentru a depista punctele slabe i erorile din program. n timpul verificrii de
birou, programatorii trebuie s testeze valori limit, s tasteze datele de intrare greite i n general,
s fac tot ce pot pentru a face programul s dea gre. Programatorii trebuie s ncerce fiecare
opiune din program, utiliznd diverse combinaii pentru a vedea ce se ntmpl n toate situaiile
posibile.
Atunci cnd s-a terminat verificarea de birou i programatorii pot fi ct de siguri se poate c
programul este corect, trebuie ca acetia s desemneze un grup de utilizatori care s ncerce s
foloseasc programul, n domeniu, aceast etap este cunoscut sub denumirea de faza de testare
beta. Cu ct vei gsi mai multe persoane care s-l testeze (utilizatori de testare ai programului), cu
att sunt anse mai bune ca erorile s fie gsite. Adeseori utilizatorii ncearc s fac lucruri care nici
nu i-au trecut prin cap programatorului atunci cnd a scris programul.
Testarea beta exist acum pe scar larg
Din ce n ce mai multe companii invit n mod deschis publicul s ajute la testarea beta a
produselor lor. Microsoft, de exemplu, este extrem de deschis n ceea ce privete distribuirea de
versiuni beta ale aplicaiilor i sistemelor sale de operare, cu mult nainte ca produsul final s fie
disponibil pentru vnzare. Multe dintre aceste versiuni beta pot fi descrcate din Internet. Aceste
produse disponibile pentru testare beta ofer criticilor i celor ce le testeaz o prim privire asupra
programelor, ceea ce constituie un ajutor pentru cei de la Microsoft, deoarece aceti voluntari pot
informa conducerea firmei despre hibele gsite.
Pe msur ce audiena beta crete, crete i timpul necesar unei firme pentru testarea produsului. Problema este c programele din zilele noastre sunt de o nalt complexitate, necesitnd chiar
100 de programatori pentru producerea unui program cum ar fi o nou versiune de Windows.
Testarea beta pe scar larg este aproape singura modalitate prin care aceste firme pot descoperi o
parte dintre hibele ce trebuie remediate nainte de lansarea produsului.
Utilizatorul nu trebuie s renune niciodat la un sistem vechi i s treac deodat la noul
program. Trebuie efectuat mai nti testarea n paralel. De exemplu, dac scriei un program pentru
state de plat ce va nlocui sistemul manual utilizat ntr-o curtorie chimic, nu este indicat ca
proprietarul s primeasc o copie a programului i s-o utilizeze imediat numai pe aceasta. n schimb,
este bine ca acesta s continue sistemul manual de efectuare a statului de plat i s utilizeze

14

Bazele Utilizrii Calculatoarelor


Cursul 3

simultan programul dumneavoastr. Cu toate c aceasta presupune un timp ceva mai lung de fiecare
dat cnd se calculeaz salariile, se pot compara rezultatele programului cu cele ale sistemului
manual, pentru a vedea dac corespund.
Numai dup cteva perioade n care plata se face cu testare n paralel, utilizatorul poate cpta
destul ncredere pentru a utiliza programul fr copii de siguran manuale.
n timpul acestei perioade de testare, este posibil s fie necesar ca programatorii s efectueze
mai multe schimbri n program. Ateptai-v s fie necesare modificri i nu v vei simi dezamgit,
pierzndu-v ncrederea n programare. Arareori se ntmpl ca programatorii s scrie un program
corect de prima dat. De obicei, sunt necesare multe ncercri pentru a realiza programe corecte.
Testarea n amnunt descris n acest paragraf nu constituie o asigurare perfect c programul este
corect. Unele erori pot aprea numai dup ce programul este utilizat o vreme. Cu ct efectuai mai
multe testri, cu att este mai puin probabil s apar ulterior erori.
nvarea limbajului de programare
Deocamdat, n acest curs a fost lsat deoparte o etap important. Aceasta este etapa de
nvare a limbajului de programare. Restul cursului este dedicat descrierii limbajului C.

15

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