Sunteți pe pagina 1din 212

CUPRINS

Introducere.................................................................................................................................... 5
Capitolul I. Aspecte metodologice ale predării informaticii
1.1. învăţământul şi tehnologiile informaţionale............................................................. 6
1.2. Principiile didactice care stau la baza predării cursului de Informatică.................... 9
1.3. Scopurile predării, structura şi particularităţile cursului de Informatică................ 12
1.4. Satisfacerea necesităţilor elevilor din punct de vedere al Informaticii................... 14
1.5. Tehnologia construirii activităţii de învăţare la obiectul Informatica..................... 16
1.6. Metode şi tehnici interactive de g ru p ........................................................................ 18
1.7. Metode şi tehnici de evaluare.................................................................................... 39
Bibliografie.................................................................................................................................... 45

Capitolul II. Particularităţi ale studierii informaticii în instruirea preuniversitară


2.1. Informatica în clasa a V il-a...................................................................................... 47
2.1.1. Structura calculatorului................................................................................... 47
2.1.2. Sisteme de operare.......................................................................................... 53
2.1.3. Editarea textelor.............................................................................................. 58
Referinţe................................................................................................................... 65
2.2. Informatica în clasa a VUI-a..................................................................................... 66
2.2.1. Păstrarea informaţiei în foile de calcul.......................................................... 66
2.2.2. Fonnule şi calcule........................................................................................... 67
2.2.3. Diagrame şi obiecte grafice............................................................................. 71
2.2.4. Baze de d ate....................................................................................................
2.2.5. Algoritmi....................................................................................................... 78
Referinţe................................................................................................................... 86
2.3. Informatica în clasa a IX -a....................................................................................... 87
2.3.1. Vocabularul şi sintaxa limbajului PASCAL.............................................. 87
2.3.2. Tipuri de date simple...................................................................................... 92
2.3.3. Instrucţiuni............................................................................................... 96
Referinţe................................................................................................................... 107
2.4. Informatica în clasa a X -a........................................................................................ 108
Structura calculatorului
2.4.1. Informaţia....................................................................................................... 108
2.4.2. Bazele aritmetice ale tehnicii de calcul......................................................... 111
2.4.3. Algebra booleană............................................................................................ 113
2.4.4. Circuite combinaţionale.................................................................................. 116
2.4.5. Circuite secvenţiale......................................................................................... 118
2.4.6. Structura şi funcţionarea calculatorului......................................................... 120
2.4.7. Reţelele de calculatoare................................................................................. 122
Referinţe................................................................................................................... 125
Limbajul de programare Pascal
2.4.8. Tipuri de date structurate................................................................................ 126
Referinţe.................................................................................................................. 145
2.5. Informatica în clasa a X l-a ...................................................................................... 146
Limbajul de programare Pascal
2.5.1. Funcţii şi proceduri......................................................................................... 146
2.5.2. Structuri dinamice de d ate............................................................................... 166
2.5.3. Metode de elaborare a produselor program.................................................... 190
Referinţe.................................................................................................................... 192
Tehnici de programare
2.5.4. Analiza algoritmilor......................................................................................... 193
3
2.5.5. Tehnici de elaborare a algoritmilor............................................................... 197
2.5.6. Algoritmi de rezolvare a unor probleme matematice.................................... 225
Referinţe.................................................................................................................. 229
2.6. Informatica în clasa a X lI-a................................................................................... 230
Baze de date
2.6.1. Tipuri de baze de date.................................................................................... 230
2.6.2. Limbaje relaţionale de exploatare a bazelor de date..................................... 234
2.6.3. Sisteme de gestiune a bazelor de d ate........................................................... 236
2.6.4. Tabele.............................................................................................................. 238
2.6.5. Interogări........................................................................................................ 240
2.6.6. Formulare....................................................................................................... 241
2.6.7. Rapoarte.......................................................................................................... 246
2.6.8. Prelucrarea datelor.......................................................................................... 247
2.6.9. Administrarea bazelor de d ate........................................................................ 254
Referinţe.................................................................................................................. 255
Modelare şi metode de calcul
2.6.10. Elemente de modelare.................................................................................. 256
2.6.11. Erori în calcul numeric................................................................................. 269
2.6.12. Metode numerice de rezolvare a ecuaţiilor algebrice şi transcendente...... 273
2.6.13. Rezolvarea numerică a sistemelor de ecuaţii liniare................................... 289
2.6.14. Integrarea numerică...................................................................................... 297
Referinţe.................................................................................................................. 300
Anexa 1. Algoritmotecă................................................................................................................ 301
Anexa 2. Teste la limbajul de programare Pascal........................................................................ 304
Anexa 3. Teste la Structura calculatorului................................................................................... 312
Anexa 4. Teste la SGBD ACCESS.............................................................................................. 313
Anexa 5. Populaţia bacteriilor. Rezultatele experimentelor........................................................ 317

4
INTRODUCERE
Apariţia calculatoarelor a impus revizuirea abordării tradiţionale de înţelegere a funcţiilor şi a
corelaţiilor omului cu tehnica în orice activitate, în acelaşi rând şi în activitatea pedagogică.
Rezolvarea problemelor social-filozofice ale computerizării învăţământului este o problemă actuală,
deoarece caracteristicile computerelor pot fi perfecte, iar folosul real de la utilizarea lor poate fi
destul de mic. Astfel, informatizarea societăţii pune în faţa pedagogilor probleme noi de educare a
membrilor societăţii informaţionale. Această educaţie se realizează în primul rând la lecţiile de
Informatică şi se bazează pe folosirea metodelor didactice contemporane şi a mijloacelor
tehnologiilor informaţionale noi.
Deoarece sarcinile informaticii ca disciplină transdisciplinară pot fi căutate şi luate din diferite
domenii ale cunoştinţelor şi activităţilor umane, şi, deoarece universalitatea categoriei „informaţie”,
formele ei specifice conduc la aceea că problemele interioare ale informaticii sunt semnificative şi
pentru alte discipline, poate fi făcută concluzia că pentru predarea informaticii sunt importante şi
metodele de demonstraţie matematică, de construire/analiză ale algoritmilor, de efectuare a
experimentelor fizice. Un domeniu nou se deschide şi la intersecţia acestor discipline -
experimentul numeric asupra modelului matematic al fenomenului fizic. Un fapt interesant de
intersecţie a informaticii cu psihologia, reprezintă problemele de comunicare: nu numai copiii dar şi
adulţii au predispoziţii pentru a înviora programul computerizat cu dialoguri şi deseori încearcă să
comunice cu programul. Reprezintă interes şi legătura informaticii cu limbile străine: traducerea
textului algoritmului într-un limbaj formal este o activitate de vorbire. Deci, pregătirea profesională
a profesorilor de Informatică bazată pe cunoştinţele şi abilităţile speciale, obţinere pe parcursul
studierii informaticii, matematicii, pedagogiei, psihologiei presupune vizionarea cursului prin
prisma cerinţelor instruirii preuniversitare.
Trebuie să subliniem că instrumentul general care este concomitent şi obiectul studierii
informaticii - computerul - are o independenţă incomparabilă cu alte aparate şi scopul activităţii cu
ajutorul computerului se motivează prin dorinţa de a-i încredinţa activitatea de atingere a
obiectivelor trasate, ceea ce cere dezvoltarea manierei specifice de gândire şi de comportare, a
metodelor adecvate de educaţie a personalităţii. Alături de aceasta, computerul măreşte brusc
posibilităţile metodelor de diferenţiere ale învăţării, şi acest fapt trebuie să fie luat în consideraţie,
propunând sistema respectivă de mijloace instructive. Astfel, particularitatea principală a metodicii
predării informaticii se manifestă prin legăturile interioare şi exterioare ale informaticii care
formează o sarcină complicată de căutare a ordinii optimale de predare a materialului în
conformitate cu principiile succesiunii şi accesibilităţii expunerii.
Concretizând toate aceste teze evidenţiem scopul apariţiei acestei cărţi: ea este destinată
înarmării viitorilor şi actualilor profesori de Informatică cu idei despre folosirea eficientă a
tehnologiilor informaţionale noi în procesul instructiv care îi va ajuta să efectueze lecţii la un nivel
ştiinţific şi metodic înalt, să organizeze activitatea extraşcolară de Informatică în şcoală.
Primul capitol al cărţii conţine descrierea aspectelor metodologice în procesul informatizării
învăţământului, iar capitolul al doilea conţine planificarea tematică orientativă a temelor concrete
ale cursului Informatica pentru clasele a VII-a - a XII-a, obiectivele formulate în termeni de
performanţă optimă, recomandări la predare temelor şi completări la materialul din manuale. Pe
lângă aceasta, în capitol sunt prevăzute probleme şi exerciţii cu rezolvările respective. Subliniem că
planificarea tematică şi obiectivele corespund curriculumului disciplinei Informatica pentru clasele
a VH-a - a XH-a şi manualelor de Informatică, aprobate de către Ministerul Educaţiei, Tineretului şi
Sportului. în materialul ce îl prezentăm sunt date metode tipice şi efective de predare a Informaticii.
Totodată trebuie să subliniem că formele metodice de instruire sunt nenumărate şi fiecare profesor
introduce propria sa individualitate în acest proces.

5
Capitolul I
ASPECTE METODOLOGICE ALE PREDĂRII INFORMATICII

A
1.1. învăţământul şi tehnologiile informaţionale
Integrarea pedagogiei cu alte ştiinţe prezintă o tendinţă de a perfecţiona sistema cunoştinţelor
pedagogice, ceea ce este demonstrat destul de evident prin studierea problemei interactivităţii
omului şi computerului în sfera învăţământului. în această problemă-cheie se concentrează întregul
complex al întrebărilor legate nemijlocit de mişcarea diferitelor ştiinţe spre un sistem unic al
cunoştinţelor. Folosind computerul, omul îndeplineşte diferite funcţii: diagnosticarea, pronosticarea,
plănuirea, adoptarea deciziilor. Totodată apare un şir de probleme noi care sunt condiţionate de
interactivitatea omului şi computerului: alegerea strategiei şi tacticii de rezolvare a problemei,
formarea criteriilor de evaluare a rezultatelor obţinute, determinarea succesiunii comenzilor de
dirijare, folosirea diverselor limbaje de programare. De aceea este mai eficientă investigarea
problemelor de computerizare a învăţământului pornind de la necesităţile teoretice şi practice ale
pedagogiei şi luând în vedere specificul multilateral al activităţii didactice.
Există nu mai puţin de trei domenii, în care categoria „activitatea pedagogică” reflectă adecvat
realitatea pedagogică. în primul rând, este procesul instructiv-educativ, când pedagogul practic
realizează funcţiile sale profesionale: interactivitatea pedagogului şi elevilor; elevul este obiectul şi,
în acelaşi timp, subiectul educaţiei, instruirii, dezvoltării. în al doilea rând, aceasta este sfera
activităţii ştiinţifice de cercetare a savanţilor-pedagogi care se ocupă cu elaborarea şi argumentarea
sistemelor didactice la diferite niveluri ale sistemelor pedagogice. Domeniul al treilea cuprinde
sfera dirijării pedagogice la diferite niveluri - de la dirijarea unei instituţii de învăţământ până la
dirijarea sistemului de învăţământ în întregime. Astfel poate fi constatat că activitatea pedagogică
are caracter multilateral şi este orientată spre integrarea cu alte ştiinţe. Anume aceste motive
determină necesităţile pedagogiei de a avea mijloace contemporane de intensificare a activităţii
intelectuale, dintre care locul principal îl ocupă computerul.
Ţinând cont de aceste trei domenii, putem să menţionăm că mijloacele tehnologiilor
informaţionale permit a efectua: legătura inversă imediată dintre utilizator şi mijloacele tehnice
separate; individualizarea ritmului lucrului utilizatorului; alegerea modului de prezentare pe ecranul
monitorului a modelelor diferitelor obiecte, procese, evenimente; dirijarea obiectelor de actualitate
reală; lucrul în regimul interactiv cu sistemul programat.
Specificul folosirii computerului în activitatea instructiv-educativă cere studierea funcţiilor
elevului şi computerului pe parcursul rezolvării problemelor de studiu (interpretarea metodică a
componenţilor instruirii computerizate: conţinutul problemei de studiu, funcţiile elevului în
procesul rezolvării problemei, funcţiile computerului şi evaluarea rezultatelor obţinute) şi constă în
faptul că computerul joacă rolurile obiectului şi subiectului de studiere.
Analizarea posibilităţilor de folosire a computerului în activitatea ştiinţifică de cercetare şi în
activitatea de dirijare pedagogică arată, că destinaţia principală a computerului în aceste domenii
este legată de crearea băncii informaţionale de date, de sistematizarea, clasificarea şi evaluarea
diverselor tipuri de informaţie, de reprezentarea informaţiei conform cerinţelor utilizatorilor.
Se ştie că întemeierea unei infrastructuri informaţionale ample reprezintă o bază informaţional-
strategică a existenţei umane. De aceea diferite sisteme sociale sunt incluse în acel sector al
economiei, unde cunoştinţele joacă rol de marfa. Sistemul de învăţământ, în acest sens, nu ocupă
ultimul loc. Cauza este evidentă - astăzi, în economia globală pot să dicteze condiţii ţările care vând
în primul rând resurse informaţionale ori, cu alte cuvinte, cunoştinţe. Astfel, trăsătura specifică a
învăţământului contemporan este aceea că învăţământul se realizează pe baza globalizării
procesului de dezvoltare a civilizaţiei umane. Societatea informaţională cere, dintr-o parte, idei noi,
cunoştinţe noi, iar, pe de altă parte, mijloace noi de obţinere accelerată a cunoştinţelor şi de formare
6
a modului nou de gândire a personalităţii. Deci, informatizarea învăţământului în sens larg cere
existenţa unui complex de reforme social-pedagogice legate de înzestrarea sistemelor de învăţământ
cu producţia informaţională, cu mijloacele şi tehnologia respective, iar în sensul îngust - includerea
în instituţiile de învăţământ a mijloacelor informaţionale bazate pe tehnica cu microprocesor
incorporat şi, de asemenea, a producţiei informaţionale şi tehnologiilor pedagogice care se bazează
pe aceste mijloace.
Tendinţele de integrare în domeniul învăţământului dictează necesitatea ieşirii învăţământului în
spaţiul educativ-instructiv mondial unic. Spaţiul informaţional unic al învăţământului poate fi
analizat în conformitate cu următoarele aspecte:
a) aspectul istoric (transmiterea experienţei culturale);
b) aspectul metodico-ştiinţifîc (moştenirea metodico-ştiinţifică a didacticii);
c) aspectul de dirijare (prezenţa unui sistem ierarhic de multe niveluri);
d) aspectul social-economic (asigurarea condiţiilor pentru ridicarea nivelului de instruire
permanentă a omului, inclusiv şi a celor cu handicapuri);
e) aspectul etno-cultural (reprezentarea condiţiilor specifice pentru diferite regiuni etno-
culturale).
Trăsătura principală a spaţiului informaţional al învăţământului este caracterul lui interactiv,
ceea ce înseamnă posibilitatea existenţei dialogurilor dintre diferite sisteme de logici, de idei, de
metode. Din această cauză, interesul crescut faţă de tehnologiile informaţionale noi şi, în particular,
faţă de telecomunicări, care deschid o fereastră largă în acest spaţiu mondial, se developează în
toate ţările. Actualmente posibilităţile de a obţine cunoştinţe la distanţă, intercomunicarea elevilor,
profesorilor într-un cadru mai larg decât o şcoală, o regiune, o ţară au o mare importanţă în procesul
comunicării. Apare posibilitatea de organizare a proiectelor comune ale elevilor din diferite ţări, de
a face schimb de experienţă profesională între profesori, studenţi, savanţi. Reieşind din cele expuse
devine convingătoare teza, că problema organizării reţelelor informaţionale unice în sfera
învăţământului este foarte actuală. Această reţea trebuie să rezolve următoarele probleme:
asigurarea legăturii calitative dintre membrii asociaţiilor ştiinţifice din ţară şi de peste hotare şi a
accesului efectiv şi nelimitat la resursele informaţionale din reţeaua naţională şi cea internaţională;
contribuirea la dezvoltarea cercetărilor naţionale fundamentale, la elaborarea şi includerea
tehnologiilor informaţionale noi în procesul instructiv.
Principiile care stau la baza dezvoltării şi autodezvoltării mediului informaţional-pedagogic
sunt:
a) principiul caracterului deschis al sistemului informaţional;
b) principiul organizării, autoorganizării şi dezvoltării (presupune concordanţa tuturor
participanţilor la procesul informaţional-pedagogic);
c) principiul caracterului polivariant al dezvoltării mediului informaţional;
d) principiul creării mediului instructiv-educativ ca mediu social favorabil, care activizează
posibilităţile intelectuale, morale şi comunicative ale personalităţii şi care asigură o
integrare confortabilă în societate şi cultură.
Funcţionarea mediului informaţional presupune existenţa mijloacelor contemporane de acces al
elevilor şi profesorilor la acest mediu prin folosirea bazelor electronice de cunoştinţe, bibliotecilor
electronice, organizarea teleconferinţelor, şi prin dezvoltarea legăturilor inverse dintre participanţii
procesului didactic (testarea şi diagnosticarea pedagogică). Rolul nou al computerelor în calitate de
mijloc de păstrare a informaţiei bine structurate şi simplitatea accesului la informaţie schimbă în
activitatea pedagogică scopurile studierii: de la memorizarea unui volum mare de material studiat la
priceperea de a căuta informaţia necesară pentru rezolvarea problemelor de studiu.
Crearea reţelelor informaţionale telecomunicative dă un impuls nou sistemelor de instruire la
distanţă, asigurând accesul la un volum gigantic de informaţie. în şirul mijloacelor netradiţionale
apar tehnica video, computerele şi alte mijloace ale tehnologiei informaţionale, ceea ce stimulează
apariţia formelor noi de activitate a profesorului şi elevilor: organizarea corecţiei individuale a

7
cunoştinţelor elevilor; formarea interesului pentru lectură; înţelegerea mai profundă a informaţiei;
folosirea tehnicii video pentru pregătirea seminarelor, discuţiilor, teleconferinţelor; folosirea
complexelor video pentru organizarea timpului liber al elevilor, a activităţii lor după interese, a
programelor educative cu părinţii elevilor şi a programelor de perfecţionare a profesorilor.
Examinarea problemei de elaborare a tehnologiilor informaţionale noi ale învăţământului este
determinată de necesitatea rezolvării unor contradicţii (dintre tehnologiile didactice noi şi modelele
de instruire tradiţionale) apărute pe parcursul reformării permanente a sistemului de învăţământ. O
direcţie de rezolvare a acestei probleme reprezintă informatizarea învăţământului, ceea ce
presupune existenţa unui complex al transformărilor social-pedagogice care sunt legate de saturarea
sistemelor de învăţământ cu tehnologii informaţionale.
Obiectivul principal al procesului informatizării structurilor de învăţământ poate fi considerat
crearea modului de gândire în concordanţă cu cerinţele de perspectivă ale dezvoltării sociale,
inclusiv şi cu cerinţele computerizării învăţământului, ceea ce poate fi perceput ca o totalitate de
metode, de procedee şi de modalităţi de creare a condiţiilor pedagogice pe baza tehnicii
computerizate.
Specialiştii din domeniu menţionează, că natura mijloacelor de transmitere a informaţiei (cărţi,
cinematograf, radio, televiziune, computere) influenţează esenţial asupra modului de formare şi
dezvoltare a structurilor psihice ale omului. Textul tipărit pe hârtie - o sursă principală a informaţiei
pe parcursul secolelor trecute - în majoritatea limbilor este alcătuit din fraze aranjate în ordinea
citirii de la stânga la dreapta, ceea ce formează tipul linear, succesiv, analitic, ierarhic şi raţional de
gândire. Alte mijloace de comunicaţie, inclusiv şi media electronică, structura căror diferă de textul
tipărit, nu îndreaptă mersul gândurilor consumatorului de informaţie de la A până la B şi mai
departe la C cu evidenţierea concluziilor intermediare. Aceste mijloace formează modele psihice de
obţinere a informaţiei bazate pe calitatea ilustrativă, emoţională, iraţională a informaţiei,
contribuind astfel la formarea aptitudinii de a experimenta şi a modului flexibil şi structurat de
gândire. In acest caz apar condiţii pentru dezvoltarea învăţământului creativ.
Este demonstrat faptul că computerul poate fi folosit în procesul studierii disciplinelor de profil
real sau umanist, pentru rezolvarea diferitelor probleme matematice, pentru analizarea rezultatelor
experimentelor de studiu, pentru construirea şi interpretarea modelelor matematice, poate îndeplini
funcţiile sistemelor informaţionale, băncilor de date, ghidurilor automatizate. Experimentele ne
arată eficacitatea metodică a folosirii posibilităţilor grafice ale computerelor în procesul studierii
geometriei, desenului liniar, pentru dezvoltarea imaginaţiei spaţiale a elevilor. Este evident, de
asemenea, că computerele pot fi folosite eficient la toate etapele procesului instructiv-eaucativ: ele
influenţează procesele de evaluare şi control, atribuie lecţiilor în cazul necesar un caracter
distractiv, contribuie la activizarea proceselor de cunoaştere ale elevilor. Computerele permit
obţinerea unui nivel mai înalt al caracterului ilustrativ al materialului de studiu, lărgesc semnificativ
posibilităţile includem diverselor exerciţii în procesul instructiv, iar relaţiile inverse permanente duc
la atingerea scopului principal al instruirii - la formarea interesului şi atitudinii pozitive a elevilor
faţă de materialul studiat.
Aplicarea tehnologiilor pedagogice contemporane este greu de imaginat fără folosirea
desfăşurată a tehnologiilor informaţionale noi şi, în primul rând, a computerelor. Anume
tehnologiile informaţionale noi permit să fie developate pe deplin funcţiile didactice ale metodelor
pedagogice modeme, să fie realizate posibilităţile lor potenţiale.
Cursul de Informatică şcolară poate fi examinat sub două aspecte:
a) ca mijloc de creare a tabloului integraţiv-informaţional al lumii şi de cercetare a legităţilor
generale informaţionale ale structurii şi ale tipului de funcţionare a sistemelor de
autodirijare;
b) ca mijloc de abordare a metodelor şi mijloacelor de obţinere, prelucrare, transmitere,
păstrare şi folosire a informaţiei, de rezolvare a problemelor cu ajutorul diverselor mijloace
ale tehnologiilor informaţionale, şi inclusiv al computerului.
8
Pe baza acestor aspecte în Proiectul Standardului de Stat au fost determinate funcţiile
pedagogice ale domeniului de învăţământ, care este legat de Informatică:
1. Formarea concepţiei despre lume: formarea noţiunii de informaţie ca a unei din cele trei noţiuni
generale - materia, energia, informaţia - pe baza căror este construit tabloul ştiinţific al
universului.
2. Dezvoltarea gândirii elevilor: în psihologia contemporană înseamnă mult influenţa amplă a
studierii informaticii şi a folosirii computerului în învăţământ pentru a dezvolta gândirea
teoretică şi creativă a elevilor şi, de asemenea, pentru a forma tipul nou de gândire - gândirea
operaţională, orientată spre alegerea deciziilor optimale.
3. Pregătirea elevilor pentru activitatea practică, pentru muncă şi învăţare continuă: realizarea
acestei probleme este legată de rolul de frunte al studierii informaticii în formarea competenţei
şi culturii computerizate a elevilor, deprinderilor de a folosi tehnologiile informaţionale -
componente principale ale pregătirii elevilor pentru activitatea practică şi pentru viaţa în
societatea informatizată.
Astfel, folosind mijloacele tehnologiilor informaţionale în domeniul pedagogiei pot fi atinse
următoarele scopuri: realizarea ideilor de instruire dezvoltativă; realizarea comenzilor sociale,
determinate de informatizarea societăţii contemporane; intensificarea tuturor nivelurilor procesului
educativ-instructiv, creşterea eficacităţii şi ridicarea calităţii sale; asigurarea stimulării procesului
instructiv.

1.2. Principiile didactice care stau la baza predării cursului de Informatică


Pentru optimizarea instruirii în didactică au fost formulate mai multe principii, care stau la baza
realizării cu succes a procesului instructiv-educativ: caracterul lui ştiinţific, de sistem, consecvent,
accesibil, intuitiv, caracterul conştient şi activ al acţiunilor elevilor sub conducerea pedagogului,
trăinicia cunoştinţelor, priceperilor şi deprinderilor. în afară de aceasta, didactica a determin;.’
legitatea legăturii dintre formele de instruire şi eficienţa instruirii. Toate aceste principii n-au fost
formulate în mod arbitrar de către pedagogi: ele decurg nemijlocit din legităţile eficienţei instruirii,
care au fost descoperite de ştiinţa pedagogică şi care sunt mereu prezente în practica de lucru a
învăţătorilor. Deoarece în Informatică se observă o schimbare permanentă, nestabilitatea
conţinutului, tipuri diferite de mijloace tehnice şi ale celor de program, dezvoltarea insuficientă a
metodelor de instruire, mijloacelor şi metodelor de predare a cursului, se cere ca studierea
informaticii să nu devieze de la principiile generale ale didacticii. Să analizăm unele dintre aceste
principii în contextul predării informaticii:
1. Principiul caracterului ştiinţific. Principiul caracterului ştiinţific constă în necesitatea
reflectării permanente în conţinutul învăţământului a ştiinţelor respective. Caracterul ştiinţific al
instruirii presupune folosirea metodelor contemporane de instruire, ce înseamnă, în primul rând,
modelarea în sens maximal larg şi activitatea de investigare a elevilor.
2. Succesiunea şi caracterul ciclic. în alte discipline materialul instructiv se ordonează în şir logic
sau poate fi reprezentat ca un arbore. în Informatică legăturile interdisciplinare nu permit forma
liniară a învăţării materialului. Claritatea predării materialului de studiu şi complexitatea lui
posibilă depinde în mare măsură de conţinutul materialului. Este foarte avantajos de a folosi în
predarea informaticii principiul succesiunii, dar respectând şi forma ciclică, ceea ce înseamnă,
că în cazul repetării unei noţiuni, ea se îmbogăţeşte cu context nou.
3. Conştientizarea procesului de învăţământ. în sens tradiţional, caracterul conştient înseamnă o
înţelegere deplină a materialului de studiu şi a mijloacelor activităţii proprii a elevilor. Dar
computerul, fiind un aparat foarte complicat, limitează procesul de conştientizare a lui conform
scopurilor învăţământului deoarece toate procesele interne ale computerului nu pot fi explicate
la etapa iniţială a studierii informaticii, şi varianta optimală în acest caz constă în formarea la
9
elevi numai a unor idei generale. Aici semnificaţia principală o are nivelul existent al
cunoştinţelor învăţătorului şi deprinderea lui de a selecta şi a limita materialul.
4. Accesibilitatea conţinutului. Principiul accesibilităţii se realizează prin diferite niveluri de
studiere şi de lucru cu computerul.
5. Caracterul ilustrativ al studierii informaticii. Caracterul ilustrativ este particularitatea
principală a studierii informaticii din cauza că noţiunea „informaţie” este destul de flexibilă. O
informaţie poate fi prezentată prin diferite modele: scheme logice, diagrame, tabele, prin
culoare, sunete etc.
6. Spiritul activ şi independenţa - condiţie şi scop. Spiritul activ al elevului se realizează prin
activitatea lui. Cunoştinţele nu prezintă un fel de obiect care poate fi „transmis” către elevi, ci o
schimbare a personalităţii sale ceea ce cere existenţa spiritului activ al elevilor. Formele de
manifestare a spiritului activ sunt diferite: autocontrolul, controlul colegilor, modificarea şi
dezvoltarea algoritmilor. Astfel, în Informatică spiritul activ este nu numai scopul, dar şi
condiţia necesară a succesului învăţământului.
Independenţa, de asemenea, este scopul şi condiţia studierii informaticii. Sunt unele etape
specifice ale creşterii independenţei elevilor: de la dirijarea completă a elevilor de către
învăţător - prin ajutorarea dozată - la autodirijarea elevilor a activităţii proprii. Ca o condiţie
independenţa duce la productivitatea înaltă a studiilor. Ca scop al învăţării independenţa
prezintă pregătirea pentru activitatea profesională cu folosirea computerului în condiţiile
independenţei maximale de programatori. Prin trecerea la activitatea creativă independenţa se
realizează complet.
7. Trăinicia şi caracterul sistematic al cunoştinţelor. Trăinicia cunoştinţelor este legată strâns
de caracterul lor sistematic. Deoarece deprinderile, care sunt legate printr-o mulţime de asociaţii
între ele, se păstrează mai mult timp în memoria omului, conţinutul informaticii nu poate fi
prezentat în forma unui arbore simplu, dar ca o pădure, unde arborii conţin ramurile:
„informaţie”, „algoritm”, „utilizator” ş. a., împletite între ele.
8. Individualizarea învăţământului. Individualizarea şi caracterul sistematic al cunoştinţelor se
completează între ele. Numai organizând lucrul stabil în colectiv se poate găsi timp pentru
instruirea individuală a elevilor. în acest sens computerul este un instrument cu două roluri
didactice: dă posibilitate de a lucra în grupe folosind programe de instruire, iar modul lucrului
elevilor rămâne individual cu ritmul său propriu.
9. Eficacitatea activităţii de învăţare. Eficacitatea activităţii de învăţare presupune optimizarea
sforţărilor învăţătorului şi elevilor şi trebuie să fie subordonată scopurilor instruirii. Deficitul
timpului computerizat cere majorarea eficacităţii prin analiza anticipată a algoritmilor, studierea
de către elevi a instrucţiunilor înainte de a lucra la computer.
10. Legătura teoriei cu practica. Elevul poate rezolva cu ajutorul computerului probleme care sunt
de folos pentru clasă şi şcoală. Alt aspect prezintă studierea informaticii propriu-zise. Teoria
explică rezultatul experienţei, iar practica este mijlocul de control al teoriei şi izvorul de ipoteze.
Aceste două feluri de activităţi se leagă strâns la nivelul gândirii elevului.
Dar pot oare fi unite cerinţele elevilor şi sarcinile didacticii în domeniul informaticii într-un
sistem funcţional? Răspunsul la această întrebare poate fi obţinut ţinând cont de scopurile predării
informaticii şi examinând curriculumul acestei discipline.
Etapa contemporană a informatizării învăţământului se caracterizează prin dinamica de grad
ridicat al pătrunderii so/î-ului în diferite aspecte ale procesului instructiv. Mijloacele de programare
asigură formarea deprinderilor utilizatorului computerului, familiarizând elevii cu metodele
contemporane de lucru cu informaţia, de creare a programelor noi.
Mijloacele de programare folosite în procesul instructiv pot fi definite ca mijloace de
programare pentru crearea so/î-ului educaţional şi (sau) pentru susţinerea procesului de învăţământ,

10
şi care nu conţin trăsăturile concrete ale disciplinelor de studiu. Din tot largul acestor mijloace pot fi
selectate mijloacele uzuale cât pentru Informatică atât şi pentru alte discipline. în calitate de selector
a fost folosită concepţia informatizării învăţământului. în totalul minimal al mijloacelor de
programare sunt incluse: mediile limbajelor de programare; tabelele electronice; editorii (textuali şi
grafici); sistemele de dirijare ale bazelor de date; sistemele de elaborare ale aplicaţiilor multimedia;
mijloacele de elaborare a programelor instructive.
Pot fi evidenţiate trei direcţii de folosire a mijloacelor de programare în procesul instructiv. La
lecţiile de Informatică ele prezintă obiectul de studiere (1). în afară de aceasta, la lecţiile de
Informatică şi la alte discipline ele pot reprezenta mijloacele de instruire, iar folosind o metodică
corespunzătoare - şi un instrument al activităţii de cercetare ştiinţifică (2). în ultimul caz, forma
sarcinilor de studiu trebuie să presupună lucrul creativ al elevilor, de exemplu, computerele pot fi
amplasate în laboratoarele de fizică sau de chimie. Direcţia a treia a folosirii mijloacelor de
programare în procesul instructiv este elaborarea pe baza lor a programelor instructive (3).
Generalizând metodele existente de folosire a mijloacelor de programare în procesul instructiv,
pot fi evidenţiate următoarele şapte principii didactice, aplicarea cărora asigură eficacitatea
pedagogică de grad înalt a folosirii acestor sisteme în învăţământ.
Primele patru principii se referă la folosirea mijloacelor de programare la lecţiile de Informatică.
1) Principiul priceperii problemelor aplicative presupune cunoaşterea scopului de folosire a
sistemelor de studiu. Astfel, pe parcursul studierii redactorului textual este necesar, în primul rând,
să se clarifice faptul, că redactorii textuali sunt destinaţi lucrului cu informaţia prezentată în
formatul textual; de asemenea, cu ajutorul redactorului textual se poate pregăti un document
(referat, teză, raport) şi să fie imprimat; redactorii grafici sunt folosiţi pentru pregătirea desenelor,
schemelor, fragmentelor de animaţie - cu alte cuvinte, pentru lucrul cu grafica statică şi dinamică.
Astfel, pe parcursul studierii mijloacelor de programare la lecţiile de Informatică este necesară
perceperea specificului problemelor rezolvate cu ajutorul mijlocului concret, dar scopul final ai
învăţământului îl reprezintă o problemă inversă - elevii trebuie să ştie să aleagă mijlocul specific
pentru rezolvarea problemelor aplicative.
2) Principiul comunităţii cere familiarizarea elevilor cu posibilităţile funcţionale ale
mijloacelor de programare de un anumit tip. De regulă, elevii la lecţiile de Informatică abordează
numai un tip de redactor sau un tip de procesor de calcul tabelar, dar aceste tipuri concrete nu
epuizează toate posibilităţile acestor mijloace. Din acest fapt reiese că elevii trebuie să fie
familiarizaţi cu un spectru cât mai larg al mijloacelor respective.
3) Principiul moştenirii cunoştinţelor trebuie obligatoriu să fie luat în vedere în cursul de
Informatică. în corespundere cu acest principiu este necesară, de exemplu, stabilirea relaţiilor dintre
blocul lecţiilor de programare şi blocul lecţiilor de formare a deprinderilor aplicative. Aceste relaţii
trebuie să fie stabilite pentru toate mijloacele de programare. De exemplu, în timpul studierii
problemelor din blocul de programare - tablouri - pot fi amintite tabelele electronice, deoarece
tabelele electronice de asemenea prezintă un mijloc de sistematizare a informaţiei numerice. Un alt
exemplu reprezintă folosirea limbajelor de programare şi tabelelor electronice Excel în cadrul
cursului „Metode de calcul şi modelare”.
4) Deoarece mijloacele instrumentale contemporane sunt elaborate pe baza diverselor modele
tehnologice, principiul înţelegerii logicii acţiunilor ale unui anumit mijloc de programare de
asemenea trebuie să fie luat în vedere în metodica predării informaticii. Astfel, sunt redactori grafici
care lucrează cu pixeli (Paint) şi cu vectori (Corel Draw). De exemplu, unele deprinderi ale
activităţii cu redactorul de tip rastru numai vor deruta elevii în timpul lucrului cu un redactor de tip
vector unde obiectele trebuie să fie percepute nu pe puncte ci în întregime, pe grupe. De aceea
specificul lucrului cu fiecare mijloc trebuie să fie evidenţiat, formulat şi explicat elevilor.

11
5) Principiul folosirii optimale a produselor program pentru rezolvarea problemelor
didactice ale învăţământului general se referă nu numai la lecţiile de Informatică dar şi la alte
discipline şcolare. In primul rând este evident că mijloacele de programare în acest caz joacă rolul
obiectelor de studiere (ceea ce este demonstrat în principiile 1 - 4), dar ele pot fi folosite şi în
calitate de mijloace de instruire şi ca instrumente de activitate a elevilor. De exemplu, pe parcursul
studierii temei „Metode de calcul şi modelare” pot fi folosite şi limbajele de programare, şi tabelele
electronice, şi bazele de date, şi redactorii grafici. Prin totalitatea acestor mijloace va fi explicată
esenţa elaborării modelelor cu ajutorul tehnologiilor computerizate.
Tot aşa, folosirea tabelelor electronice la lecţiile de matematică are rost pentru rezolvarea
diferitelor probleme cu volum mare de date şi pentru construirea aproximativă a graficelor funcţiilor
după punctele preventiv calculate în acest tabel.
Astfel, orice mijloc de programare poate fi folosit în calitate de mijloc de instruire. în acest caz
este importantă alegerea corectă a mijlocului de programare în conformitate cu scopurile didactice
ale lecţiei şi a locului acestui mijloc în cadrul lecţiei.
6) Principiul folosirii mijloacelor de programare pentru dezvoltarea creativităţii elevilor
de asemenea trebuie să fie luat în vedere în metodica predării informaticii. Menţionăm că
problemele formulate printr-un mod specific favorizează gândirea elevilor, formează deprinderile
de cercetare. De exemplu, în timpul studierii redactorilor grafici elevilor le pot fi propuse sarcini
care favorizează dezvoltarea gândirii logice, imaginaţiei spaţiale.
Deprinderile de cercetare la elevi pot fi formate pe parcursul rezolvării problemelor de tip
proiect: sarcina nu este formulată exact şi presupune alegerea variantelor de rezolvare şi
concretizarea ei continuă. De exemplu, în procesul studierii bazelor de date poate fi propusă elevilor
următoarea sarcină: „Elaboraţi bugetul familiei dumneavoastră pentru trei luni. în ce lună suma
cheltuielilor este maximală, minimală?” sau „Elaboraţi devizul de cheltuieli pentru efectuarea
reparaţiei în şcoala voastră. Determinaţi materialul cu preţul mai înalt şi cantitatea lui maximală”. în
aceste exerciţii elevii aleg datele necesare în mod independent, le sistematizează şi le prelucrează. O
asemenea lucrare presupune pregătirea materialului din timp.
7) Principiu] folosirii optimale a mijloacelor de programare pentru elaborarea
programelor de instruire cere înţelegerea locului şi a destinaţiei acestor programe. Cerinţa
principală faţă de programele de instruire constă în orientarea lor la dezvoltarea caracterului activ al
lucrului elevilor, a iniţiativei şi creativităţii copiilor. Mijloacele de programare pe parcursul
elaborării programelor instructive permit să fie efectuate: constituirea structurii şi tipului
materialului instructiv; redactarea şi păstrarea materialului instructiv în memoria computerului;
descrierea procesului instructiv cu ajutorul scenariului (planului) respectiv, în care pot fi luate în
vedere rezultatele instruirii; reprezentarea programelor instructive şi a testelor psihologice de
determinare a particularităţilor individuale ale elevilor şi prelucrarea rezultatelor aflate; învăţarea
elevilor să se deprindă a elabora soft-ul.

1.3. Scopurile predării, structura şi particularităţile cursului de Informatică


în Moldova Informatica ca disciplină şcolară obligatorie a fost anunţată la sfârşitul anilor 80 ai
secolului XX. în acel timp au avut loc primii paşi de înzestrare a şcolilor cu tehnică de calcul, astfel
asigurându-se aspectele tehnice necesare, cele pedagogice fiind trecute pe planul doi. Din primul
moment al apariţiei computerelor în şcoli s-a făcut clar că este necesar de a elabora soft-uri speciale
de instruire. Dar de la început aceste programe au fost scrise sau de către profesori care nu ştiau în
de ajuns programarea sau de către programatori care nu posedau, de regulă, cunoştinţe didactice. în
primul caz suferea partea tehnică a lucrului, în cazul al doilea - partea didactică. Treptat metodiştii
şi programatorii au unit forţele lor în elaborarea programelor de instruire şi a altor materiale
didactice computerizate.

12
Analizarea scopurilor includerii computerelor în procesul instructiv este necesară deoarece atât
începătorii cât şi învăţătorii cu experienţă întâlnesc greutăţii în formularea lor - se ştie că
determinarea scopurilor este o parte mai complicată în metodologia practică.
Pentru a examina aceste scopuri trebuie să evidenţiem mai întâi nivelurile posibile ale
activităţilor computerizate ale omului:
1. Utilizator pasiv - nu lucrează nemijlocit cu computerul, dar foloseşte capacităţile lui: primeşte
salariul calculat, cumpără bilete; informaţia despre computer utilizatorul o primeşte din ziare,
cărţi; deprinderi de a lucra cu computerul lipsesc.
2. Utilizator activ - lucrează cu programe pregătite, introduce parametrii proprii: completează
baze de date, redactează tabele electronice; se orientează în tipurile de date, de algoritme, poate
scrie, desena şi căuta informaţie cu ajutorul computerului.
3. Utilizator-programator - poate introduce nişte elemente din numărul celor prevăzute de autor
în programul pregătit (de exemplu, o formulă în parcursul construirii graficului funcţiei).
4. Paraprogramator - lucrează cu limbajele sistemelor de dirijare a bazelor de date, tabelelor
electronice.
5. Programator - elaborează mijloacele pentru paraprogramatori, utilizatori, iar probleme
aplicative nu rezolvă; lucrează cu diverse limbaje de programare.
6. Programator de sistem - asigură eficacitatea lucrărilor la toate nivelurile (păstrarea
informaţiei, modificarea sistemelor de operare).
Din poziţia informaticii şcolare şi cerinţelor de azi se vede că figura principală o prezintă
utilizatorul activ. Dar eficacitatea activităţii lui creşte brusc dacă el ajunge până la nivelul de
utilizator-programator: se micşorează dependenţa lui de programatori. Pregătirea tuturor elevilor
până la nivelul de utilizator-programator este o sarcină posibilă pentru şcoală.
Menţionăm, că scopurile în didactica generală se examinează în cadrul unirii proceselor de
dezvoltare intelectuală şi de educaţie a personalităţii cu învăţământul în întregime. Concretizând
scopurile predării informaticii, putem observa legătura dintre aceste trei direcţii şi nivelurile
activităţii computerizate:
• învăţământ general - formarea concepţiei despre lume, cunoaşterea tipurilor de informaţie
şi modurilor prelucrării acesteia, înţelegerea principiilor de lucru al computerului, a
principiilor activităţii computerizate, a posibilităţilor şi limitărilor computerului, a
principiilor activităţii programatorului.
• învăţământ aplicativ - componentul aplicativ apare în priceperea extragerii imediate a
folosului practic din folosirea computerului (efectuarea calculelor, utilizarea sistemelor de
căutare, redactarea textelor, etc.).
• Dezvoltarea intelectuală - formarea gândirii logico-algoritmice şi sistem-combinatorice se
concretizează în priceperile de a construi afirmări logice, de a formaliza sarcinile individuale
în limbaj algoritmic, perceperea obiectelor şi evenimentelor în întregime, aptitudinea de a
combina diferite discipline pentru construirea unor modele. în realitate acest tip de gândire
este o raritate. De exemplu, puţini elevi îşi aduc aminte, când este vorba despre radicalul
pătrat în cursul algebrei, că acesta este şi o latură a unui pătrat. Dar aptitudinea dată poate juca
un rol principal în timpul modelării matematice în cursul de Informatică. în acest caz
Informatica se manifestă ca o disciplină integrală.
• Scopurile educaţionale - acest mod al scopurilor este legat strict de formarea trăsăturilor
caracteristice ale personalităţii, necesare pentru utilizarea optimală şi sigură a computerului
(responsabilitatea, spiritul de economie, autocritica).
• Cultura informaţională include în sine:

13
a) cunoştinţele computerizate - deprinderea de a număra, a citi, a scrie, a desena, a căuta
informaţie cu ajutorul computerului;
b) învăţământul computerizat - citirea permanentă a literaturii speciale, orientarea în software şi
hardware, priceperea de a alege computerul optimal pentru lucrul concret;
c) cultura informaţională - etica folosirii computerului în contextul valorilor umane: „nu ucide”
informaţia străină, „nu fura” programul sau datele. în cultura informaţională se include şi
latura estetică - priceperea de a afla, a aprecia şi a crea frumosul în informatică.
Deoarece Informatica este o parte componentă a sistemului de învăţământ preuniversitar, pentru
determinarea structurii şi particularităţilor cursului de Informatică trebuie să înţelegem cum se
formează conţinutul învăţământului în general. Specialiştii în materie definesc conţinutul
învăţământului ca un sistem al informaţiilor, acţiunilor şi operaţiilor care pe baza unor criterii logico-
ştiinţifice şi psiho-pedagogice pe de o parte sunt selectate din valorile culturale ale omenirii
(ştiinţifice, tehnice, estetice, etice, fizice), iar pe de altă parte sunt structurizate, ierarhizate şi integrate
în disciplinele şcolare [12]. Conţinutul învăţământului trebuie să dea elevului o privire globală asupra
fenomenelor naturii, societăţii, omului şi nu cunoştinţe disperate care încarcă memoria elevului fără
a-1 pregăti pentru soluţionarea problemelor ce apar în viaţa materială şi spirituală contemporană.
Informatica ca un ansamblu de diverse aspecte ale investigaţiilor spaţiului informaţional al lumii
înconjurătoare poate fi examinată din diferite puncte de vedere. Totuşi, se pot evidenţia unele
particularităţi ale cursului care dictează şi structura lui.
în primul rând, Informatica participă la formarea şi dezvoltarea generală a personalităţii.
Activitatea într-un mediu ce devine din ce în ce mai informatizat este posibilă numai atunci când
personalitatea dispune de cunoştinţe şi deprinderi de utilizare a calculatorului, adică de cultura
informaţională. De aceea accentul instruirii la Informatică este pus pe dezvoltarea gândirii logice şi
algoritmice (structurate).
în al doilea rând, Informatica dictează necesitatea unei pregătiri generale a celor care ulterior
vor utiliza calculatorul, reţelele de calculatoare şi sistemele informaţionale. Cunoştinţele din
domeniul informaticii au un caracter universal şi se aplică în toate domeniile activităţii umane.
Şi în al treilea rând, ca o disciplină şcolară, studiul informaticii în învăţământul preuniversitar
vizează:
a) pregătirea psihologică şi practică a elevilor pentru utilizarea calculatorului, prin activităţi
specifice vârstei;
b) formarea deprinderilor practice de lucru la calculator;
c) studierea informaticii ca ştiinţă care include elemente de algoritmizare, modelare,
programare logică, noţiuni de achiziţie, păstrare şi prelucrare a informaţiei;
d) studierea sistemului de calcul ca obiect (bazele logice şi aritmetice ale tehnicii de calcul,
structura şi funcţionarea calculatorului, dispozitivele periferice şi reţelele de calculatoare);
e) formarea gândirii algoritmice.

1.4. Satisfacerea necesităţilor elevilor din punct de vedere al Informaticii


Studierea informaticii elevii, de regulă, o încep cu un viu interes, dar peste un timp oarecare
acest interes scade. Analiza cauzelor ce duc la acest fenomen regretabil ne permite să concluzionăm
că cerinţele elevilor nu corespund modurilor de realizare a lor. în literatura de specialitate sunt
analizate principalele necesităţi ale personalităţii din punct de vedere al Informaticii [33]:
A. Cerinţele biogene
1. Securitatea şi apărarea datelor. Elevul lucrând în mediul computerizat fără să vrea creează un
model imaginar al vieţii sale. în acest sens discul sau dosarul personal îndeplinesc rolul „casei”.

14
2. Contactul emoţional nu poate fi realizat în mod normal între om şi computer. încercările
insistente ale copilului de a întră în contact emoţional cu computerul ar putea fl un indiciu al
lipsei acestui contact în familie.
3. Căutarea şi orientarea. Căutarea se realizează în primul rând prin studierea mediului
înconjurător. în cazul dat, aceasta este apăsarea tastelor, lansarea programelor fără
instrucţiuni. Orientarea se realizează prin crearea modelului mediului. De aceea programele
care propun de la bun început mai multe posibilităţi îi derutează pe elevi.
4. Necesitatea jocului şi a mişcării. Forma de joc a învăţării definiţiilor, a formării
deprinderilor şi capacităţilor este destul de efectivă. Jocurile, mai ales în clasele primare,
trebuie să predomine alte modalităţi de activitate. Dar necesitatea organismului în activitatea
fizică se realizează prin mişcare, iar computerul îl fixează pe om într-o poziţie pentru o perioadă
mare de timp. Deoarece mişcarea în jocurile computerizate este numai o imitare, trebuie din când
în când schimbat modul de activitate. Jocul are un rol negativ şi în cazul când este folosit în
calitate de premiu în procesul instructiv. în acest caz scopul lecţiei se schimbă: materialul
instructiv devine pedeapsă, iar jocul - scop.
B. Cerinţele psihofizice
1. Cerinţa de satisfacere. Sunt multe cazuri de a fi satisfăcut de lucrul la computer: rezolvarea
independentă a unei probleme complicate, câştigul în joc, un desenul reuşit pe ecran, etc.
2. Saturarea emoţională. Necesitatea în saturarea emoţională cere să fie realizată „lupta până
la sfârşit pentru atingerea unor scopuri”. Ca o latură inversă, apare o problemă - elevii nu
vor să părăsească clasa după sfârşitul lecţiei. Ca o soluţie, se poate propune continuarea
lucrului la lecţia următoare.
3. Cerinţa de libertate are o mulţime de manifestări: mişcarea în auditoriu, alegerea ritmului
propriu al însuşirii şi nivelului de complexitate a materialului. Ca şi în viaţă, libertatea p>jate
întră în contradicţie cu securitatea. Mărimea libertăţii şi securităţii în principiu o alege
însuşi elevul cu ajutorul profesorului.
C. Cerinţele sociale
1. Autoconfirmarea - creativitate sau distrugere. Autoconfirmarea elevului poate fi susţinută
prin acordarea ajutorului elevului slab şi prin organizarea obstacolelor liderului.
Complexitatea lumii computerizate propune elevilor o şansă unică de a se autoconfirma,
găsind materialul, care nu-1 ştie nimeni, inclusiv şi profesorul. Sunt forme de
autoconfirmare periculoase: vandalismul computerizat, crearea viruşilor. Computerul în
acest caz contribuie la manifestarea negativă a persoanei. Este important în această situaţie
de a întoarce conştiinţa elevilor spre apărarea informaţiei.
2. Comunicarea în general este un proces multilateral. Un program la fel ca o carte sau un film
este o urmă, amprentă a personalităţii autorului, dar această comunicare este indirectă.
3. Cunoaşterea lumii din punct de vedere al informaticii are următoarele direcţii: studierea
mediului înconjurător cu ajutorul computerului (modelarea), studierea mediului
computerizat propriu-zis ca o parte a lumii obiectelor, însuşirea potenţialului culturii
mondiale prin reţeaua computerizată, studierea posibilităţilor personale în legătură cu
activitatea computerizată propriu-zisă.
4. Autoexprimarea. în autoexprimarea personalităţii un rol mare îl joacă contextul creativităţii:
un program alcătuit de către elev sau o informaţie obţinută din Internet pot oglindi
intelectul personalităţii.
D. Cerinţele superioare
1. Personalitatea. Necesitatea de a fi personalitate se poate manifesta prin stilul activităţii:
programarea cu protejare de greşeli, laconismul, sistemul conspectării eficiente. Astfel se
15
poate vorbi şi despre necesitatea elevului de a se autorespecta şi de a respecta alte persoane,
necesitatea în autoapreciere.
2. Estetica şi computerul. Necesitatea estetică se realizează prin crearea rezolvărilor elegante
ale problemei, programelor scurte şi eficiente şi prin perceperea lucrărilor frumoase.
3. Cerinţa de a participa la progres. Această problemă găseşte o soluţie extraordinară odată
cu utilizarea computerului şi mai ales a reţelelor computerizate: participarea directă la
procesul intelectual mondial. Se poate de afirmat, că programele şi ideile mai bune vor
supravieţui pe creatorii lor.
4. Creativitatea. Calea principală pentru creativitate în Informatică se manifestă în stabilirea
unor sarcini incomplete. în acest caz elevii îşi dezvoltă imaginaţia lor pe deplin.

1.5. Tehnologia construirii activităţii de învăţare la obiectul Informatica


Pornind de la teza că forma de bază a organizării activităţii instructiv-educative în şcoală este
lecţia, trebuie să recunoaştem că de modul de pregătire şi de realizare a fiecărei lecţii depinde
rezultatul procesului educaţional înfăptuit în instituţia de învăţământ preuniversitar. Lecţia trebuie
să răspundă unor anumite cerinţe didactice, pentru a avea un randament aşteptat: stabilirea locului şi
importanţei sale în sistemul de lecţii; clasificarea obiectivelor urmărite şi metodelor adecvate;
elaborarea structurii metodologice; alegerea strategiilor didactice; asigurarea relaţiilor inter- şi
transdisciplinare; abordarea diferenţiată; acordarea unui grad mai mare de autonomie elevilor.
A proiecta o lecţie in vederea învăţării eficiente în clasă înseamnă a efectua următoarele
activităţi: analizarea generală a lecţiei prin consultarea curriculumului, manualului şi a altor
materiale didactice; încadrarea activităţii respective în sistemul de lecţii; definirea obiectivelor de
referinţă şi operaţionale; stabilirea resurselor necesare realizării lor; identificarea tehnologiilor
didactice adecvate obiectivelor stabilite. în literatura de specialitate sunt analizate detaliat formele
potrivite de proiectare şi de realizare a lecţiilor de Informatică.
Pentru organizarea mai raţională şi mai eficace a procesului de instruire trebuie de ţinut cont de
faptul că, spre deosebire de alte discipline şcolare, proiectarea didactică la Informatică are specificul
său, şi anume:
1. Obiectivele educaţionale ale acestei discipline sunt orientate spre formarea deprinderilor
atitudinale ale elevilor pe parcursul utilizării tehnicii de calcul.
2. Cursul constă în organizarea preponderent practică a instruirii.
3. Cursul permite (şi obligă) dezvoltarea gândirii algoritmice.
4. Cursul asigură legătura teoriei cu practica.
5. Cursul include elevii într-o activitate cu ciclu finit: observare - cercetare - sinteză - proiectare -
realizare - apreciere - valorificare.
6. Cursul asigură caracterul progresiv al instruirii, precum şi soluţionarea dificultăţilor de realizare a ei.
Elaborarea unei strategii didactice reuşite presupune alegerea eficientă a unui sistem de forme,
metode, materiale şi mijloace de instruire. Luând în consideraţie că metodele de învăţare reprezintă o
parte componentă a tehnologiei didactice şi, anume, - conceperea asamblării metodelor şi procedeelor,
ce dirijează şi orientează procesul de învăţare şi, în acelaşi timp, - o succesiune a interactivităţilor
profesorului şi elevilor axate pe rezolvarea problemelor didactice, subliniem că în Informatică
principalele metode conturate de curriculumul şcolar sunt metodele activ-participative. Dintre aceste
cele mai avantajoase simt: problematizarea, învăţarea prin descoperire, metoda euristică, studiul de
caz, brainstorming-ul, sinectica, algoritmizarea, modelarea etc.
Totodată, alături de metodele activ-participative în Informatică cu succes pot fi folosite şi
metodele tradiţionale: povestirea, prelegerea, conversaţia, instructajul, activitatea independentă
cu textul.
în continuare prezentăm unele metode didactice care pot fi folosite cu succes în Informatică:
16
Ilustrarea - în Informatică totul poate fi ilustrat prin semne şi coduri; această metodă este mai
utilă pentru procesele neobservabile în mod obişnuit, ilustrarea poate fi însoţită de explicaţii.
Demonstrarea - profesorul poate demonstra elevilor propria lui activitate; poate fi demonstrat şi
procesul de rezolvare a unei probleme, deoarece modelul computerizat este întotdeauna mai simplu
decât realitatea şi posedă, în afară de aceasta, proprietăţi proprii care pot lipsi la prototipul real.
Comparaţia poate fi folosită la confruntarea comenzilor asemănătoare: de exemplu, copierea şi
multiplicarea în tabelele electronice sau compararea instrucţiunilor asemănătoare într-un limbaj de
programare. Comparaţia este o metodă didactică foarte eficientă. Cu ajutorul comparaţiei pot fi
introduse şi şlefuite noţiunile noi, dar de la început trebuie de arătat elevilor asemănarea lor iar mai
târziu, diferenţa dintre ele.
Clasificarea se aplică în procesul de studiere a unui volum mare de material instructiv şi este
legată de consolidarea cunoştinţelor.
Generalizarea, poate fi utilizată, de exemplu, la reprezentarea trecerii de la ideea de repetare a
acţiunilor asemănătoare la instrucţiunea de ciclare (inducţia cazului general din cazurile speciale).
Inducţia este o formă de generalizare desfăşurată. în Informatică metoda de inducţie este
eficientă numai în condiţiile când denumirile elementelor şi acţiunile lor au caracter unitar, deci
satisfac necesitatea utilizatorului de a se orienta. în situaţia ideală înşirarea exemplelor trebuie să
reprezinte toate cazurile speciale. Inducţia se developează, de exemplu, în concluzia despre
corectitudinea unui program pe baza numărului finit al testelor.
Rolul deducţiei (deducţia cazului special din cazul general) în Informatica şcolară este mai
modest decât rolul inducţiei. De exemplu, căutarea greşelii într-un algoritm care poartă caracter
deductiv.
Analogia este o formă de inducţie. Figura raţionamentului este următoarea: dacă în situaţia B
are loc faptul F şi situaţia Bl este asemănătoare cu situaţia B, atunci se poate aştepta că în situaţia
B l, de asemenea, să aibă loc faptul F. De exemplu, dacă două programe sunt create de o firmă, se
poate aştepta ca instrucţiunile lor să fie asemănătoare în cazul operaţiilor identice.
Operaţiile abstractizarea şi concretizarea sunt legate de modelarea computerizată. Sarcina
iniţială a oricărui program întotdeauna are caracter concret şi se descrie cu termenii ştiinţei primare.
Transformarea acestor termeni în termenii unui limbaj de informatică reprezintă o problemă
independentă şi complicată. Esenţa lucrului constă în traducerea noţiunilor din limbajul concret în
limbaj abstract. La finisarea lucrului rezultatul iarăşi trebuie să fie tradus în limbaj concret pentru ca
utilizatorul să-l înţeleagă clar. De exemplu, comentariile pentru un program reprezintă traducerea
acestei probleme din limbajul formal în limbaj concret, şi mai mult decât atât - în scris.
Metoda programelor deschise reprezintă o clasă întreagă de programe orientate spre
transmiterea utilizatorului a cunoştinţelor despre structura şi destinaţia programelor din această
clasă. Modelul programului conţine numai particularităţile generale ale clasei respective şi nu
conţine informaţia auxiliară (de exemplu, fragmentele de întrare/ieşire). Scopul acestei metode este
dezvoltarea creativităţii.
Alt tip de activitate la lecţiile de Informatică reprezintă jocurile didactice, precum şi cele
computerizate. Jocurile dezvoltă capacitatea de a analiza activităţile proprii şi străine, interesul pentru
colaborare. Totodată, specialiştii ne avertizează despre pericolul pe care îl prezintă jocurile care au o
încărcătură educativă redusă, dar prin atractivitate captivează şi reţin atenţia elevului uneori ore în şir [17].
Curriculumul la Informatică punctează scopul major al predării-învăţării informaticii în şcoală:
pregătirea psihologică şi practică a elevilor pentru adaptarea şi activitatea lor într-o societate
informaţională în continuă schimbare şi formarea gândirii algoritmice, accentul fiind pus pe
individualizare şi schimbare permanentă. Dar în situaţia, când există o necoerenţă (fie cât de mică)
între numărul de ore prevăzut pentru predarea informaticii în şcoală şi conţinuturile de predat, doar
cadrele didactice care exploatează eficient metodele de învăţământ pot atinge obiectivele date.
17
1.6. Metode şi tehnici interactive de grup
Cerinţele de modernizare şi de perfecţionare a metodologiei pedagogice se axează pe îmbinarea
activităţilor de învăţare şi de muncă independentă cu activităţile de cooperare, de învăţare în grup şi
de muncă interdependentă. Cadrele didactice, care exploatează eficient metodele interactive de
grup, promovează interacţiunea dintre minţile participanţilor, dintre personalităţile lor, ceea ce duce
la o învăţare mai activă şu cu rezultate evidente. Interactivitatea presupune atât cooperarea cât şi
competiţia, ambele implicând un anumit grad de interacţiune, în opoziţie cu comportamentul
individual. Interacţiunea stimulează efortul şi productivitatea individului şi este importantă pentru
autodescoperirea propriilor capacităţi şi limite, pentru autoevaluare.
Metodele şi tehnicile interactive de grup se clasifică conform funcţiei sale didactice în
următoarele grupe:
I. Metode de predare-învăţare interactivă în grup: Metoda predării/învăţării reciproce
(Reciprocal teaching - Palinscar); Metoda Mozaicul (Jigsaw); Citirea cuprinzătoare; Cascada;
Metoda învăţării pe grupe mici (STAD —Student Teams Achievement Division); Metoda tumirurilor
între echipe (TGT - Teams/Games/Tournaments); Metoda schimbării perechii (Share-Pair Circles);
Metoda Piramidei; învăţarea dramatizată;
II. Metode de fixare şi sistematizare a cunoştinţelor şi de verificare: Harta cognitivă sau
Harta conceptuală (Cognitive map, Conceptual map); Matricele; Lanţurile cognitive; Scheletul de
peşte (Fishbone maps); Diagrama cauzelor şi a efectului; Pânza de păianjen {Spider map - Webs);
Tehnica Floarea de nufăr (Lotus Blossom Technique); Metoda R.A.I.; Cartonaşele luminoase;
III. Metode de rezolvare de probleme prin stimularea creativităţii: Brainstorming; Explozia
stelară (Starbursting); Metoda pălăriilor gânditoare (Thinking hats - Edward de Bono); Caruselul;
Multi-voting; Masa rotundă; Interviul de grup; Studiul de caz; Incidentul critic;
Philips 6/6; Tehnica 6/3/5; Controversa creativă; Tehnica acvariului (Fishbowl); Tehnica focus
grup; Patru colţuri (Four corners); Metoda Frisco; Sinectica; Buzz-groups; Metoda Delphi;
IV. Metode de cercetare în grup: Tema sau proiectul de cercetare în grup; Experimentul pe
echipe; Portofoliul de grup; Diagrama cauzelor şi a efectului.
Unele metode pot fi încadrate în scenariile unor lecţii tradiţionale, altele necesită fonne
netradiţionale (nestandarde) de lecţii, cum ar fi conferinţa, seminar-dispută, colocviu, lecţie-
excursie, competiţie, lecţie-licitaţie etc. Mai jos sunt prezentate descrierile şi exemple de aplicare a
unor metode, care, în opinia autorilor pot fi utilizate cu succes de către profesorii de Informatică atât
în cadrul instruirii formale cât şi a celei nonformale.

Metoda predării/învăţării reciproce


Această metodă este o strategie de învăţare a tehnicilor de studiere a unui text şi se poate
desfăşura pe grupe sau cu toată clasa. Metoda învăţării reciproce este centrată pe patru strategii de
învăţare:
1. Rezumarea - expunerea a ceea ce este mai important dintr-un text citit.
2. Punerea de întrebări - listarea unei serii de întrebări despre informaţiile citite.
3. Clarificarea datelor - discutarea termenilor necunoscuţi, apelul la diverse surse, soluţionarea
neînţelegerilor.
4. Prezicerea (prognosticarea) - elevii prezic ceea ce se poate întâmpla în continuare în baza celor
discutate.
Etapele realizării acestei metode sunt:
• explicarea scopului, descrierea metodei şi a celor patru strategii;
• împărţirea rolurilor elevilor;
• organizarea pe grupe;

18
• lucrul pe text;
• realizarea învăţării reciproce;
• aprecieri, completări, comentarii.
Avantajele metodei de predare/învăţare reciprocă: după ce sunt familiarizaţi cu metoda, elevii
interpretează rolul profesorului, instruindu-şi colegii, astfel are loc dezvoltarea dialogului elev-elev;
este o strategie de învăţare în grup, care stimulează şi motivează; ajută elevii în învăţarea metodelor
de lucru cu textul, pe care le pot folosi apoi şi în mod independent în munca lor intelectuală;
stimulează capacitatea de concentrare asupra textului citit şi priceperea de a selecţiona esenţialul;
dezvoltă capacitatea de exprimare, atenţia, gândirea cu operaţiile ei (analiza, sinteza, concretizarea,
generalizarea, abstractizarea) şi capacitatea de ascultare activă; „efectul de învăţare” - un elev
„puţin dotat” poate înregistra performanţe mult mai înalte „învăţând” un alt elev decât învăţând
individual.
Exemplu de aplicare a metodei predării/învăţării reciproce
Această metodă poate fi aplicată la lecţiile, unde elevilor trebuie să li se aducă la cunoştinţa un material teoretic,
care este dat în manual sau în altă sursă de informaţie.

Clasa: a XH-a
Obiectul de studiu: Calcul numeric
Tipul lecţiei: Lecţie de asimilare a cunoştinţelor
Tema lecţiei: Elemente de modelare

Etapele metodei:
• Se propun elevilor pentru studiere temele 1.1 şi 1.2 din [6] şi li se explică strategiile metodei.
• Elevii se împart în patru grupuri corespunzătoare celor patru roluri (strategii):
1. rezumarea
2. punerea de întrebări
3. clarificarea datelor
4. prognosticarea
• Desfăşurarea lucrului pe echipe: membrii unui grup cooperează în realizarea aceluiaşi rol.
• Realizarea învăţării reciproce - fiecare grup îşi exercită rolul asumat: grupul 1 prezintă rezumatul textului
studiat; grupul 2 adresează colegilor o listă de întrebări (la care a pregătit şi răspunsurile); grupul 3 vine cu o
listă de termeni noi pe care îi clarifică şi ultimul grup dezvoltă predicţii: motivează importanţa modelării şi
prezic când şi unde va apărea necesitatea utilizării ei.
• Profesorul dirijează activitatea, îi stimulează pe elevi să se completeze reciproc, analizează lucrul echipelor, îi
evidenţiază pe elevii buni în rol de „profesori”.

Metoda Mozaicul
Metoda Mozaicul sau Metoda grupurilor interdependente este o strategie bazată pe învăţarea în
echipă. Fiecare elev are o sarcină de studiu în care trebuie să devină expert, în acelaşi timp având
responsabilitatea transmiterii informaţiilor asimilate celorlalţi elevi.
Fazele şi etapele realizării acestei metode;
Faza organizatorică:
1. Pregătirea materialului de studiu. La această etapă profesorul stabileşte tema de studiu şi o
împarte în 4-5 subteme; realizează o fişă-expert în care trece aceste subteme pentru a o oferi
fiecărui grup. Opţional, poate stabili pentru fiecare subtemă elementele principale pe care
trebuie să pună accentul elevul atunci când studiază materialul în mod independent.
2. Organizarea colectivului în echipe de învăţare de câte 4-5 elevi. Fiecare elev primeşte un
număr de la 1 la 4-5 şi subtema corespunzătoare numărului său pentru a o studia

19
independent şi a deveni „expert” în problema dată, astfel, elevii cu numărul 1 din toate
grupele vor aprofunda subtema cu numărul 1, cei cu numărul 2 - subtema 2 etc.
Faza independentă:
Fiecare elev studiază tema lui, lucru care poate fi făcut în clasă sau acasă.
3. Constituirea grupurilor de experţi. Experţii cu acelaşi număr se reunesc în grupe de
experţi pentru a dezbate problema împreună. Dacă grupul de experţi are mai mult de 6
membri, acesta se divizează în 2 grupe mai mici.
Faza discuţiilor în grupul de experţi:
Elevii prezintă un raport individual asupra celor studiate independent, au loc discuţii şi se
stabileşte modalitatea în care noile cunoştinţe vor fi expuse celorlalţi membri din echipele
iniţiale.
4. Reîntoarcerea în echipa iniţială de învăţare.
Faza raportului de echipă:
Experţii transmit cunoştinţele asimilate şi le reţin pe cele posedate de către colegii lor. Ei pot
utiliza diverse materiale, diagrame, desene, astfel ca modalitatea de transmitere să fie cât mai
scurtă, concisă şi atractivă. Membrii echipei sunt stimulaţi să pună întrebări, să discute şi să-
şi facă notiţe.
5. Evaluarea.
Faza demonstraţiei:
Grupele prezintă rezultatele întregii clase, elevii fiind gata să demonstreze ce au învăţat.
Profesorul poate evalua cunoştinţele prin diferite metode: poate pune întrebări, poate cere un
raport ori poate da spre rezolvare fiecărui elev o fişă de evaluare. în cazul evaluării orale
fiecărui elev i se va adresa o întrebare la care va trebui să răspundă fără ajutorul echipei.
Avantajele metodei Mozaicul: dezvoltarea capacităţilor de ascultare, vorbire, cooperare,
reflectare, gândire creativă şi rezolvare de probleme; metoda grupurilor interdependente exclude
manifestarea aşa numitului efect Ringelmann sau a lenei sociale, atunci când individul crede că
propria contribuţie la sarcina de grup nu poate fi stabilită cu precizie.
Exemplu de aplicare a metodei Mozaicul

Clasa: a X-a
Obiectul de studiu: Limbajul de programare Pascal
Tipul lecţiei: Lecţie de asimilare a cunoştinţelor
Tema lecţiei: Tipul de date mulţime

Faza organizatorică
Pregătirea materialului de studiu
Tema în studiu este divizată în 4 subteme:
I. Tipul Set: definirea, mulţimea valorilor, constructorii de mulţime;
II. Mulţimea operaţiilor;
III. Afişarea elementelor mulţimii;
IV. Formarea mulţimii din elemente citite de la tastatură.
Organizarea colectivului în echipe de învăţare
• Elevii sunt împărţiţi în 3-5 grupe a câte 4 elevi, li se anunţă tema, subtemele ei şi fiecare elev primeşte
materialul de studiu, care poate fi luat din manual [11] sau dintr-o fişă pregătită în mod special (vezi în
continuare).

20
• Profesorul numeşte în fiecare echipă câte un elev care trebuie să devină „expert” în problema respectivă şi
stabileşte pentru fiecare subtemă elementele pe care trebuie să fie pus accentul (aceste repere pot fi citite
elevilor sau pot fi puse la dispoziţia lor sub formă de fişe). De exemplu:
La subtema I:

S definirea tipului Set, limitarea tipului de bază, exemple de definire a tipurilor Set având diferite tipuri de
bază;
S mulţimea valorilor oricărui tip Set;
S constructorul de mulţimi şi elementele lui;
La subtema II:

V operaţiile ce pot fi efectuate asupra mulţimilor şi tipul rezultatului în fiecare caz;


S exemple de operaţii şi rezultatele lor pentru mulţimi ce au diferite tipuri de bază;
S care operaţii sunt cunoscute din cursul de matematică şi care sunt o noutate;
La subtema III:

V cum se rezolvă problema afişării elementelor unei mulţimi, dacă nu avem acces direct la ele;
V prezentaţi exemple de afişare a elementelor mulţimilor ce au diferite tipuri de bază;
V utilizaţi calculatorul pentru a demonstra exemplele;
V în exemplul 2 din fişă se afişează elementele unei mulţimi Set o f char în cazul când mulţimea este
alcătuită din litere mici ale alfabetului latin, cum veţi afişa mulţimea dacă ea va conţine orice caractere?
La subtema IV:

V găsiţi în subtema III de unde vine specificul afişării la ecran şi citirii de la tastatură a elementelor
mulţimii;
v' prezentaţi la calculator diferite exemple de formare a mulţimilor din elemente citite de la tastatură;
V demonstraţi prin exemple de programe cum se pot forma mulţimi cu un număr dat n de elemente;
Faza independentă
• Fiecare elev îşi notează subtema de care răspunde şi elementele principale ale ei sau le citeşte din fişa cu repet e.
• Profesorul le explică elevilor modalitatea de lucru în continuare şi le propune să înceapă cu cercetarea în mod
individual a subtemelor corespunzătoare şi pregătirea rapoartelor asupra a ceea ce au studiat. Pentru această
fază se rezervează 5-8 minute, în dependenţă de capacităţile elevilor.
Faza discuţiilor în grupul de experţi
• După ce au parcurs faza de lucru independent elevii se reunesc în grupe de experţi unde fiecare membru
prezintă raportul individual, se discută întrebările apărute şi forma de expunere a materialului dezbătut celorlalţi
elevi. Membrii echipelor răspunzători de subtemele III şi IV pot pregăti programe demonstrative pe cele 4
calculatoare la care se va lucra în faza raportului pe echipe (vezi amplasarea echipelor de lucru din fig. 1.6.2).
Pentru această etapă pot fi rezervate 10-12 minute.
Faza raportului de echipă
• Elevii se întorc în echipele iniţiale de învăţare pentru a transmite cunoştinţele asimilate şi pentru a reţine la
rândul lor cunoştinţele pe care le transmit colegii lor. Membrii echipei discută, pun întrebări, notează propriul
plan de idei, analizează programele demonstrate de experţii în subtemele III şi IV.
• Profesorul le propune fiecărei echipe de învăţare să combine programele pregătite la subtema IV cu cele de la
subtema III, astfel obţinând programe în care se citesc elementele mulţimii şi se afişează. La această fază elevii
pot avea nevoie de 12-15 minute. Dacă sunt echipe care finalizează discuţiile înaintea celorlalte, li se propun
spre rezolvare teste sau exerciţii pregătite pentru evaluarea elevilor.
Evaluarea (faza demonstraţiei cunoştinţelor)
• Pentru a evalua cunoştinţele elevilor profesorul le poate propune întrebări şi exerciţii din manual [11], teste [8],
alte surse sau le poate da fiecărui elev spre rezolvare câte o fişă de evaluare.

21
Amplasarea elevilor
Acest exemplu de instruire prin metoda Mozaicului poate fi realizat în două variante: într-o clasă fără calculatoare şi în
cabinetul cu tehnică de calcul, dar preferabilă totuşi rămâne a doua variantă. în ambele cazuri, grupurile de lucru trebuie
să fie amplasate cât mai departe posibil unul de altul, pentru a nu se deranja reciproc. în figurile 1.6.1 şi 1.6.2 sunt
reprezentate variante de amplasare a echipelor de învăţare şi a grupurilor de experţi.

3 4

3 3 4 4

3 4

a) b)
Fig. 1.6.1. Reprezentarea amplasării echipelor de învăţare în faza raportului pe echipe (a)
şi a grupurilor de experţi în faza discuţiilor (b) într-o sală fără calculatoare

a) b)

Fig. 1.6.2. Reprezentarea amplasării echipelor de învăţare în faza raportului pe echipe (a)
şi a grupurilor de experţi în faza discuţiilor (b) într-o sală cu tehnică de calcul (C - calculator)

22
Materialul de studiu la tema Tipul de date mulţime
Subtema I
Un tip de mulţime (set) se defineşte în raport cu un tip de bază care trebuie să fie ordinal în felul următor:
type ident_tip_multime = set of tip_de_baza
Valorile unui tip de date set sunt mulţimi formate din valorile tipului de bază. Daca tipul de bază are n valori, tipul
mulţime va avea 2" valori. în implementările limbajului valoarea lui n este limitată, de regulă n<=256. Tip de bază
poate fi: b y t e , b o o l e a n , o h a r , enumerare, subdomeniu.
Mulţimea valorilor tipului mulţime reprezintă mulţimea tuturor submulţimilor tipului de bază, inclusiv mulţimea
vidă.
în PASCAL o mulţime poate fi specificată enumerându-i-se elementele între parantezele pătrate “[“ şi care ţin
locul acoladelor din matematică.
Notaţia [ ] reprezintă mulţimea vidă.
Exemplul 1:_____________________________________________________
type cifre=5..7;
multime=set.of cifre;
var m: mulţime;
Tipul de bază are n=3 valori, tipul mulţime va avea 23=8 valori:
[ ], [5], [6], [71, [5,6], [5,7], [6,7], [5,6,7]
O atribuire corectă: m:=[5,6]
Exemplul 2ş_____________________________________________________
t y p e Indice=l..10;
Zi= (L, Ma, Mi, J, V, S, D) ;
Multimelndici=set of Indice;
ZileDePrezenta=set of zi;
var Mi Multimelndici;
Zp: ZileDePrezenta;
Tipul Indice are n= 10 valori: 1,2, 3,4, 5, 6, 7, 8, 9,10.
Tipul Multimelndici are 2 lo= 10 2 4 de valori, şi anume:
[ ], [1], [2], ...,[ 1 ,2 ] , [1, 3], ... , [ 1 , 2 , 3, 4, 5, 6, 7, 8, 9, 10].
Prin urmare, variabila Mi poate să aibă oricare din aceste valori, de exemplu:
Mi:= [1,3]
Tipul Zi aren=7 valori: L, Ma, Mi, J, V, S, D.
Tipul ZileDe Prezent a are 27 =128 de valori, şi anume
[ ], [L] , [Ma] , [Mi] ,..., [L, Ma] , [L, Mi],..., [L, Ma, Mi, J, V, S, D]
Variabila Zp poate să aibă oricare dintre aceste valori, de exemplu
Zp:= [L, Ma, Mi, V]
O valoare de tip mulţime poate fi specificată printr-un constructor (generator) de mulţime care conţine
enumerarea elementelor mulţimii separate prin virgulă şi luate între parantezele [ ]. Un element al constructorului poate
fi o valoare a tipului de bază, un interval sau o expresie ce are tipul de bază. Exemple: [ ' a ' , ' b ' ] , [ 1 , 2 , 5 . . 9 ] ;
[2, k*3]

Subtema II
Operaţiile care se pot efectua cu mulţimi sunt:
1. Reuniunea
A: = [ 0 , 2 , 4 , 6 , 8 ] ; B: = [ l , 3 , 5 , 7 , 9 ] ; C: = A+B; ( C= [ 0 , 1 , 2 , 3 , 4, 5, 6, 7 , 8 , 9 ] }
2. Intersecţia a două mulţimi A şi B este mulţimea tuturor elementelor care sunt membri ai lui A şi ai lui B.
A: = [ l , 3 , 5 , 7 ] ; B: = [ l , 4 , 5 , 9 ] ; C : = A * B ; { C = [ l , 5] }
3. Diferenţa mulţimilor
A: = [1 , 3 , 5 , 7 ] ; B: = [ l , 4 , 5 , 9] ; C 1:= A -B ; {Cl = [ 3, 7] - elementele ce sunt în A şi nu sunt în B}
C 2; =B-A; {C2= [ 4 , 9 ] —elementele ce sunt în B şi nu sunt în A }
4. Operaţii relaţionale (tipul rezultatului - boolean)
A oB este true când mulţimile au elemente absolut diferite
A>=B este true când orice element din B este în A
A<= B este true când orice element din A este inclus în B
A= B este true când mulţimile conţin exact aceleaşi elemente
in (apartenenţa) stabileşte faptul dacă o anumită valoare este sau nu membru al unei mulţimi precizate,
exemplu: i f x i n A t h e n ....(tipul elementului x trebuie să fie compatibil cu tipul de bază al mulţimii A)

23
Subtema III
Spre deosebire de tablouri şi şiruri de caractere, componentele cărora pot fi referite direct, prin indici (exemplu:
A[ 1,2] sau S[i]) elementele unei mulţimi nu pot fi referite. De aici apare specificul afişării elementelor unei mulţimi la
ecran sau formarea unei mulţimi din elemente citite de la tastatură.
în cazul afişării elementelor se va proceda în felul următor: ştiind din ce domeniu sunt elementele mulţimii, se va
parcurge acest domeniu şi se va verifica fiecare valoare din acest interval dacă aparţine mulţimii date sau nu şi în caz
afirmativ se va afişa elementul.

Subtema IV
Dacă formăm o mulţime din elemente citite de la tastatură, fiecare valoare citită se adaugă la mulţime ca
element al unui constructor de mulţimi prin operaţia de reuniune.

Dar trebuie să ţinem cont de faptul că în cazul dat mulţimea va conţine n elemente doar dacă toate valorile citite x
au fost distincte (vezi operaţia reuniunea).
Dacă dorim să ne asigurăm că mulţimea va avea anume n elemente putem repeta citirea elementului x dacă el este
deja în mulţime;_____________________________________________________

M: = [] ;
for i :=1 to n do
t begin
repeat Readln (x) until not (x in M);
M :=M+[x]
End;

24
Metoda Piramidei
Metoda Piramidei sau Metoda bulgărelui de zăpadă are la bază combinarea activităţii
individuale cu cea desfăşurată în mod cooperativ, în cadrul grupurilor. Activităţile fiecărui
participant se încorporează într-un demers colectiv menit să ducă la soluţionarea unei sarcini sau a
unei probleme date.
Fazele metodei Piramidei:
• Faza introductivă - profesorul expune datele problemei în cauză;
• Faza lucrului individual - elevii lucrează în mod individual la soluţionarea problemei timp
de 5 minute, îşi notează întrebările legate de subiectul tratat;
• Faza lucrului în perechi - elevii formează grupe de câte 2 elevi pentru a discuta rezultatele
individuale, se solicită răspunsuri la întrebările individuale şi se notează dacă apar altele noi;
• Faza reuniunii în grupuri mai mari - de obicei se formează două grupuri aproximativ
egale ca număr de participanţi, alcătuite din grupele mai mici existente anterior şi se discută
despre soluţiile la care s-a ajuns. Totodată se răspunde la întrebările rămase nesoluţionate;
• Faza raportării soluţiilor în colectiv - clasa reunită analizează şi concluzionează asupra
ideilor emise, care pot fi trecute pe tablă, se lămuresc cu ajutorul profesorului şi întrebările
nerezolvate;
• Faza decizională - se alege soluţia finală şi se concluzionează asupra demersurilor realizate
şi participării elevilor la activitate.
Această metodă are avantajele tehnicilor de lucru în perechi şi în colectiv: stimularea învăţării
prin cooperare, al sporirii încrederii în forţele proprii prin testarea ideilor emise individual, în grupe
mici şi apoi în colectiv, dezvoltă capacitatea de a emite soluţii inedite la problemele şi sarcinile
apărute.
Dezavantajele înregistrate sunt de ordin evaluativ, deoarece e dificil de stabilit cât de însemnată
a fost contribuţia fiecărui participant.
Exemplu de aplicare a metodei Piramidei

Clasa: a XlI-a
Obiectul de studiu: SGBD Access
Tipul lecţiei: lecţie mixtă
Tema lecţiei: Formulare. Crearea subformularelor

Această lecţie poate începe cu verificarea cunoştinţelor, priceperilor şi deprinderilor însuşite anterior. Cu
acest scop, se dialoghează cu elevii despre crearea formularelor în baza tabelelor şi interogărilor; despre elementele de
control şi butoane de comandă, după care li se propune câte o fişă de lucru, cum ar fi Fişa nr.l, care este un exemplu
cu exerciţii de creare a formularelor în baza de date BIBL (bază elaborată de un grup de autori şi pusă la dispoziţia
şcolilor noastre [30]).

Fişa nr.l
1. Creaţi un formular în baza tabelului CITITORI. Adăugaţi în antetul formularului textul: Date despre
cititor şi în subsol: Formular realizat de (nume) Dezactivaţi accesul la celula ce afişează numele cititorului.
Plasaţi în formular un element de control calculat care să afişeze vârsta cititorului în ani.
2. Definiţi o interogare de totalizare în care va fi afişat numărul total de comenzi pentru fiecare cititor şi
numele cititorului. Creaţi în baza acestei interogări un formular. Plasaţi în formular un buton de comandă
care va deschide primul formular cu date despre cititori. Pe buton trebuie să fie textul: Detalii despre cititor
Adăugaţi în al doilea formular un calendar. Verificaţi după acest calendar în ce zi a săptămânii v-aţi născut.

25
La următoarea etapă a lecţiei poate fi utilizată metoda Piramidei:

• Profesorul formulează problema şi punctele reper ale ei: crearea subformularelor în bază de: a) tabele,
b) interogări, c) formulare, după care le împarte elevilor câte un ghid de utilizare a SGBD Access [30] şi câte o
fişă cu exerciţii de creare a subformularelor (vezi Fişa nr.2).

Fişa nr. 2
1. Definiţi un formular în care vor fi afişate datele despre cititori. Creaţi în el un subformular pe bază de
tabele în care vor fi indicate cărţile (denumirea, preţul, şi limba în care sunt scrise) împrumutate de fiecare
cititor.
2. Definiţi un formular în care vor fi afişate datele despre autori. Creaţi în el un subformular pe bază de
interogare, în care vor fi indicate cărţile scrise de autorii respectivi în limba engleză după anul 1990.
3. Creaţi un formular în care vor fi afişate datele despre cărţi (denumirea, autorul, anul ediţiei şi preţul).
Definiţi un formular cu date despre autori. Creaţi în el un subformular în baza formularului creat anterior.

• Elevii analizează în mod individual problema timp de 5 minute şi notează întrebările la care urmează să
găsească răspuns.
• Se formează perechi de elevi, în care se discută problemele şi se caută soluţii.
• Elevii se unesc în grupe mai mari, în cazul dat nu mai mult de 4-5 elevi în echipă, deoarece în continuare vor
lucra la calculator, rezolvând exerciţiile din fişă.
• Fiecare grup prezintă formularele elaborate, dacă au rămas întrebări nerezolvate, se discută în colectiv, se
rezolvă cu ajutorul profesorului.
• Profesorul analizează rezultatele elevilor, îi stimulează şi pe ei să cerceteze formularele, să vadă spre exemplu,
cum se îmbunătăţeşte designul formularelor ce conţin subformulare elaborate în bază de alte formulare.

Tehnica Floarea de nufăr (Lotus)


Această tehnică presupune deducerea de conexiuni între idei, concepte, pornind de la o temă
centrală. în jurul problemei centrale se construiesc 8 idei secundare, asemeni petalelor florii de
nufăr, urmând ca apoi ele să devină la rândul lor teme centrale pentru alte 8 flori de nufăr, în jurul
lor construindu-se câte alte 8 noi idei secundare. Astfel, pornind de la o temă centrală, sunt generate
noi teme de studiu pentru care trebuiesc dezvoltate conexiuni şi concepte noi.
Etapele tehnicii Floarea de nufăr:
• Construirea diagramei Lotus (vezi fig. 1.6.3 şi 1.6.4).
• Scrierea temei centrale în mijlocul diagramei.
• Participanţii se gândesc la ideile sau aplicaţiile legate de tema centrală. Acestea se trec în
cele 8 „petale” (cercuri) ce înconjoară tema centrală, de la A la H, în sensul acelor
ceasornicului, mai întâi A, B, C, D, apoi E, F, G, H.•
• Folosirea celor 8 idei deduse, drept noi teme centrale pentru celelalte 8 cadrane („flori de
nufăr”).
• Etapa construirii de noi conexiuni pentru cele 8 noi teme centrale şi consemnarea lor în
diagramă. Se completează în acest mod cât mai multe „flori de nufăr”.
• Etapa evaluării ideilor. Se analizează diagramele şi se apreciază rezultatele din punct de
vedere calitativ şi cantitativ. Ideile emise se pot folosi ca sursă de noi aplicaţii şi teme de
studiu în lecţiile viitoare.
Tehnica Lotus poate fi desfăşurată cu succes în grup. Totodată, există posibilitatea dezvoltării
unui Lotus individual, ca un exerciţiu de stimulare a creativităţii şi de autoevaluare. Această
tehnică este o modalitate de lucru cu mari valenţe formativ-educative, care stimulează şi dezvoltă
capacităţi ale diverselor forme de inteligenţă: lingvistică, interpersonală, intrapersonală, naturalistă
socială.

26
< з( F jS> <3( с )6> < з ( ° )й >

ч ^ -^ f
< 3 ( в )0E> ce n tra ^ ^ ^ <3( n W
Jh=f\
ЧгЧ=^
<3( Е )й > < з( А )й > < з ( н j^ >

Fig. 1.6.4. Diagrama Lotus

27
Exemplu de aplicare a tehnicii Lotus

Clasa: alX-a
Obiectul de studiu: Limbajul de programare Pascal
Tipul lecţiei: Lecţie de sistematizare şi recapitulare
Tema lecţiei: Tipuri de date simple

La tema dată poate fi aplicat cu succes un Lotus în grup, dar cu numărul de petale modificat - în loc de 8 se vor lua 6.
Etapele metodei:
• Profesorul anunţă tema centrală: Tipuri de date simple.
• Pe baza dialogului desfăşurat între elevi şi profesor se vor completa cele 6 idei secundare ale temei centrale -
6 tipuri de date simple [11]:
1. integer,
2. real,
3. boolean,
4. char,
5. enumerare,
6. subdomeniu.
Ideile secundare se trec în diagramă.
• Colectivul se împarte apoi în 6 grupe de câte 2, 3 sau 4 elevi fiecare, în funcţie de numărul de elevi din clasă.
• Ideile secundare devin teme centrale pentru fiecare din cele 6 grupuri constituite. Astfel, fiecare grup lucrează
independent, la dezvoltarea uneia dintre ele, exerciţiu creator la care participă toţi membrii grupului.
De exemplu: grupul 1 are de găsit 6 idei pentru tema Tipul de date integer. Aceste idei (sau teme ce vor fi
desfăşurate în continuare) ar putea fi:
1. Mulţimea valorilor
2. Mulţimea operaţiilor
3. Funcţii cu argument de tip integer
4. Funcţii cu rezultat de tip integer
5. Particularităţile tipului
6. Probleme cu acest tip de date.
6 idei elaborate vor constitui teme centrale pentru dezvoltarea altor 6 flori de nufăr. Procesul poate fi continuat până
când „se termină” ideile.
în mod similar celelalte grupuri vor trata temele lor.
• Prezentarea în faţa colectivului a rezultatelor fiecărui grup în parte. Completarea diagramei pe baza ideilor
expuse de fiecare grup şi a discuţiilor purtate între membrii grupurilor în scopul clarificării şi corectării.
• Evaluarea muncii colaborative în grup, aprecierea participării şi folosirea rezultatelor obţinute în activităţile următoare.

Diagrama cauzelor şi a efectului


Diagramele sunt folosite în grup ca un proces creativ de generare şi organizare a cauzelor
majore (principale) şi minore (secundare) ale unui efect.
Etapele de realizare a diagramei cauzelor şi a efectului:
• Se împarte clasa în echipe de lucru;
• Se stabileşte problema de discutat - care este rezultatul (efectul) unei întâmplări sau a unui
eveniment deosebit. Fiecare grup are de analizat câte un efect;
• Dezbaterea în fiecare grup - descoperirea cauzelor care au condus la efectul discutat,
înregistrarea cauzelor se face pe hârtie sau pe tablă;
• Construirea diagramei cauzelor şi a efectului:

28
S pe axa principală a diagramei se trece efectul;
^ pe ramurile axei principale se trec cauzele majore ale efectului, ce corespund celor 6
întrebări: Când.P, Unde?, Cine?, De ce?, Ce?, Cum (s-a întâmplat)?
'C Cauzele minore ce decurg din cele principale se trec pe câte o ramură mai mică, trasată
din cea a cauzei majore;
• Examinarea listei de cauze generate de fiecare grup:
C examinarea desenelor;
^ evaluarea modului în care s-a făcut distincţie între cauzele majore şi cele minore şi a
plasării lor corecte în diagramă;
C evaluarea diagramelor fiecărui grup şi discutarea lor;
• Stabilirea concluziilor şi a importanţei cauzelor majore.

Fig. 1.6.5. Forma de reprezentare a diagramei cauzelor şi a efectului

Diagramele pot fi folosite şi pentru a exersa capacitatea de a răspunde la întrebări legate de


anumite probleme aflate în discuţie sau pot fi proiectate pentru interacţiunile cauzale ale unui
eveniment sau fenomen complex.
Avantajele metodei: activizarea tuturor participanţilor antrenaţi în acest joc în care se îmbină
cooperarea din interiorul grupului cu competiţia dintre echipe; o utilizare eficientă a metodei
permite să se ajungă la rădăcina elementelor care au determinat apariţia unui fapt; participanţii sunt
solicitaţi să facă distincţii între cauzele şi simptoamele unui rezultat, ale unei probleme sau ale unui
eveniment.
Un neajuns al acestui demers creativ poate fi acela al modului pretenţios de realizare a
diagramei, fapt ce poate fi suplinit prin exerciţiu.

Exemplu de aplicare a diagramei cauzelor şi a efectului


în clasa a X-a, la studierea ultimului capitol din Structura calculatorului [10] poate fi aplicată această metodă în
felul următor:
• Se împarte clasa în grupuri de lucru;
• Se stabileşte problema pusă în discuţie - care sunt efectele (rezultatele) apariţiei reţelelor de calculatoare.
Formularea efectelor poate fi făcută de către profesor sau - în urma discuţiei cu elevii. Fiecare grup va analiza
câte un rezultat al acestui fenomen. Ca exemplu, ar putea fi analizate următoarele efecte:
1. apariţia poştei electronice;
2. E-learning-ul (învăţământul la distanţă);

29
3. apariţia World Wide Web („pânza de păianjen virtuală”);
4. apariţia bibliotecilor electronice;
5. organizarea conferinţelor „online”;
6. comerţul electronic;
7. publicitatea electronică etc.
• Fiecare grup va trece la construirea diagramei respective: pe axa principală se va scrie unul din efectele de mai
sus, de exemplu, E-leaming-u!; pe ramurile de bază vor fi indicate cauzele majore ale apariţiei învăţământului
la distanţă, prezentând răspunsurile la întrebările Când?, Unde?, Cine?, De ce?, Ce?, Cum s-a întâmplat?. Pe
ramurile mai mici se vor indica cauzele minore pentru fiecare cauză majoră: în cazul dat la ramura Când (a
apărut E-learning-ul)? se pot adăuga ramurile, care vor arăta cauzele apariţiei anume în aceea perioadă. în
mod similar se vor completa cu ramuri mai mici şi celelalte ramuri principale.
• Echipele de lucru vor prezenta diagramele elaborate. Profesorul va organiza analiza lor şi va formula
concluziile.
Notă: deoarece exerciţiul dat necesită informaţii suplimentare, se recomandă ca împărţirea pe grupe şi repartizarea
temelor (efectelor) să fie făcute din timp, astfel elevii vor avea posibilitatea să se documenteze şi vor organiza discuţii
constructive.

Metoda Pălăriilor gânditoare


Această metodă reprezintă o tehnică interactivă, de stimulare a creativităţii elevilor care se
bazează pe interpretarea de roluri în funcţie de pălăria aleasă. Sunt 6 pălării gânditoare fiecare
având una din şase culori: albă, roşie, galbenă, verde, albastră şi neagră. Membrii grupului îşi aleg
pălăriile şi în continuare tot ce vor spune trebuie să fie în acord cu rolul pe care îl joacă. Culoarea
pălăriei este cea care defineşte rolul. Astfel:
Pălăria albă:
• Este neutră;
« Oferă o privire obiectivă asupra informaţiilor;
• Este concentrată pe fapte obiective şi imagini clare;
• Stă sub semnul gândirii obiective;
Pălăria roşie:
• Dă frâu liber imaginaţiei şi sentimentelor;
• Oferă o perspectivă emoţională asupra evenimentelor;
• Roşu poate însemna şi supărare, furie;
• Descătuşează stările afective;
Pălăria neagră:
• Exprimă prudenţa, grija, avertismentul, judecata;
• Oferă o perspectivă întunecoasă, tristă, sumbră asupra situaţiei în discuţie;
• Este perspectiva gândirii negative, pesimiste;
Pălăria galbenă:
• Oferă o perspectivă pozitivă şi constructivă asupra situaţiei;
• Simbolizează lumina soarelui, strălucirea, optimismul;
• Este gândirea optimistă, constructivă pe un fundament logic;
Pălăria verde:
• Exprimă ideile noi, stimulând gândirea creativă;
• Este verdele proaspăt al ierbii, al vegetaţiei, al abundenţei;
• Este simbolul fertilităţii, al producţiei de idei noi, inovatoare;
Pălăria albastră:
• Exprimă controlul procesului de gândire;

30
• E o culoare rece, este culoarea cerului care este deasupra tuturor, atotvăzător şi
atotcunoscător;
• Supraveghează şi dirijează bunul mers al activităţii;
• Este preocuparea de a controla şi de a organiza.

Utilizarea metodei:
Elevii trebuie să cunoască foarte bine semnificaţia fiecărei culori şi să reprezinte pălăria
respectivă gândind din perspectiva ei.
Se împart cele 6 pălării gânditoare elevilor şi se oferă cazul supus discuţiei pentru ca fiecare să-
şi pregătească ideile. Pălăria poate fi purtată individual sau mai mulţi elevi pot răspunde din
perspectiva unei singure pălării gânditoare, în acest caz toţi membrii grupului poartă pălării de o
singură culoare sau o singură pălărie reprezintă tot grupul. Dar într-un caz sau altul elevii trebuie să
ţină cont de funcţia de bază a fiecărei pălării:
Pălăria albastră: clarifică;
Pălăria albă: informează;
Pălăria verde: generează idei noi;
Pălăria galbenă: aduce beneficii;
Pălăria neagră: identifică greşelile;
Pălăria roşie: spune ce simte.
Pălăriile gânditoare pot fi purtate pe rând de participanţi, pe grupuri sau toţi subiecţii antrenaţi în
discuţie pot fi sub aceeaşi pălărie în acelaşi timp. Se pot folosi formule de genul: „ Hai să probăm şi-
pălăria verde. Căutăm idei noi” sau „Să lăsăm pălăria neagră, s-o încercăm pe cea galbenă".
Unei persoane entuziasmate de idee i se propune pălăria neagră, pentru a găsi dificultăţile,
neajunsurile, unor persoane negativiste li se dă ocazia de aşi exprima această calitate sub pălăria
neagră, dar apoi li se propune să renunţe la negativism, probând o altă pălărie, pe cea verde, de
exemplu.
Indicaţii pentru cel ce poartă pălăria respectivă:
Pălăria albă: Foloseşte întrebările:
gândeşte ca o foaie albă care este neutră şi Ce informaţii avem?
poartă informaţii Ce informaţii lipsesc?
Ce informaţii am vrea să avem?
Cum putem obţine informaţiile?
Pălăria roşie: Foloseşte formulări de genul:
exprimă-ţi emoţiile, temerile, intuiţiile, Punându-mi pălăria roşie, uite cum privesc eu
sentimentele; lucrurile...
nu te justifica Sentimentul meu e că...
Nu-mi place felul cum s-a procedat.
Intuiţia îmi spune că...
Pălăria neagră: Foloseşte întrebările:
_iecâ critic; Care sunt erorile?
gândeşte logic, negativ; Ce ne împiedică?
menţionează asupra ceea ce nu poate fi făcut, La ce riscuri ne expunem?
e ncnpiofitabil, riscant sau periculos Ne permite regulamentul?
Pălăria galbenă: Foloseşte întrebările:
gândeşte optimist, logic şi pozitiv; Care sunt obiectivele?
explorează beneficiile şi posibilităţile; Pe ce se bazează aceste idei?
~3ginează-ţi lumina şi strălucirea soarelui Care sunt beneficiile?
Cum vom ajunge aproape de această viziune?

31
Pălăria verde: Foloseşte formulări şi întrebări de tipul:
creează noi opţiuni, variante, resurse, Şansa succesului este dacă...
structuri, metode, idei; Cum poate fi altfel abordată problema?
gândeşte la vegetaţia proaspătă, la abundenţă, Putem face asta şi în alt mod?
dă frâu liber imaginaţiei Găsim şi o altă explicaţie?
Pălăria albastră: Foloseşte întrebările:
controlează procesul gândirii pentru ca Putem să rezumăm punctele de vedere expuse?
aceasta să devină mai productivă; \ Care e următorul pas?
organizează acţiunea; Care sunt ideile principale?
supervizează, sistematizează concluziile, Nu credeţi, că e cazul să nu pierdem timpul şi să
comentează, dirijează şi conduce spre pasul ne concentrăm asupra...?
următor

Avantajele metodei Pălăriilor gânditoare: stimulează creativitatea participanţilor, gândirea


colectivă şi individuală; dezvoltă capacităţile sociale ale participanţilor, de intercomunicare ş:
toleranţa reciprocă, de respect pentru opinia celuilalt; dezvoltă competenţele inteligenţei lingvistice,
inteligenţei logice şi inteligenţei interpersonale; este aplicabilă unei largi categorii de vârste; poale
fi folosită în diferite domenii de activitate şi discipline; încurajează gândirea laterală, construct:\ 1
complexă şi completă; oferă posibilitatea tuturor participanţilor la discuţii de a fi la un moment i z
3& piirte # hssizsade}, ?} de puste e dzseeţ/e eeestreed i f eu efecte (m ediate.
Tehnica Pălăriilor gânditoare este folosită pentru a determina elevii să-şi schimbe perspectiva
de gândire, să ia în consideraţie şi alte puncte de vedere. Unele persoane se simt mai confortabil sub
o anumită pălărie, dar pălăriile colorate nu etichetează pe nimeni, totodată este foarte important ca
fiecare participant să facă efortul de a folosi toate pălăriile.

Exemple de aplicare a tehnicii Pălăriilor gânditoare


1. Această tehnică poate fi aplicată cu succes !a rezolvarea problemelor din domeniul informaticii atât în clasele de
gimnaziu, cât şi în cele de liceu (la studierea limbajului de programare Pascal, a Tehnicilor de programare, la capitolul
Structura calculatorului etc). în acest caz:
Pălăria albastră defineşte problema;
Pălăria albă oferă informaţiile şi materialele disponibile în legătură cu problema
discutată;
Pălăria verde vizează soluţiile posibile;
Pălăria galbenă are în vedere posibilităţile reale de realizare a soluţiilor propuse;
Pălăria neagră evidenţiază slăbiciunile fiecărei soluţii date propuse;
Pălăria albă leagă soluţiile de informaţiile disponibile, răspunzând la întrebări de genul: “Au soluţiile propuse o
bază informaţională?”;
Pălăria roşie stimulează participanţii să răspundă la întrebări de genul: “Iată eu ce cred..., iar voi, ce simţiţi în
legătură cu soluţiile propuse?
Pălăria albastră alege soluţia corectă.
2. Un alt exemplu de utilizare a tehnicii date ar fi în cadrul cercului de informatică care editează o revistă sau un ziar.
La o şedinţă a colectivului de redacţie, după o perioadă de activitate de cel puţin un semestru, se propune discuţia temei
„Cu ce rubrici noi putem îmbogăţi revista (ziarul)?" şi fiecărui membru al echipei i se repartizează „o pălărie”. în
acest caz:
Pălăria verde îşi dă frâu liber imaginaţiei şi propune o sumedenie de variante;
Pălăria albă îi întreabă pe toţi: De ce informaţii dispunem? Ce informaţii am vrea să avem? Cum putem obţine
informaţiile necesare?
Pălăria roşie îşi exprimă temerile referitor la unele idei ale pălăriei verzi, face trimitere la intuiţia sa, vrea să
anticipeze reacţia cititorilor la rubricile propuse;
Pălăria neagră indică părţile slabe ale variantelor propuse (încălcarea regulamentului, riscuri nejustificate etc);
Pălăria galbenă este foarte optimistă, găseşte beneficii şi posibilităţi acolo, unde alţii nu le observă;
Pălăria albastră dirijează discuţia, comentează, clarifică şi sistematizează concluziile.

32
Metoda Furtuna de creiere sau Evaluarea amânată (Brainstorming)
Brainstorming-ul este o metodă de dezvoltare de idei noi ce rezultă din discuţiile purtate între
mai mulţi participanţi. Rezultatul acestor discuţii se soldează cu alegerea celei mai bune soluţii de
rezolvare a situaţiei dezbătute. Această metodă este caracterizată printr-o evaluare amânată, ca
rezultat, participanţii sunt eliberaţi de orice constrângeri, comunică într-o atmosferă neinhibatoare,
îşi dau frâu liber imaginaţiei şi vin cu idei neobişnuite şi originale.
Brainstorming-ul se desfăşoară în cadrul unui grup de maxim 30 de persoane, de preferinţă
omogen din punct de vedere al pregătirii, sub coordonarea unui moderator, care îndeplineşte rolul
de animator şi mediator. Durata optimă este de 20-45 de minute.
Regulile de desfăşurare ale brainstorming-ului:
S expunerea clară şi concisă de către moderator a problemei puse în discuţie şi a necesităţii
soluţionării ei;
S selecţionarea unui grup eterogen de participanţi;
S asigurarea unui loc corespunzător - fără zgomot, spaţios, luminos, pentru a crea o atmosferă
propice elaborării ideilor;
v' admiterea şi chiar încurajarea formulării de idei neobişnuite şi îndrăzneţe;
S la prima etapă accentul e pus pe cantitate, pe formularea de cât mai multe variante de idei şi
cât mai diverse;
S neadmiterea evaluării, aprecierii, criticii din partea participanţilor sau moderatorului, asupra
ideilor enunţate, oricât de neaşteptate ar fi ele, pentru a nu inhiba spontaneitatea şi a evita un
blocaj intelectual;
S construcţie de „idei pe idei”, un răspuns poate provoca asociaţii şi combinaţii pentru
emiterea unui nou demers cognitiv-inovativ;
S înregistrarea discretă, exactă şi completă a discuţiilor de către o persoană desemnată special
să îndeplinească acest rol, fără a stânjeni participanţii sau derularea discuţiei;
S evaluarea este amânată şi se realizează mai târziu cu sau fără ajutorul participanţilor;
S o perioadă de „incubaţie”, după care participanţii se pot reîntâlni într-o nouă sesiune, pentru
a valorifica idei noi.
Sesiunea de brainstorming poate fi divizată în următoarele etape:
• Etapa de pregătire - investigarea, selecţia membrilor grupului, antrenamentul creativ,
pregătirea şedinţelor de lucru;
• Etapa productivă (emiterea de alternative creative) - stabilirea temei de lucru, a problemelor
de dezbătut, soluţionarea subproblemelor formulate, elaborarea ideilor suplimentare,
necesare continuării demersului creativ;
• Etapa selecţiei ideilor emise, care favorizează gândirea critică - analiza listei de idei
elaborate până în acel moment, evaluarea critică şi optarea pentru soluţia finală.
Avantajele metodei brainstorming: obţinerea rapidă şi relativ uşoară a ideilor noi şi a soluţiilor
de rezolvare; aplicabilitate largă, în diverse domenii; dezvoltă abilitatea de a lucra în echipă;
stimulează participarea activă şi contagiunea ideilor; dezvoltă creativitatea, spontaneitatea,
încrederea în sine datorită evaluării amânate.
Brainstorming-ul are următoarele limite: nu suplineşte cercetarea de durată, clasică; depinde de
calităţile moderatorului de a anima şi dirija discuţia pe făgaşul dorit; uneori poate fi prea obositor
sau solicitant pentru unii participanţi.

33
Exemple de aplicare a metodei Brainstorming
1. Această metodă poate fi aplicată cu greu în cadrul unei lecţii tradiţionale, chiar şi în cazul unei clase omogene.
Un brainstorming poate fi desfăşurat cu succes la o lecţie-dispută, având, ca exemplu, tema „Omul şi
calculatorul - soluţii pentru viitor în vederea utilizării calculatorului doar spre binele omului”.
2. Un alt exemplu de aplicare al metodei ar fi în cadrul şedinţelor cercului de informatică (programare). Elevilor
li se propune enunţul unei probleme cu un grad mai ridicat de dificultate, care poate fi divizată în mai multe
subprobleme şi care admite mai multe variante de rezolvare. Participanţii la activitate divizează algoritmul în
subalgoritmi, vin cu idei cât mai originale de rezolvare. Profesorul coordonează discuţia, stimulează elevii să
aprecieze variantele lor de soluţionare şi cele a colegilor, să unească cei mai reuşiţi subalgoritmi într-un
algoritm de rezolvare a problemei, lăsând pentru lucru individual elaborarea programului. Profesorul poate la
ultima etapă să modifice condiţiile, impunând unele restricţii sau adăugând unele puncte de rezolvat.
3. Profesorul le poate propune elevilor programul unei probleme rezolvate deja, pentru ca ei să cerceteze
rezultatele executării programului şi mai apoi să formuleze exact cerinţele problemei, după care se purcede la
etapele discuţiei, ca în exemplul precedent.

Metoda Explozia stelară (Starbursting)


Explozia stelară este o metodă de dezvoltare a creativităţii, similară brainstorming-uluv, se
începe din centrul conceptului şi se împrăştie în afară, cu întrebări, asemenea exploziei stelare. Se
scrie ideea sau problema pe o foaie de hârtie şi se formulează cât mai multe întrebări care au
legătură cu ea. Se începe cu cele de tipul: Ce? Cine? Unde? Când? De ce? întrebările iniţiale pot
genera altele, neaşteptate, care cer şi o mai mare concentrare.
Starbursting-ul stimulează creativitatea individuală şi de grup, facilitează participarea întregului
colectiv, stimulează crearea de întrebări la întrebări, aşa cum brainstorming-ul dezvoltă
construcţia de idei pe idei.

Etapele metodei:
• Propunerea unei probleme.
• Organizarea colectivului în grupe preferenţiale.
• Grupurile lucrează la elaborarea unei liste cu cât mai multe întrebări.
• Comunicarea rezultatelor lucrului în grup.
• Evidenţierea celor mai interesante întrebări şi aprecierea muncii în echipă.
Opţional se pot elabora şi răspunsuri la unele întrebări. Pentru participanţi această metodă este
o modalitate de relaxare, dar şi o sursă de noi descoperiri.

34
Tehnica 6/3/5
Tehnica 6/3/5 este o altă tehnică asemănătoare brainstorming-ului. Ideile noi însă se scriu pe foi
care circulă între participanţi şi de aceea se mai numeşte şi metoda brainwriting. Tehnica se
numeşte 6/3/5 pentru că există: 6 membri în grupul de lucru, care notează pe o foaie de hârtie câte
3 soluţii fiecare, la o problemă dată, timp de 5 minute (însumând 108 răspunsuri, în 30 de minute,
în fiecare grup).
Etapele metodei 6/3/5:
• împărţirea clasei în grupe a câte 6 membri fiecare;
• Formularea problemei şi explicarea modalităţii de lucru - fiecare elev primeşte câte o foaie
împărţită în 3 coloane;
• Desfăşurarea activităţii în grup - îmbinarea activităţii individuale cu cea de grup. Pentru
problema dată, fiecare dintre cei 6 participanţi notează pe o foaie 3 soluţii în tabelul cu 3
coloane, într-un timp maxim de 5 minute. Foile se transmit apoi de la stânga la dreapta până
ajung la posesorul iniţial. Cel care a primit foaia colegului din stânga citeşte soluţiile deja
notate şi încearcă să le modifice în sens creativ, îmbunătăţindu-le continuu;
• Analiza soluţiilor şi reţinerea celor mai bune - se centralizează datele obţinute, se discută şi
se apreciază rezultatele.
Avantajele utilizării tehnicii 6/3/5: oferă elevilor mai puţin comunicativi posibilitatea de a se
exprima; stimulează construcţia de „idei pe idei”; încurajează solidaritatea în grup şi competiţia
intre grupuri, îmbinând munca individuală cu cea de echipă; dezvoltă gândirea cu operaţiile ei:
analiza ideilor emise de colegi, comparaţia, sinteza, generalizarea şi abstractizarea; dezvoltă
imaginaţia, creativitatea, calităţile atenţiei.
Dezavantajele metodei: limita de timp; posibilitate contagiunii negative între răspunsuri, când
elevii pot fi influenţaţi de soluţiile anterioare, intrând într-un blocaj creativ.

Metoda Philips 6/6


Această metodă este similară brainstorming-ului şi tehnicii 6/3/5, dar se caracterizează prin 6
participanţi şi 6 minute pentru elaborarea soluţiilor.
Etapele metodei:
• Constituirea grupurilor de câte 6 (4 membri, 1 secretar, 1 conducător de grup) - secretarul
are şi funcţia de a nota ideile colegilor săi, iar conducătorul de grup dirijează dezbaterea în
cadrul
A grupului şi prezintă concluziile;
• lum ânarea problernei/temei ce urmează a fi dezbătută şi motivarea importanţei acesteia;
• Desfăşurarea discuţiilor pe baza temei, în cadrul fiecărui grup timp de 6 minute;
• Colectarea soluţiilor elaborate - conducătorii grupurilor expun ideile la care au ajuns sau
le predau în scris profesorului;
• Discuţia colectivă urmată de decizia colectivă cu privire la soluţia finală, pe baza
ierarhizării variantelor pe tablă;
• încheierea discuţiei - profesorul prezintă concluziile privind desfăşurarea activităţii şi a
eficienţei demersurilor întreprinse.
Metoda 6/6 are avantaje similare brainstorming-ului şi metodei 6/3/5, dar nu este acceptabilă
scj- ci
când numărul elevilor nu este multiplu de 6.

35
Exemplu de aplicare a metodei Philips 6/6

Clasa: a X-a
Obiectul de studiu: Limbajul de programare Pascal
Tipul lecţiei: Lecţie de formare a priceperilor şi deprinderilor
Tema lecţiei: Aplicarea tipului de date S t r i n g la rezolvarea problemelor

Etapele lecţiei:
I etapă. Această lecţie ar putea începe cu reactualizarea cunoştinţelor însuşite anterior, elevii fiind stimulaţi să-şi
amintească funcţiile şi procedurile tipului de date Şir de caractere;
Etapa a Il-a. După prima etapă se poate trece la rezolvarea problemelor-model şi rezolvarea problemelor cu condiţii
schimbate - primele fiind rezolvate şi discutate împreună cu profesorul la tablă, iar cele din urmă - în mod individual
sau în perechi la calculatoare;
Etapa a IlI-a. La această etapă poate fi utilizată metoda Philips 6/6:
• elevii sunt grupaţi câte 6, fiecare grup îşi alege „secretarul” şi „conducătorul”;
• profesorul le împarte câte o foaie şi le explică sarcina: fiecare echipă trebuie să alcătuiască timp de 6 minute 2
probleme la rezolvarea cărora ar fi nevoie de utilizat cât mai multe (ideal - toate) funcţii şi proceduri ale tipului
String-,
• elevii lucrează în grup, secretarul notează problemele elaborate, conducătorul dirijează discuţia şi urmăreşte să
fie propuse pentru utilizare toate funcţiile şi procedurile;
• după 6 minute profesorul strânge foile;
• dacă această metodă se utilizează spre sfârşitul lecţiei (aşa ca în exemplul dat), atunci analiza lucrului poate fi
făcută la lecţia următoare; dacă timp este destul, se trece la discuţia colectivă a problemelor propuse, se aleg
cele mai interesante probleme şi se rezolvă la calculator;
• profesorul analizează desfăşurarea activităţii şi notează elevii.

Sinectica
Sinectica mai este numită şi Metoda analogiilor sau Metoda asociaţiilor de idei. Această
metodă stimulează creativitatea participanţilor pentru formularea de idei şi ipoteze, folosind
raţionamentul prin analogie, incită la dezvoltarea de idei inedite şi originale şi la asociaţii de idei,
mizând pe remarcabila capacitate a minţii umane de a face legături dintre elemente aparent
irelevante.
în cadrul secvenţelor didactice bazate pe Sinectică, profesorul încurajează elevii să privească
problemele şi soluţiile în moduri neuzuale, utilizând digresiunea şi acţionează conform următorilor
paşi:
v/ enunţarea problemei de către profesor sau un elev;
S familiarizarea elevilor cu elementele cunoscute ale problemei;
S detaşarea temporară a elevilor de elementele problemei;
S căutarea deliberată a irelevanţei aparente, fapt care poate genera conexiuni surprinzătoare;
S potrivirea forţată a materialului irelevant descoperit cu problema discutată;
S inventarierea căilor posibile de relaţionare dintre ideile aparent irelevante şi elementele date
ale problemei, prin producerea de idei noi.

Etapele Sinecticii:
• Constituirea grupului sinectic - echipa este alcătuită din 5-8 persoane, dintre care unul are
rol de lider şi unul de secretar. Participanţii trebuie să cunoască domeniul din care face parte
problema, să aibă aptitudini de a lucra în echipă, toleranţă faţă de ideile emise de ceilalţi

36
colegi de grup. Totodată se aleg persoane cu capacităţi imaginative dezvoltate,
nonconformiste şi dezinvolte;
• Prezentarea problemei - ea poate fi expusă de către profesor sau poate fi aleasă dintre cele
expuse de către elevi. Problema este analizată prin fragmentarea ei în unităţi de bază,
expunându-se elementele cunoscute în formă operaţională;
• Itinerarul sinectic - presupune distanţarea intenţionată de esenţa problemei prin înlăturarea
ideilor preconcepute care pot influenţa procesul de creaţie;
• Elaborarea modelului de soluţionare a problemei - prin analogii fanteziste se propun
soluţii care se îndepărtează de realitatea posibilă; elevii emit diverse propuneri de
soluţionare a problemei, care, mai apoi vor trebui transformate în termeni conformi cu
realitatea.
• Experimentarea şi aplicarea modelului.
Evaluarea va avea în vedere următorii indicatori: ideile emise în etapa itinerarului sinectic,
ierarhizarea soluţiilor propuse, experimentarea şi aplicarea modelului rezolutiv. Postulatele pe care
se bazează Sinectica se referă la faptul că în procesul inovării, creatorii parcurg mai multe faze, stări
critice, cu funcţii şi contribuţii diferite în generarea şi concretizarea noului. De asemeni, în
procesele creative, aspectele emoţionale şi iraţionale sunt frecvent mai importante decât cele
intelectuale şi raţionale. Derularea Sinecticii simulează etapele unui proces creator spontan.

Exemplu de aplicare a metodei Sinectica


Această metodă poate fi aplicată cu succes la temele, unde elevii pot da frâu liber imaginaţiei, emoţiilor. Ca
exemplu, în clasa a Vil-a, la studierea temei Structura şi funcţionarea calculatorului, elevilor li se poate propune
reprezentarea schemei funcţionale a calculatorului cu ajutorul aplicaţiilor Paint sau W ord, reieşind din faptul, că
mejoritatea elevilor au deprinderile de lucru cu aceste aplicaţii sau anticipând temele şi explicându-le în prealabil cum
por utiliza instrumentele necesare. Dar aici se poate aplica şi metoda Sinectica în felul următor: elevii se impast iu
echipe a câte 3-4 elevi şi li se explică sarcina: să reprezinte în Paint structura calculatorului astfel, ca fiecare unitate să
5e înlocuită cu un omuleţ, iar aspectul lui să exprime funcţia pe care o realizează dispozitivul respectiv. Această sarcină
presupune ca în fiecare grup să fie cel puţin un elev cu aptitudini de lucru în redactorul grafic. O altă variantă, ar fi
pregătirea de către fiecare echipă a unui mini-spectacol, care ar demonstra funcţionarea calculatorului. în acest caz,
fiecare grup trebuie să fie alcătuit din cel puţin 5 persoane (câte una pentru fiecare unitate).

Portofoliul de grup
Portofoliul de grup este un instrument complementar folosit de profesor în aplicarea strategiilor
de instruire centrate pe lucrul în echipă, pe elaborarea de proiecte ample de cercetare şi învăţare şi
presupune activităţi individuale şi de grup. Tot odată, portofoliului de grup este o metodă alternativă
ie evaluare. Portofoliul poate fi de următoarele tipuri:
• Portofoliu de prezentare sau introductiv (cuprinde o selecţie a celor mai importante
lucrări);
• Portofoliu de progres sau de lucru (conţine toate elementele desfăşurate pe parcursul unui
interval de timp);
• Portofoliu de evaluare (cuprinde obiective, strategii, instrumente de evaluare, tabele de
rezultate, etc.)
în cazul portofoliului de grup se stabileşte echipa de lucru - un grup de bază, o asociere
eterogenă, mai des de lungă durată, cu membri stabili. Această echipă poate funcţiona pentru o
materie, un semestru, un an sau câţiva ani. Activitatea în grup va asigura sprijinul, ajutorul,
încurajarea, necesare fiecărui membru pentru a putea progresa ştiinţific şi a se dezvolta continuu.

37
Portofoliul de grup este o colecţie organizată de lucrări/mostre din activitatea grupului,
acumulate în timp, precum şi mostre din lucrările individuale ale membrilor grupului. Structura
unui portofoliu de grup poate fi următoarea:
S Coperta, care reflectă în mod creativ personalitatea grupului.
S Cuprinsul.
S Prezentarea grupului şi a membrilor săi.
■f Introducerea şi argumentaţia privind mostrele alese.
S Mostre care au necesitat cooperarea între membrii grupului pentru a fi realizate.
S Observaţii ale membrilor grupului privind modul lor de interacţiune în timpul activităţii în
comun.
S Autoevaluări ale membrilor grupului şi evaluarea grupului de către aceştia.
S Mostre individuale revizuite pe baza feedback-ului primit de la grup.
S Autoevaluări ale membrilor grupului cu privire la calităţile şi punctele slabe ale interacţiunii
din interiorul grupului.
S Lista obiectivelor de învăţare şi deprinderi sociale pe care şi le propun membrii grupului
pentru viitor.
■S Comentarii şi feedback-ul din partea profesorilor, metodiştilor şi a altor grupuri de studiu.
Evaluarea portofoliului se face multicriterial. De exemplu, criteriul conformităţii la teoria
predată poate fi completat cu cel al inovativităţii şi originalităţii. Fiecare produs cuprins în
portofoliu poate fi evaluat din punct de vedere cantitativ (numărul de pagini, de exemplu), dar mai
ales calitativ: creativitatea produsului individual sau colectiv, elementele noi, punctele forte, etc. De
asemenea evaluarea portofoliului va fi supusă evaluării efectelor pe care acest gen de evaluare l-a
avut asupra dezvoltării personalităţii, a capacităţii de autoevaluare şi a competenţelor de
intercomunicare.
Profesorul poate folosi portofoliul pentru a evalua performanţele elevilor, iar elevii îl pot folosi
pentru autoevaluare şi ca modalitate de reflecţie asupra învăţării. Dar scopul portofoliului de grup
nu este neapărat cel al evaluării ci mai ales cel de stimulare a învăţării, prin directa implicare a
participanţilor la activitatea de cercetare în echipă.
Avantajele folosirii portofoliului în grup: portofoliul este un instrument flexibil, uşor adaptabil
la specificul disciplinei, condiţiilor concrete ale activităţilor individuale şi în echipă; permite
aprecierea şi includerea în actul evaluării a unor produse ale activităţii elevilor care, în mod
obişnuit, nu sunt avute în vedere; acest fapt încurajează elevii la angajarea în activităţi de învăţare
mai complexe şi mai creative, care duc la diversificarea cunoştinţelor, deprinderilor şi abilităţilor
exersate; evaluarea portofoliului este eliberată în mare parte de tensiunile şi tonusul afectiv negativ
care însoţesc formele tradiţionale de evaluare; dezvoltă capacităţile elevilor de autoevaluare şi
evaluare reciprocă, aceştia devenind auto-reflexivi asupra propriei munci şi asupra progreselor
înregistrate individual sau în grup; implică mai activ elevii în realizarea unor materiale care să-i
reprezinte cel mai bine.
Dezavantajul portofoliului ca metodă alternativă de evaluare este acela, că nu poate fi repede
şi uşor de evaluat: este greu de apreciat conform unui barem strict deoarece reflectă, în primul rând,
creativitatea şi originalitatea elevilor.
Exemple de aplicare a portofoliilor de grup
1. In clasa a Xl-a, profilul real, la tema „Tehnici de programare”, se împart elevii în grupuri de lucru şi fiecărui
grup i se repartizează tema de cercetare - o tehnică de elaborare a algoritmilor. Profesorul şi elevii cad de acord asupra
produselor pe care trebuie să le conţină portofoliul şi asupra formei de organizare a portofoliului.
Portofoliul de grup va conţine elementele enumerate în structura prezentată în acest capitol. în special, pentru
fiecare tehnică de programare vor fi prezentate toate materialele obligatorii şi opţionale elaborate şi selectate de către
elevi la tema dată: descrierea metodei, avantajele şi dezavantajele metodei, clasa de probleme la care poate fi aplicată,
probleme rezolvate prin metoda analizată (din manual, propuse de profesor spre rezolvare, propuse de grupul de lucru,
probleme de concurs), estimarea complexităţii algoritmilor elaboraţi etc. Portofoliul va conţine rezolvări de probleme
efectuate în mod individual, dar şi rezolvări, la care şi-au adus contribuţia toţi membrii grupului.

38
Forma portofoliului poate fi o mapă cu documente, dar trebuie să fie însoţită şi de varianta electronică a unor
produse.
2. Un alt capitol al informaticii la care ar fi utilă aplicarea metodei ar fi studierea SGBD Access. în acest caz
grupurile vor fi alcătuite din câte 2-3 elevi. Fiecare grup va elabora o bază de date proprie şi va completa portofoliul pe
parcursul semestrului respectiv cu noi produse: interogări de diferite tipuri, formulare şi rapoarte pentru baza de date
elaborată. Şi în acest caz portofoliul va avea două forme: pe hârtie şi electronică.
3. Un portofoliu poate conţine materiale ilustrative, pentru a crea imaginea unui grup de elevi, a unei clase sau
chiar a instituţiei şcolare. La activităţile extraclasă (cercuri de informatică sau ore facultative), în cadrul cărora se
studiază aprofundat programele aplicative, pot fi elaborate portofolii de acest tip, care vor conţine documente, imagini,
diagrame, desene şi alte materiale ilustrative prelucrate la calculator, ce oglindesc activitatea grupului de elevi sau
prezintă imaginea şcolii în care ei învaţă.

Utilizarea metodelor şi tehnicilor interactive de grup examinate mai sus oferă pedagogilor
avantajul de a proiecta strategii didactice eficiente, coerente cu obiectivele educaţionale fixate.
Spectrul metodelor modeme de învăţământ aplicate în predarea informaticii poate fi lărgit, dar se va
ţine cont de faptul, că eficienţa lecţiei depinde, în mare măsură, de concordanţa dintre obiectivul
propus şi metoda aleasă.

1.7. Metode şi tehnici de evaluare


Evaluarea evidenţiază eficienţa învăţământului prin prisma raportului dintre obiectivele stabilite
şi rezultatele obţinute de elevi în procesul învăţării. O novaţie a ultimelor decenii - prezenţa
conceptului de evaluare în prim-plan al teoriei didactico-pedagogice - developează o problemă
pedagogică din cele mai complicate. Procesul evaluării de pe poziţiile curriculumului şcolar
presupune, în primul rând, evaluarea randamentului şcolar.
Informatica ca obiect de studiu prin conţinutul ei şi formele de organizare a procesului de
instruire permite aplicarea celor mai avansate forme, metode şi tehnici de evaluare.
Metodele tradiţionale de evaluare nu reprezintă ceva vechi, depăşit. în funcţie de obiectivele
educaţionale auriculare se folosesc metodele de evaluare concepute să realizeze un echilibru dintre
probele orale, scrise şi cele practice. Folosirea echilibrată a strategiilor de evaluare impune
diversificarea tehnicilor şi instrumentelor de evaluare: de la probele orale, scrise şi practice la
metodele alternative - observarea sistematică a elevului în timpul rezolvării sarcinii, investigaţia,
proiectul, portofoliul, autoevaluarea.
Metodele tradiţionale de evaluare (se apreciază în special ceea ce ştiu elevii, adică cunoştinţele)
sunt:
a) probe scrise (testare, rezolvări de probleme);
b) probe orale (discuţii, victorine);
c) examen;
d) colocviu.
Acestea au fost, sunt şi vor rămâne pentru mult timp metodele de evaluare cele mai utilizate.
Există totuşi o serie de obiective educaţionale ce contribuie decisiv la dezvoltarea personalităţii
elevului şi care nu pot fi măsurate prin utilizarea metodelor clasice. Metode alternative de evaluare
apreciază, mai ales, ceea ce pot să facă elevii, adică priceperile, deprinderile, abilităţile, dar şi, din
domeniul afectiv, atitudinile, care sunt mai greu cuantificabile prin metodele clasice de evaluare.
Observaţia sistematică a comportamentului elevilor - este o tehnică de evaluare care
furnizează o serie de informaţii utile, greu de obţinut pe alte căi. Pentru a înregistra aceste
informaţii, profesorul are la dispoziţie trei modalităţi:
1. Fişa de evaluare (calitativă). în fişa de evaluare sunt înregistrate date factice despre
evenimentele cele mai importante ale lecţiei, observate de profesor.

39
2. Scara de clasificare. Comportamentele elevilor sunt clasificate într-un număr de categorii,
utilizându-se de obicei scara Likert, care indică profesorului gradul, în care o anumită
caracteristică este prezentată sau frecvenţa, cu care acest comportament apare. De
exemplu: în ce măsură elevul a participat la discuţii?

□ niciodată □ rar □ ocazional □ frecvent □ întotdeauna

Scările de clasificare pot fi numerice, grafice şi descriptive.


3. Lista de control/verificare. Lista de control/verificare reprezintă o metodă de evaluare prin
care profesorul înregistrează doar faptul, că o caracteristică sau o acţiune este prezentată
sau absentă. De exemplu, atitudinea faţă de sarcină de lucru. Elevul:
a) a urmat instrucţiunile Da Nu
b) a cerut ajutor atunci când a avut nevoie Da Nu
c) a cooperat cu ceilalţi Da Nu

Investigaţia reprezintă o activitate, care durează nu mai mult decât o oră de curs şi care poate fi
descrisă în modul după cum urmează: elevul primeşte o sarcină în formă de instrucţiuni scrise, care
în continuare trebuie să fie înţelese de către elevi şi apoi îndeplinite. în timpul acestei activităţi
elevul demonstrează o gamă largă de cunoştinţe şi de capacităţi. Investigaţia reprezintă o
posibilitate pentru elev de a aplica în mod creativ cunoştinţele sale şi de a explora situaţii noi sau
foarte puţin asemănătoare în raport cu experienţa anterioară.
De asemenea, prin investigaţie profesorul poate urmări procesul, realizarea unui produs sau/şi
atitudinea elevului. în cadrul unei investigaţii obiectivele de evaluare pot fi următoarele: definirea
şi propunerea soluţiilor pentru rezolvarea unei probleme; identificarea procedeelor de obţinere a
informaţiilor; colectarea şi organizarea datelor; examinarea metodei noi de rezolvare a unui tip de
probleme.
Se recomandă ca notarea investigaţiilor să fie făcută în mod holistic, dar separat pentru fiecare
din următoarele domenii importante: strategia de rezolvare, aplicarea cunoştinţelor, principiilor,
regulilor, acurateţea înregistrării şi prelucrării datelor, claritatea argumentării şi forma prezentării.
Proiectul reprezintă o activitate mult mai amplă decât investigaţia. Deoarece lucrul cu
proiectele este foarte avantajos, în lucrarea dată această metodă în capitolele precedente este
examinată din diferite puncte de vedere, dar mai jos este propusă analiza mai profundă a acestei
activităţi cu privire la procesul de evaluare.
Sarcina principală a cursului şcolar de Informatică este determinată de necesitatea instruirii
elevilor de a rezolva probleme din diferite domenii de cunoştinţe. Dar în acest caz apare un rând de
întrebări, anume:
a) cu privire la suficienţa pregătirii generale a elevilor;
b) nivelul scăzut de motivare a învăţării de către elevi;
c) baza materială slabă a instruirii;
d) discordanţa dintre programele existente de învăţământ şi numărul de ore pentru însuşirea lor.
Soluţia a fost găsită în introducerea în procesul instructiv a metodei proiectelor. Proiectul
începe în clasă prin definirea şi înţelegerea sarcinii (eventual şi prin începerea rezolvării acesteia),
continuă acasă pe parcursul a câtorva zile sau a săptămânii - timp în care elevul permanent
primeşte consultaţii de la profesor - şi se încheie tot în clasă prin prezentarea în faţa colegilor a unui
raport asupra rezultatelor obţinute şi, dacă este cazul, a produsului realizat.
în situaţii noi şi variate pe parcursul unei ore sau a mai multor ore de curs se urmăreşte
formarea unor tehnici de lucru în grup şi de cel individual, precum şi atitudinea elevilor, care sunt
implicaţi în rezolvarea problemei.

40
Folosind această metodă profesorul apreciază utilizarea de către elevi a unor metode de
investigaţie ştiinţifică (căutarea şi utilizarea bibliografiei, a dicţionarului), găsirea unor soluţii de
rezolvare originală, organizarea şi sintetizarea materialului, generalizarea problemei, extinderea
experienţei, prezentarea concluziilor.
De unde profesorul poate să ia orele necesare pentru instruirea elevilor? Aici pot fi găsite două
surse - intensificarea procesului instructiv şi petrecerea evaluării, în acelaşi rând şi celei finale
(sumative), în formă de proiect.
Proiectele pot fi scurte (pentru o lecţie) şi continue (de exemplu, pentru un semestru). Trebuie
de subliniat, că majoritatea proiectelor se îndeplineşte nemijlocit pe parcursul unei lecţii. Excepţia
poate fi făcută numai pentru elevii care manifestă un interes extraordinar faţă de domeniul de
programare şi pentru proiecte telecomunicative, care nu pot fi făcute din cauze tehnice pe parcursul
lecţiei.
De exemplu, pe parcursul studierii tehnologiilor informaţionale de către elevii din cursul
superior poate fi elaborat un proiect interesant „Ancheta”, unde elevii alcătuind o anchetă şi făcând
o cercetare sociologică la o temă social semnificativă, prelucrează materialele cu ajutorul aplicaţiei
MS Excel. Elevii pot să manifeste un interes viu şi pentru proiectul „Ziarul nostru de clasă” făcut în
Word.
Astfel constatăm, că folosirea metodei de proiect la lecţiile de Informatică permite să fie
rezolvată majoritatea problemelor care apar în faţa profesorului şi-i aduce pe elevi să înţeleagă
caracterul fundamental al cursului studiat.
Portofoliul elevului reprezintă un instrument de evaluare complex, care include rezultatele
relevante obţinute prin celelalte metode şi tehnici de evaluare. Aceste rezultate privesc probele
orale, scrise şi practice, observarea sistemei comportamentelor şcolare, proiectul, autoevaluarea,
precum şi sarcini specifice fiecărei discipline. Portofoliul reprezintă „cartea de vizită” a elevului,
urmărindu-i progresul de la un semestru la altul, de la un an şcolar la altul sau chiar de la un ciclu
de învăţământ la altul.
Exemplu: portofoliul elevului la Informatică ar putea cuprinde pe lângă cele menţionate mai
sus, şi următoarele elemente: referate, teze anuale, programele elaborate de sinestătător de către
elevi, scurte eseuri. Structura sau elementele componente ale portofoliului sunt, în mare măsură,
definite de către profesor. Elevul are libertate să pună în propriul portofoliu materialele pe care le
consideră necesare şi care îl reprezintă pe el cât mai bine. Elementele constitutive ale portofoliului
au fost evaluate separat, de către profesor la momentul respectiv. Dacă este dorită şi aprecierea
globală a portofoliului, atunci profesorul stabileşte criteriile clare şi holistice de evaluare, care vor
fi comunicate elevilor la începutul proiectării portofoliului.
Autoevaluarea se organizează pentru a fi resimţită de elev ca având efect formativ,
raportându-se la diferite capacităţi ale lui în funcţie de progresul realizat şi de dificultăţile, pe care
le are de depăşit. Elevii au nevoie să se cunoască pe sine, fapt care are multiple implicaţii în plan
motivaţional, să-şi dezvolte un program propriu de învăţare, să-şi autoevalueze şi valorifice
propriile atitudini. Aceasta le va da încredere în sine şi va motiva îmbunătăţirea performanţelor
şcolare. Profesorul va ajuta elevii să-şi dezvolte capacităţile autoevaluative, să-şi compare nivelul la
care au ajuns în raport cu obiectivele şi standardele educaţionale şi să-şi impună un program
propriu de învăţare.
Un loc aparte îl ocupă autoevaluarea comportamentelor din domeniul afectiv. Acest lucru se
realizează prin chestionări în care elevilor li se cere să dea răspunsuri deschise la întrebări - şi prin
scările de clasificare.

41
Exemple:
I. Chestionar
Prin rezolvarea acestei sarcini am învăţat:
a) ____________________________________
b) ____________________________________
c) _____________________________
d) _____________________________
în realizarea acestei sarcini am întâmpinat următoarele dificultăţi:
a) _____________ c) ______________
b) _____________ d) ______________

Cred că activitatea mea poate fi apreciată ca {notă, calificativ).

II. Scara de clasificare

Fişa de autoevaluare Slab Mediu Bun Foarte bun Excelent


Creativitatea
Motivaţia
Independenţa şi iniţiativa
Curiozitatea intelectuală
Performantele şcolare
Participarea la discuţiile din clasă
Disciplina în timpul lucrului
Progresul realizat
Comportamentul general în clasă

Hărţile conceptuale („conceptual maps”) sau hărţile cognitive („cognitive maps”) pot fi
definite drept oglinzi ale modului de gândire, simţire şi înţelegere ale celui/celor care le elaborează.
Hărţile conceptuale se prezintă ca o tehnică de reprezentare vizuală a structurii informaţionale
ce descrie modul în care conceptele dintr-un domeniu interrelaţionează. Dezvoltarea acestor
practici se bazează pe teoria conform căreia învăţarea temeinică a noilor concepte depinde de
conceptele deja existente în mintea elevului şi de relaţiile care se stabilesc între acestea. Mai exact,
noua învăţare capătă sens atunci când găseşte idei de bază pe care să se construiască noile
acumulări în mintea celui ce învaţă. Hărţile conceptuale acordă o importanţă majoră creării de
legături între concepte în procesul învăţării.
Esenţa cunoaşterii constă în modul cum se structurează cunoştinţele. Cu alte cuvinte, important
este nu cât cunoşti, ci relaţiile care se stabilesc între cunoştinţele asimilate. Performanţa depinde de
modul în care individul îşi organizează experienţa, ideile, de structurile integrate şi de
aplicabilitatea acestora. Un potenţial instrument de captare a aspectelor importante ale acestor
interrelaţii conceptuale îl constituie hărţile conceptuale.
Modul de realizare a hărţii conceptuale poate să fie unul strict-dirijat sau lăsat la alegerea
elevului. Astfel profesorul poate să impună ce concepte să fie folosite, care sunt trimiterile
(legăturile) sau cum relaţionează acestea între ele; sarcina elevului poate fi una fie de completare a
spaţiilor eliptice din structura hărţii (fie nodurile, fie trimiterile). în extrema opusă strictei dirijări,
elevul poate fi lăsat să-şi aleagă singur atât conceptele cât şi să stabilească singur relaţiile dintre
acestea. Cererile cognitive în cazul unei libere alegeri sunt mai mari faţă de cazul strictei dirijări.
Logica hărţii conceptuale constă în definirea a trei termeni cheie: conceptul, afirmaţia,
învăţarea. Afirmaţiile fac legăturile între concepte; ele trebuie să fie concise şi complete în acelaşi
timp şi accesibile; învăţarea presupune conduita de construire activă a noilor afirmaţii.
Deşi a fost recunoscută ca o potenţială metodă de evaluare a structurii cognitive a elevului,
hărţile conceptuale sunt mai des folosite ca instrumente de instruire decât ca procedeu de estimare.
Dacă hărţile conceptuale sunt folosite ca instrumente de măsurare a structurii şi organizării

42
cunoştinţelor elevilor, este nevoie de timp şi de efort pentru a evidenţia impactul diferitelor tehnici
de aplicare (strict dirijată sau nedirijată) asupra conexiunilor pe care le au elevii.
Fiecare din tehnicile prezentate mai sus are avantajele şi dezavantajele sale. Practica de lucru
demonstrează că în cadrul lecţiilor de Informatică una din cele mai avantajoase tehnici de evaluare
este cea a testelor docimologice.
Ne vom referi doar la câteva dintre avantajele acestei tehnici, stabilite în practica ultimilor ani
de activitate pedagogică:
1. Intr-un timp relativ scurt un profesor poate evalua pe toţi elevii clasei, ceea ce permite
monitorizarea situaţiei reale, diagnosticarea lacunelor în predare şi prognosticarea căilor de
îmbunătăţire a procesului de predare-învăţare.
2. Itemii utilizaţi (mai ales în tehnica răspunsului scurt) sunt uşor de construit, iar răspunsurile
nu sunt selecţionate dintr-o listă alternativă, ci trebuie să corespundă rezultatului de
învăţare urmărit de profesor.
3. In cadrul tehnicii alegerii duale (a itemilor de tip pereche) se abordează, într-un interval de
timp redus, un volum mare de rezultate ale învăţării de complexitate redusă sau medie.
4. Tehnica alegerii multiple asigură omogenitatea internă a fiecărui element de test, datorită
discriminării complexe, aplicând cunoştinţe sau capacităţi în funcţie de diversele
caracteristici situaţionale.
5. Elevii pot cuprinde o gamă mai largă din materialul - conţinut studiat.
6. Itemii de tip „rezolvare de probleme" permit întru totul evaluarea spiritului creativ al
fiecărui copil.
7. Conţinutul unic al testelor încurajează iniţiativa, munca individuală, iar în unele cazuri şi
activitatea în echipă.
în continuare descriem sistema clasificării testelor:
Testele diferă unele de altele după mai multe caracteristici şi pot fi divizate după scopurile lor
în modul următor:
1. Testele de cunoştinţe măsoară un anumit conţinut deja parcurs, vizând cunoştinţe, priceperi,
deprinderi şi abilităţi referitoare la acest conţinut; testele de cunoştinţe se mai numesc teste
docimologice, care, la rândul lor, se deosebesc, în funcţie de criteriul ce stă la bază: teste de
cunoştinţe bazate preponderent pe memorie-, teste de cunoştinţe bazate preponderent pe gândire (sau
teste de capacităţi).
2. Testele de capacităţi au în vedere aptitudinile generale şi specifice ale elevului, indiferent
dacă anumite conţinuturi au fost parcurse sau nu.
3. Testele criteriale presupun aprecierea rezultatelor elevului în raport cu criteriile de
performanţă anterior stabilite.
4. Testele normative presupun aprecierea rezultatelor elevului în raport cu cele ale unui grup
de referinţă.
5. Scopul testelor formative este de a urmări periodic progresul şcolar, şi în consecinţă, de a
oferi feedback-ul necesar profesorului.
6. Testele diagnostice reprezintă un caz special, ele sunt mai specifice în depistarea lacunelor,
a dificultăţilor de învăţare ale elevului şi a modalităţilor de remediere a acestora.
7. Testele sumative sunt administrate la sfârşitul unei perioade lungi de instruire - trimestru, an
şcolar, ciclu de învăţământ - şi au ca principal scop notarea elevului.

43
8. Testele punctuale conţin itemi care se referă la un aspect izolat al conţinutului supus
cunoaşterii.
9. Testele integrative sunt formate dintr-un număr mai mic de itemi, dar care - fiecare în parte
- măsoară mai multe cunoştinţe, priceperi şi capacităţi.
Reieşind din criteriul timpului când testele sunt folosite ele pot fi:
a) iniţiale - nivelul performanţelor este evaluat înaintea unui program de instruire; un caz
special reprezintă testele de plasament, proiectate cu scopul selectării elevilor pentru un program
special de instruire (pentru o limba străină, o disciplină artistică);
b) finale - nivelul performanţelor este măsurat la încheierea programului de instruire.
Un test poate face parte din mai mult decât o categorie. De exemplu, un test de cunoştinţe
poate fi în acelaşi timp normativ şi punctual.
Experienţa demonstrează că, în clasă, evaluarea continuă şi formativă trebuie să aibă un rol
preponderent. Un profesor bun evaluează continuu elevii, urmărind progresul acestora şi
identificând dificultăţile lor de învăţare. El nu sancţionează - pozitiv sau negativ - elevii cu note, ci
dezvoltă un plan adaptat posibilităţilor lor diferite de învăţare.
Evaluarea curentă - ca parte integrantă a procesului de predare şi învăţare - determină
comportamente noi din partea profesorilor şi elevilor: profesorul determină - prin aproape orice tip
de activitate desfăşurată la clasă - un mod de evaluare, iar elevul îşi asumă un rol din ce în ce mai
activ în cadrul propriului proces de evaluare.
Evaluarea iniţială, ca şi evaluarea formativă se proiectează şi se realizează de către profesori. în
acest sens, profesorii trebuie să dispună de competenţe adecvate şi, în primul rând, de abilităţi în
elaborarea testelor formative.
Noţiunea de matricea de specificaţii este nedespărţită de noţiunea de test. Matricea de
specificaţii este unul dintre cele mai utilizate procedee, prin care trebuie să fim siguri că testul
măsoară obiectivele educaţionale definite anterior şi are o bună validitate de conţinut.
Analizând structura matricei se vede că pe coloanele matricei (vezi exemplul prezentat în
continuare) sunt specificate nivelurile cognitive, iar pe linii sunt enumerate elementele de conţinut
care vor fi testate.
Matricea de specificaţii
Nivelurile cognitive (pentru exemplificare)
Cunoaştere / Rezolvare de
Aplicare Total (%)
înţelegere probleme
CI 6 9 15 30
Elementele C2 8 12 20 40
de conţinut C3 4 6 10 20
C4 2 3 5 10
Total (%) 20 30 50 100

Să presupunem că dorim să testăm trei niveluri cognitive (Cunoaşterea/înţelegerea, Aplicarea, Rezolvarea de


probleme) având 4 elemente de conţinut (C1...C4). Ordinea lucrului este următoarea:
1. Vom determina ponderea pe care fiecare nivel cognitiv şi element de conţinut o va avea în cadrul testului. în
matricea de specificaţii cele trei niveluri vor avea ponderile 20%, 30% şi 50% respectiv (Total(%) - ultima linie a
matricei).
2. Conţinuturile C1..C4 vor avea ponderile 30%, 40%, 20% şi 10% respectiv în economia testului proiectat.
3. Având aceste date, va fi uşor să completăm celulele matricei prin înmulţirea liniilor şi coloanelor corespunzătoare.
De exemplu, ponderea „Aplicare” în conţinutul CI este: 0,30 x 0,30 = 0,09 (9%)
Se obişnuieşte, ca în locul ponderii să fie trecut direct numărul de itemi din fiecare celulă. Stabilindu-se numărul
total de itemi ai testului - de exemplu 40 - transformarea este simplă. De exemplu, numărul itemilor care testează
„Rezolvarea de probleme” pentru conţinutul C2 va fi: 20/100 x 40 = 8 (itemi)

44
Cu ajutorul matricei de specificaţii pot fi scrise obiectivele de evaluare şi itemi relevanţi pentru
fiecare obiectiv. în funcţie de scopul şi tipul testului pot fi construite matricii de specificaţii
generale sau detaliate.
Pentru a încheia procesul de proiectare a testului, trebuie să fie definită schema de notare
adecvată, una dintre modalităţile de a creşte fidelitatea unui test, pe baza căreia vor fi corectate şi
punctate lucrările elevilor. Acest lucru nu este uşor, necesitând un efort susţinut şi o experienţă
bogată. Introducerea noţiunii de barem de evaluare în sistemele de evaluare permite enumerarea de
elemente cu numărul respectiv de puncte de evaluare pentru fiecare din ele. Baremul conţine şi
tabelul cu note de la 0 până la 10 şi numărul de puncte din barem corespunzătoare notei respective.
Funcţiile evaluării sunt departe de limitele unei simple evidenţe a rezultatelor activităţii
elevului. Procesul instructiv-educativ nu se termină prin evaluare, ci este corectat de ea, se
construieşte pe baza ei. Sub influenţa diferitelor forme ale evaluării elevii încearcă diferite stări
psihologice, fapt care determină eficienţa activităţii lor concrete. Astfel, evaluarea este capabilă să
formeze elevului o atitudine pozitivă stabilă şi faţă de învăţător, şi faţă de obiectul acestuia.

BIBLIOGRAFIE
1. Babanschi Iu. Optimizarea procesului instructiv-educativ (bazele metodice), Lumina,
Chişinău, 1984.
2. Bontaş I. Pedagogie, Editura AII, Bucureşti, 1996.
3. Botgros I. (coordonator). Implementarea curriculumului şcolar de la debut la perspective,
Institutul de ştiinţe ale educaţiei, Laboratorul curriculum, Chişinău, 2003.
4. Carstea M. Instruirea asistată de calculator, INI Bucharest, Conference of Science. 1996,
http://www.kappa.ro/idoro/cworld/cw7-16.html
5. Cojocaru Vasile Gh. Reforma învăţământului. Orientări. Obiective, Chişinău, 2003
6. Corlat S., Ivanov L. Calcul numeric / Curs de lecţii la Informatică, CCRE „Presa”, Chişinău, 2004.
7. Cristea S. Dicţionar de pedagogie, Grupul editorial Litera-Litera Internaţional, Chişinău-
Bucureşti, 2000.
8. Dragan G. Teste-grilă la limbajul de programare Pascal, Editura TISH, 2000.
9. Grâu E. Tehnologia didactică: consideraţii metodologice / / Materialele conferinţei
informaţionale ştiinţifico-practice din 18-19 septembrie 2003 „Reforma educaţiei prin
implementarea celor mai avansate tehnici de conducere”, Chişinău, 2003.
10. Gremalschi A., Mocanu Iu., Gremalschi L. Informatica. Structura calculatorului. Clasa
a X-a, Ştiinţa, Chişinău, 2000.
11. Gremalschi A., Mocanu Iu., Spinei I. Informatica. Limbajul PASCAL / Manual pentru clasele
IX-XI, Î.E.P. Ştiinţa, Chişinău, 1999.
12. Guţu V. Dezvoltarea şi implementarea curriculumului în învăţământul gimnazial / Cadru
conceptual, Grupul Editorial Litera, Chişinău, 2000.
13. Guţu V. Dezvoltarea şi implementarea curriculumului în învăţământul gimnazial: matematica
şi ştiinţă, Grupul Editorial Litera, Chişinău, 2000.
14. Guţu V. Matematică şi ştiinţe. Ghiduri metodologice, Grupul editorial LITERA, Chişinău, 2000.
15. http://www.unibuc.ro/eBooks/StiinteEDU/CrengutaOprea/cap8.pdf
16. Izbeştschi I., Medveţchi P., Spătaru S. Aspecte psihologo-pedagogice ale procesului de
învăţământ în instituţiapreuniversitară, UPS „Ion Creangă”, Chişinău, 2002.
45
17. Masalagiu Cr., Asiminoaei I. Didactica predării informaticii, Polirom, Iaşi, 2004.
18. Materialele stagiului de formare a formatorilor locali ciclul gimnazial, Chişinău, 07.2002.
19. Meyer G. De ce şi cum evaluăm?, Bucureşti, 2000.
20. Mureşanu-Ionescu M. Formaţie şi informaţie în perspectiva creativităţii, Universitatea „A.I.
Cuza”, Buletinul Cabinetului Pedagogic nr.4, Educaţia: ieri - astăzi - mâine, Iaşi, 1988.
21. Neacşu I. Instruire şi învăţare (Teorii, modele, strategii), Editura ştiinţifică, Bucureşti, 1990.
22. Neacşu I. Metode şi tehnici de învăţare eficientă, Bucureşti, Editura militară, 1990.
23. Patraşcu D. Wichmann L., Arvat E., Spinei L. ş. a., Formarea profesorilor / Reforma
Sistemului de învăţământ şi Instruire Profesională din Moldova, Chişinău, 1999.
24. Pîtariu H. Proiectarea unui produs informatic de instruire, Universitatea „A.I. Cuza”,
Buletinul Cabinetului Pedagogic nr.4, Educaţia: ieri - astăzi - mîine, Iaşi, 1988.
25. Radu I. Informatica în şcoală: aspecte psihologice şi pedagogice, Universitatea „A.I. Cuza”,
Buletinul Cabinetului Pedagogic nr.4, Educaţia: ieri - astăzi - mîine, Iaşi, 1988.
26. Rusu T., Gremalschi A. Politica educaţională - un apanaj nu numai al statului, „Făclia”, 12.2002.
27. Spinei I. Aspecte Metodologice ale evaluărilor sumative / Materialele conferinţei
informaţionale ştiinţifico-practice din 18-19 septembrie 2003 „Reforma educaţiei prin
implementarea celor mai avansate tehnici de conducere”, Chişinău, 2003.
28. Stoica A., Musteaţă S. Evaluarea rezultatelor şcolare, Chişinău, 1997.
29. Strunga C. Evaluarea şcolară, Timişoara, 1999.
30. Vasilache G., Mocanu Iu., Covalenco I. ş.a. Windows. Word. Excel. Access, C.N.T.I.,
Chişinău, 1999.
31. Vrabie D. Formarea şi schimbarea atitudinii elevilor, Universitatea „A.I. Cuza”, Buletinul
Cabinetului Pedagogic nr.4, Educaţia: ieri - astăzi - mîine, Iaşi, 1988.
32. Wichmann L. Elaborarea curriculum-ului / Reforma Sistemului de învăţământ şi Instruire
Profesională din Moldova, Chişinău, 1999.
33. Бочкин А.Методика преподавания информатики. Минск «Вышэйная школа», 1998.
34. Век X. Оценки и отметки, Просвещение, Москва, 1984.
35. Гершунский Б. Компьютеризация в сфере образования: проблемы и перспективы, Москва.
Педагогика, 1987.
36. Древе У., Фурманн Э. Организация урока (в вопросах и ответах), Просвещение,
Москва, 1984.
37. Кошуляну И. Более 10 лет мир живет в другой эпохе, в эпохе информационного
общества. Пришел черед Молдовы, Газета «Независимая Молдова», 15.01.2004.
38. Могилёв А., Пак Н., Хённер Е. Информатика, Академия, Москва, 1999.
39. Полат Е., Бухаркина М. Новые педагогические и информационные технологии в
системе образования, Академия, Москва, 2001.
40. Семинар института ЮНЕСКО по информационным технологиям в образовании
«Мультимедиа в образовании» в Литве, «Информатика и образование», № 1, 2003.
4 1 . Софронова Н., Методика преподавания информатики. Учебное пособие, ЧГПИ,
Чебоксары, 1997.

46
Capitolul II
PARTICULARITĂŢI ALE STUDIERII INFORMATICII
ÎN GIMNAZIU ŞI LICEU
2.1. Informatica în clasa a Vil-a
2.1.1. Structura calculatorului

Planificare tematică orientativă


Număr
Tema
de ore
Structura calculatorului
Purtătorii de informaţie. Sisteme de numeraţie 1
Codificarea textelor 1
Cantitatea de informaţie. Cuantizarea imaginilor 1
Codificarea şi decodificarea informaţiei sonore 1
Structura şi funcţionarea calculatorului 1
Clasificarea calculatoarelor 1
Reţele de calculatoare 1
Evaluarea sumativă 1

Total 8
Predare-învăţare 7 ore
Evaluare 1 oră

Obiective:
Informaţia. Sisteme de numeraţie
După studierea temei, elevii vor fi capabili:
- să aplice şi să utilizeze corect termenii specifici informaticii;
- să evidenţieze rolul informaţiei în dezvoltarea societăţii;
- să cunoască unităţile de măsură a informaţiei şi să explice metodele şi formele de
prezentare/transmitere a informaţiei.
Structura calculatorului
După studierea temei, elevii vor fi capabili:
- să descrie interacţiunea componentelor calculatorului în procesul prelucrării informaţiei la
nivel elementar;
- să evidenţieze criteriile utilizate pentru determinarea generaţiilor de calculatoare;
- să explice factorii care au contribuit la apariţia reţelelor de calculatoare;
- să cunoască componentele principale ale unei reţele de calculatoare.

Recomandări, completări
__ ___

Scopul studierii temei constă în formarea şi consolidarea interesului iniţial al elevilor faţă de
obiect; în abordarea conţinutului obiectului Informatica; în punerea în ordine a reprezentărilor
intuitive ale elevilor despre computer; în iniţierea lucrului într-o clasă computerizată, familiarizarea
cu regulile şi normele ale acestuia; în introducerea elevilor în domeniul problemelor informaticii.
47
La primele lecţii trebuie să se discute triada generală a informaticii: informaţie, computer,
algoritm. Dar nu trebuie să se explice desfăşurat noţiunile şi temele de bază şi, mai ales, nu trebuie
să se ceară memorizarea lor. Profesorul trebuie să se sprijine maxim pe intuiţia şi pe experienţa de
viaţă a elevilor.
La această etapă în forma unor jocuri didactice pot fi analizate diferite probleme de
algoritmizare (de exemplu, problema cu „lup, capră, varză”, transvazarea apei cu ajutorul vaselor de
diverse volume ş. a.), limitându-se la algoritmi liniari. Trăsătura specifică a acestor probleme constă
în transformarea stării unui mediu într-o altă stare luând în consideraţie restricţiile date.
în introducere se explică prima dată noţiunea de executant, sistemul comenzilor fiecărui
executant, se examinează diferite metode ale înregistrării algoritmilor.
Pentru lecţiile de iniţiere în Informatică de asemenea sunt uzuale jocurile didactice legate de
reducerea nedeterminismului problemei cu ajutorul unui sistem de întrebări, de exemplu, ghicirea
unui număr prin metoda divizării în două. Această metodă duce şi la obţinerea ideii de reprezentare
binară a numerelor.
în continuare sunt propuse unele recomandări concrete conform subiectelor curriculumului.

0 Informaţia. Sisteme de numeraţie


Ideea generală despre procesele informaţionale poate fi formată în următoarea ordine: iniţial
profesorul exemplifică unele procese informaţionale şi ca o concluzie propune elevilor o definiţie
bazată pe particularităţile acestor procese. Trebuie de subliniat că utilizarea şi consumarea
informaţiei de asemenea reprezintă un proces informaţional important şi complicat.
Materialul ce urmează poate ajuta profesorului să explice elevilor rolul informaţiei în viaţa
societăţii şi să clarifice unele întrebări legate de structura şi funcţionarea calculatoarelor personale.
Pe parcursul revoluţiei tehnico-ştiinţifice contemporane societatea mondială a întrat în procesul
automatizării globale. Computerul s-a transformat dintr-un „aritmometru” mare într-un mijloc
revoluţionar, care distruge formele obişnuite de obţinere şi prelucrare a diferitelor tipuri de
informaţie aplicate în toate sferele activităţii umane. Pot fi menţionate unele domenii de utilizare a
computerelor: diferite sfere ale economiei, producţiile automatizate, diverse mijloace de
comunicare, sistemele automatizării muncii intelectuale. Poate fi spus, că actualmente gradul de
dezvoltare a unui stat este de multe ori determinat de potenţialul lui în domeniul computerizării.
Cu mărirea potenţialului ştiinţific creşte şi importanţa informaţiei. Informatica ca ştiinţă, care
analizează toate obiectele şi evenimentele din punctul de vedere informaţional şi studiază
metodologia modelării, algoritmii, tehnologiile informaţionale şi întrebările conceptuale legate cu
noţiunile numite mai sus, determină semnificaţia educativă şi conţinutul obiectului de studiu
Informatica. Realizarea acestei funcţii este legată de analiza rolului proceselor informaţionale
(transmiterea, prelucrarea, păstrarea informaţiei) în natura vie, tehnică şi societate, rolului
informaticii şi tehnicii de calcul în dezvoltarea forţelor de producţie ale societăţii, schimbării
caracterului muncii omului.
Cuvântul „informaţia” se trage din informatio (latin) - informare, înştiinţare, cunoştinţe despre
un fenomen ori situaţie. Majoritatea oamenilor înţelege cuvântul „informaţia” în mod intuitiv.
Totuşi, încercăm să formulăm noţiunea de informaţie.
Prin informaţie în viaţa cotidiană se înţeleg cunoştinţele despre lumea înconjurătoare şi despre
procesele trecătoare în acest mediu, asimilate de către om sau de către dispozitivele specifice.
Prin informaţie în tehnică se înţeleg comunicările transmise în forma unor semne sau semnale.
Prin informaţie în teoria informaţiei se înţeleg numai acele comunicări care reduc sau retrag pe
deplin imprecizia existentă până la obţinerea lor. După definiţia lui C. Shennon, informaţia
reprezintă o imprecizie nedefinită.
48
Prin informaţie în cibernetică se înţeleg o parte din cunoştinţele folosită pentru a se orienta,
pentru activităţii participative, pentru administrarea unui sistem, - cu alte cuvinte, în scopul
păstrării, perfecţionării şi dezvoltării sistemului.
Prin informaţie în semantică (sensul comunicării) se înţeleg cunoştinţele noi.
Prin informaţie în activitatea cu documente se înţeleg lucrurile fixate în formă de texte.
Ca o concluzie poate fi spus că informaţia reprezintă o reflectare a lumii înconjurătoare cu
ajutorul unor semne şi unor semnale.
Deoarece lumea noastră este materială, orice semnal se transferă sau cu energie sau cu un
anumit fel de substanţă: o piatră cu semne, unde acustice (sunet), radiaţie electromagnetică (lumină,
unde de radio), o foaie de hârtie (textul scris).
Se pot evidenţia următoarele tipuri de informaţie:
- după modul de percepţie - vizuală, acustică, de miros, de gust, tactilă;
- după forma de prezentare - textuală, numerică, grafică, muzicală (acustică);
- după semnificaţia socială - individuală, publică, cotidiană, estetică, specială.
Orice informaţie are anumite proprietăţi: caracterul ei obiectiv, adevărat, actual, complet,
precum şi utilitatea ori inutilitatea ei.
Cu apariţia şi dezvoltarea ciberneticii, tehnicii de calcul şi informaticii cuvântul „informaţie” cu
toate că a păstrat sensul său iniţial a obţinut şi un rând de semnificaţii noi. Vorbind despre
informaţie, noi avem în vedere ansamblul datelor, faptelor, cunoştinţelor despre un sistem de idei
care caracterizează organizaţia, structura, starea şi comportarea acestui sistem în întregime sau a
elementelor lui.
Orice idee ştiinţifică înainte de a fi implementată trebuie transformată într-o fermă de
informaţie destinată utilizatorului. Având intenţia să folosească un sistem informaţional pentr:
rezolvarea unor probleme, utilizatorul, mai întâi, analizează acest sistem. Aspectele principale ale
analizei sunt: cei pragmatic, semantic şi de sintaxă.
Referitor la noţiunea de informaţie sunt constituite trei puncte de vedere:
1. Informaţia este o resursă de o importanţă asemănătoare cu resursele energetice. împreună cu
dezvoltarea societăţii, folosirea optimală a resurselor informaţionale, în care sunt concentrate
toate cunoştinţele existente (date, fapte) despre diferite laturi ale economiei, ştiinţei, tehnicii,
tehnologiei, culturii, artei, medicinii, influenţează amplu asupra vieţii intelectuale şi economice
a societăţii.
2. Informaţia este un ansamblu de cunoştinţe tehnico-ştiinţifice, de fapte obţinute în procesul
dezvoltării ştiinţei şi tehnicii. Cu alte cuvinte, informaţia reprezintă produsul şi „sursa” unor
complexităţi de deservire informaţională a activităţii tehnico-ştiinţifice.
3. Informaţia reprezintă o sumă de produse care se formează în sistemele deservirii activităţii
tehnico-ştiinţifice ale societăţii şi pregătirii cadrelor de variate profiluri de activitate. Astfel,
domeniul produsului şi consumaţiei resurselor informaţionale este limitat de către viaţa
intelectuală a societăţii.
Este evident că primul punct de vedere asupra proceselor informaţionale este mai cuprinzător.
Domeniul definirii unui sistem informaţional îl prezintă spaţiul informaţional compus din unele
obiecte informaţionale, care pot fi descrise din punctul de vedere al păstrării şi prelucrării
informaţiei, precum şi al interacţiunii acestui obiect cu alte obiecte ale spaţiului examinat. Spaţiul
informaţional este eterogen, deoarece el este alcătuit din obiecte informaţionale care diferă între ele
după modul de organizare a informaţiei.
Gestiunea informaţiei poate fi redusă la cinci proceduri generale: căutarea, păstrarea,
prelucrarea, introducerea şi eliberarea informaţiei. Primele trei proceduri sunt interne, iar a patra şi
49
ultimă condiţionează interacţiunea componentelor spaţiului informaţional (surselor de informaţie)
ale sistemului dat cu mediul extern (consumatori de informaţie). Astfel, orice sistem informaţional
şi informaţia supusă prelucrării alcătuiesc un sistem complicat nesimilar, care, la rândul lui,
reprezintă un element al sistemului global „natura - omul - activitatea omenească - societatea” -
mult mai complicat decât primul.
Rolul profesorului la lecţia de Informatica constă în crearea atmosferei de susţinere şi
creativitate, de aceea una din formele organizatorice a lecţiilor poate fi jocul: activitatea în formă de
joc reprezintă însuşi procesul, când motivul şi obiectul activităţii coincid, iar eficacitatea acestei
activităţi este maximală. Materialele ilustrative şi jocurile didactice îndeplinesc un rol important în
predarea oricărui subiect instructiv.
De exemplu, pe parcursul însuşirii temei „Purtătorii de informaţie” elevilor pot fi propuse următoarele sarcini [9]:
La tablă iese un elev - „sursa de informaţie” şi altul - „recipientul informaţiei”. Forma transmiterii informaţiei
poate fi oricare - simbolurile, sunetul, poza, textul, muzica, culoarea, mijloacele grafice, privirea, codul, imaginea,
mişcarea. Fiecare pereche de copii alege o formă nouă de transmitere a informaţiei. Forma transmiterii informaţiei
trebuie să permită recipientului să înţeleagă corect ceea ce a fost transmis lui de către „persoana-sursă”. Ceilalţi elevi
observă cu atenţie acest proces şi pregătesc comentariile proprii: sensul transmiterii este clar sau nu, le-a plăcut modul
de transmitere a informaţiei sau nu şi de ce.
Cu mare interes copiii îndeplinesc exerciţiile, unde trebuie de reprezentat din punctul de vedere informaţional o
poveste cunoscută. De exemplu, Gogoaşa (fig. 2.1.1) nu numai cântă un cântec, dar şi comunică informaţie. Lupul,
ursul şi vulpea sunt recipiente de informaţie, iar Gogoaşa - o sursă de informaţie. Informaţia (ultimele evenimente) a
fost păstrată de Gogoaşa, care o prelucrează (compune un cântec) şi o eliberează în formă prelucrată.

La această etapă alături de problemele legate de înţelegerea noţiunii de informaţie elevii încep
să rezolve problemele de evaluare a numerelor scrise în diferite sisteme de numeraţie şi de aflare a
cantităţii de informaţie obţinută, păstrată sau transmisă pe parcursul unor evenimente.
Exerciţiile şi problemele pot fi împărţite după materialul studiat în următoarele grupe:
a) evaluarea numerelor scrise în diferite sisteme de numeraţie după formula
(N) b=cnb n+cn.1b n~1+. . . -t-Ci^+CoL0;
b) codificarea expresiilor în codul ASCII;
c) decodificarea textelor reprezentate în codul ASCII;
d) aflarea cantităţii de informaţie a unui text după formula
1=8N (biţi),
unde I - cantitatea de informaţie, N - numărul simbolurilor unui text;
e) aflarea cantităţii de informaţie a unei imagini alb-negru după formula
I=XY (octeţi),
unde I - cantitatea de informaţie, X şi Y - dimensiunile imaginii în puncte, sau a unei
imagini color după formula

50
1=3 • XY (octeţi);
f) aflarea cantităţii de informaţie a unui film după formula
V=Tf I (octeţi),
unde V - cantitatea de informaţie a unui film cu durata T (sec), / - numărul de cadre pe
secundă, I - cantitatea de informaţie în octeţi a unui singur cadru;
g) aflarea cantităţii de informaţie într-o secvenţă sonoră după formula
I = k f T (biţi),
unde I - cantitatea de informaţie, k - numărul de biţi în reprezentarea numerelor binare
(de exemplu, în sistemele telefonice k =8 biţi, în sistemele muzicale de calitate k=\6 biţi),
f - numărul de măsurări pe secundă (de exemplu, în sistemele telefonice f - 11025
măsurări/sec, în sistemele muzicale de calitate f=4 4100 măsurări/sec), T - durata
secvenţei sonore, sec.

0 Structura calculatorului
Datorită progresului tehnico-ştiinţific al societăţii a apărut computerul în calitate de mijloc de
păstrare, prelucrare şi transmitere a informaţiei din partea era propus. E de dorit ca profesorul la
lecţia introductivă să arate elevilor becuri, tranzistore, cartelele perforate şi alte componente
învechite ale calculatoarelor. Poate fi demonstrat un film despre istoria dezvoltării computerelor. La
această etapă nu este obligatoriu să se ceară de la elevi cunoştinţe despre materialul dat, e de ajuns
să fie acordată informaţia iniţială despre computer.
Configurarea computerului trebuie explicată elevilor din punct de vedere al destinaţiei
blocurilor: tastaturii, ecranului, unităţilor de disc. Instrumentul didactic potrivit în acest caz este
propunerea de a-şi imagina lipsa unui bloc şi întrebarea adresată elevilor: “Se poate lucra fără acest
bloc?” - şi, dacă răspunsul va fi pozitiv, adăugarea întrebării: “Ce se pierde în acest caz?”.
Orice om şi mai cu seamă profesorii se deprind repede cu informaţia deja însuşită şi multe
lucruri le par evidente, ceea ce încurcă la procesul explicării. In cazul când se examinează
computerul prima dată există un şir de întrebări care contribuie la problematizarea instruirii. De
exemplu: „Unde nimereşte simbolul „A” după apăsarea tastei respective?” Desigur, o parte a
răspunsului este evidentă: la monitor. „Dar în ce loc?” Urmează ideea că locul pentru introducerea
simbolului trebuie marcat pe ecran şi că anume acest semn se numeşte cursor. După acest
raţionament va fi clară şi destinaţia tastelor direcţionale. Poate fi propusă şi ideea de dispariţie a
cursorului (metoda didactică de înlăturare).
Faptul că un simbol nou poate fi tipărit pe acelaşi loc unde deja există alt simbol nu este
evident. în legătura cu aceasta are rost de a arăta simplitatea corectării greşelilor în text. Nu trebuie
de clarificat funcţiile tuturor tastelor de pe tastatură, ci numai ale celor care sunt principale la
această etapă. Luând în consideraţie utilizarea computerului pentru lucrul cu texte, poate fi formată
de la început o metodă profesională de introducere a textului cu zece degete cu ajutorul programelor
specifice de antrenare.
Este important chiar de la primele lecţii de a-i face pe elevi să înţeleagă pe deplin
responsabilităţile pentru utilizarea corectă a computerului - acest mijloc de lucru este scump, iar în
cazul exploatării incorecte - şi periculos. Se cere ca la prima lecţie să fie prevăzut timp pentru
explicarea regulilor tehnicii securităţii.

51
— _ _ j r—— | J

Probleme rezolvate
____ §__ S i ... I __________________ < = —J

♦♦♦ Problema 1 [7]


în codul propus de filozoful englez Francis Bacon literele alfabetului latin se prezintă astfel:
A -00000 B -0 0 0 0 1 C -0 0 0 1 0 D -00011 . . . Z -1 1 0 0 1
Decodificaţi, utilizând codul Bacon, următorul şir binar: 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 .

Rezolvare: Divizăm codul binar propus în trei grupe de câte 5 cifre binare fiecare. Răspunsul va fi cuvântul BAC.
♦♦♦ Problema 2 [9]

Monitorul are rezoluţia de 1 0 2 4 x 5 1 2 pixeli (puncte) şi fiecare pixel poate fi colorat în una din 256 de
culori. Trebuie de determinat numărul de biţi pentru memorizarea în memoria operativă a „unui ecran”.

Rezolvare: Numărul de pixeli este 1024 • 512= 210- 29= 219. Deoarece fiecare pixel poate căpăta oricare din
2 5 6=28 de culori, pentru memorizarea fiecărei culori este necesar 1 o c t e t = 2 3 b i ţ i . Din aceasta iese că
trebuie să fie 2 19 • 23 = 222 ( b i ţ i ) .

Problema 3 [9]

Calculaţi aproximativ numărul de octeţi, care reprezină informaţia pe care voi aţi citit-o şi aţi scris-o pe
parcursul a 7 ani de studiu.

Rezolvare: a) citire (cu viteza 700 caractere/min pe parcursul aproximativ a trei ore într-o zi)
numărul de octeţi =317,52 Mocteţi
b) scriere (cu viteza 20 caractere/min pe parcursul aproximativ a trei ore într-o zi)
numărul de octeţi = 9,07 Mocteţi
c) total numărul de octeţi = 326,59Mocteţi.

♦♦♦ Problema 4 |4]

Rastru! unei camere de luat vederi este format din 1024x1024 de puncte. Câtă informaţie va conţine o
înregistrare video cu durata de 3 ore?

Rezolvare: 1 = 3 ’ 1 0 2 4 - 1 0 2 4=314 5728 ( o c t e ţ i ) = 3 , 1 5 ( M o c t e ţ i )

V = 3 - 6 0 - 6 0 ( s e c ) - 2 5 ( c a d r e / s e c ) - 3 , 1 5 ( M o c t e ţ i )=
=850500(M o cteţi)= 8 5 0 ,5 (Gocteţi)

Problema 5 [4]

Pentru a asigura o fidelitate înaltă, echipamentele stereo (cantitatea de informaţie se dublează) din studiourile
muzicale au următoarele caracteristici tehnice: k=24biţi şi f=96000măsurări/sec. Exprimaţi în octeţi cantitatea
de informaţie a unei înregistrări muzicale de studio cu durata Ih 30min.

Rezolvare: 1=2 •24 ( b i ţ i ) - 9 6 0 0 0 (măsurări/ s e c ) ■1,5 •60 •60 (sec) =


=248832500000( b i ţ i )=3110400000( o c t e ţ i ) = 3 ,1 1 (G o cteţi)

52
2.1.2. Sisteme de operare

Planificare tematică orientativă


Număr
Tema
de ore
Sisteme de operare
Sisteme de calcul 1
Interfeţe grafice 1
Ferestre de aplicaţii 1
Meniuri 1
Ferestre de dialog 1
Aplicaţia Notepad 1
Sistemul de asistenţă 1
Ferestre de navigare şi explorare 1
Gestiunea datelor 1
Aplicaţia Paint 2
Aplicaţii multimedia. Aplicaţii de reţea 1
Drept informatic 1
Evaluarea sumativă 1

Total 14
Predare-învăţare 13 ore
Evaluare 1 oră

Obiective:
Funcţiile sistemului de operare. Interfeţe grafice
După studierea temei, elevii vor fi capabili:
- să explice funcţiile şi componentele de bază ale sistemului de operare la nivel elementar;
- să cunoască componentele unui sistem de calcul;
- să explice structura şi modul de utilizare a interfeţelor grafice;
- să identifice tipurile de ferestre;
- să utilizeze tehnica trage-şi-lasă.
Gestiunea datelor. Gestiunea discurilor
După studierea temei, elevii vor fi capabili:
- să cunoască destinaţia ferestrelor de dialog şi a elementelor de control;
- să explice şi să utilizeze operaţiile cu fişiere şi directoare;
- să estimeze capacitatea de stocare a suportului magnetic sau optic de informaţie.
Personalizarea sistemului de operare. Sistemul de asistenţă
După studierea temei, elevii vor fi capabili:
- să efectueze operaţiile destinate configurării sistemului de operare;
- să poată căuta informaţia necesară în sistemul de asistenţă;
- să explice funcţiile unităţilor de memorie externă ale calculatorului personal;
- să cunoască principiile de compunere a denumirilor de fişiere şi rolul extensiunii;
- să descrie destinaţia ferestrelor de navigare.
Aplicaţii frecvent utilizate
După studierea temei, elevii vor fi capabili:
- să poată calcula expresii matematice cu ajutorul aplicaţiei Calculator;
- să creeze şi să modifice desene şi imagini cu ajutorul unui editor grafic simplu;
- să introducă şi să prelucreze texte cu ajutorul unui editor simplu de text;
- să utilizeze aplicaţiile multimedia.
Componente de reţea
După studierea temei, elevii vor fi capabili:
- să descrie modul de conexiune a calculatoarelor într-o reţea locală şi o reţea globală;
- să utilizeze componentele sistemului de operare destinate lucrului în reţea;
- să explice structura adreselor Internet;
- să cunoască principiile de funcţionare şi structura Poştei electronice;
- să afişeze pe ecran o pagină Web.
Drept informatic
După studierea temei, elevii vor fi capabili:
- să cunoască modul de protejare a drepturilor autorilor de programe şi ale utilizatorilor
tehnicii de calcul;
- să explice termenii licenţă şi marcă-,
- să explice termenul virus şi metodele de protejare a sistemelor de calcul de virus.

Recomandări, completări
Scopul practic al temei este căpătarea de către elevi a deprinderilor de lucru independent cu
sistemui de operare. învăţarea temei introduce pe elevi în activitatea practică cu computerul, îi
familiarizează cu particularităţile interfeţei grafice şi cu unele programe aplicative. Vorbind despre
sisteme de operare profesorul trebuie să explice elevilor faptul, că sistemele de operare reprezintă
programele cu ajutorul cărora începe funcţionarea computerului. Deci, primul sistem de programe
întâlnit de viitorul utilizator este Sistemul de Operare.
Elevii trebuie să înţeleagă că funcţiile diverselor sisteme de operare sunt practic identice:
încărcarea programelor în computer, lansarea lor la execuţie şi alte activităţi cu programe, gestiunea
datelor etc.
Menţionăm, că scopul dezvoltării personalităţii în lumea computerizată este formarea metodelor
eficiente de lucru computerizat şi reflectarea lor în procesul de gândire, cu alte cuvine - pregătirea
utilizatorului, care are deprinderi de lucru cu diferite programe pregătite (sisteme de operare,
redactori, tabele electronice, baze de date ş. a.) şi poate să rezolve propriile probleme fără scrierea
programelor. Deci, scopul studierii teoretice a cursului de Informatică este, dintr-o parte,
desfăşurarea cunoştinţelor despre posibilităţile computerului şi despre posibilităţile personale ale
omului care utilizează computerul în activitatea lui (de exemplu, compararea lucrului unui secretar
fără computer şi altui - cu ajutorul acestuia) şi, ca rezultat, intensificarea interesului faţă de profesia
aleasă în cazul, dacă activitatea profesională va fi legată de computer.
în domeniul informaticii actualmente are loc inversarea tipurilor de activitate: douăzeci-treizeci
de ani în urmă programatorul a început activitatea lui cu elaborarea programelor proprii şi numai
după aceasta a utilizat biblioteci de algoritmii pregătiţi. Utilizatorul contemporan începe activitatea
sa cu utilizarea programelor pregătite (sisteme de operare, redactori, baze de date, tabele
electronice, programe de formatare a discurilor, diverse programe de detectare a viruşilor, de
antrenare, de învăţare) şi poate fi situaţia când utilizatorul nu elaborează în general programe
personale.
Metodele instructive ale lucrului cu programele aplicative pot fi următoarele:

54
1) Demonstraţia de către profesor a utilizării programului, folosind, dacă există, şi demo-
versiunile programelor.
2) Demonstraţia rezultatelor utilizării programului în studiu şi a exemplelor performante drept
orientări pentru elevi.
3) Informarea despre destinaţia şi metodele de dirijare a programului prin instructaj, povestire,
lucrul cu instrucţiunile, utilizarea help-ului.
4) Atingerea nivelului iniţial de pregătire a elevilor - cunoaşterea destinaţiei programului,
algoritmilor intrării şi ieşirii din dialog cu programul, familiarizarea cu sistemul comenzilor de
dirijare.
5) Activitatea elevilor de realizare practică a unui sistem de sarcini cu ajutorul programului dat
ceea ce contribuie la elaborarea experienţei proprii, această experienţă poate avea şi caracter
creativ. De exemplu, elevii pot găsi utilizarea neordinară a programului în studiu: formarea
raportului unei lucrări de laborator cu ajutorul redactorului textual.
Controlul rezultatelor de către profesor trebuie să fie înlocuit treptat cu autocontrolul elevilor.
Rezultatele supuse verificării pot fi: examinarea informaţiei obţinute, aranjarea documentului
realizat cu ajutorul redactorului textual sau grafic etc. Astfel, activitatea descrisă provoacă utilizarea
diverselor metode didactice.
Se examinăm mai desfăşurat de pe poziţii didactice redactorul grafic Paint - un program
aplicativ, inclus în cursul şcolar al informaticii. Trebuie de subliniat, că unele lucruri, care se
îndeplinesc greu cu creionul, pot fi îndeplinite uşor cu ajutorul redactorului grafic, de aceea
motivaţia interesului pentru desenare la calculator este prezentă la copii întotdeauna.
Scopurile învăţării redactorilor grafici sunt: pregătirea elevilor pentru activitatea computerizată
tipică - desenare şi desen liniar; şlefuirea deprinderilor de lucru computerizat; formarea ideii despre
avantajul prelucrării desenelor cu ajutorul computerului; formarea deprinderii de ordonare în gând
(algoritmizarea activităţii) a unei activităţi proprii de atingere a diferitelor stadii ale desenului;
formarea deprinderilor de folosire a diferitelor comenzi şi a instrumentelor în procesul dt
modificare a desenului; educarea modului de gândire al elevilor, când procesul gândirii trebuie să
depăşească acţiunea degetelor în îndeplinirea operaţiilor ireversibile, de exemplu, în salvarea
fişierului pe disc.
Pentru elev modelul redactorului de la început pare simplu: ecranul reprezintă o fereastră care
arată o parte a foii de desenare, deoarece la această etapă nu se discută procesele ce au loc în timpul
desenării. Poate fi demonstrat caracterul discret al desenului cu ajutorul lupei (M a g n i f e r ) şi
explicată ideea codificării informaţiei grafice ce are două culori - neagră (se înregistrează ca 0) şi
albă (se înregistrează ca 1), deci, se obţine 1 bit pentru un p i x e l pe ecran. Mijloacele de dirijare
ale redactorului sunt şoricelul şi tastele speciale ale tastaturii. Pe tablă pot fi explicate elevilor nişte
operaţii, care conţin mai mulţi paşi. Elevilor trebuie să fie învăţaţi să-şi salveze desenul pe disc.
Redactorul grafic se sprijină pe experienţa uzuală a utilizatorului, acordându-i modelele
instrumentelor obişnuite de desenare. Pictogramele acestor instrumente sunt în meniu şi facilitează
lucrul lor cu ajutorul indicatorului. De regulă, acţiunile de desenare se efectuează într-un mod unic:
alegerea unui punct în meniu, alocarea obiectelor grafice etc. Astfel, instrucţiunea de desenare a
unui obiect grafic poate conţine indicaţii în forma algoritmului liniar tipic.
De exemplu:
Algoritmul Construirea dreptunghiului
început alocaţi cursorul pe icoana „dreptunghi” pe bara cu instrumente
alegeţi tipul colorării dreptunghiului
alegeţi culorile de pe paleta de culori
desenaţi dreptunghiul
sfârşit______________________________ ___________________________________ ________________

55
Redactorul grafic simultan formează la elevi experienţa creării, executării şi citirii a
algoritmilor liniari. Lista opţională a comenzilor-algoritmilor poate fi următoarea: „dialogul” cu
redactorul grafic, citirea fişierului de pe disc, alegerea culorilor, desenarea liniilor de mână,
desenarea segmentelor drepte, desenarea dreptunghiului, desenarea cercului, desenarea curbei,
vopsirea ariei încheiate, ştergerea fragmentului, lucrul cu lupa (redactarea fină), scrierea textului,
copierea fragmentelor desenului, înregistrarea rezultatului pe disc şi terminarea lucrului. Fiecare
punct dintre aceste reprezintă un algoritm liniar. Pot fi evidenţiate aparte unele comenzi pur
computerizate: reflectarea automată în „oglindă” a desenului referitor la una sau ambele axe de
coordonate, marcarea şi permutarea unei părţi a desenului, schimbarea scării, redactarea fină cu
lupa. Aceşti algoritmi sunt simpli şi pot fi reduşi la una-două comenzi, dar prezintă dificultăţi pentru
cei cine au doar experienţa de desenare pe hârtie.
La studierea redactorului grafic Paint se utilizează metode de învăţare şi forme de organizare a
lecţiilor care permit trecerea de la activitatea cu caracter frontal la cea cu caracter individual,
înlesnesc demonstrarea experienţei proprii a profesorului în utilizarea redactorului şi practica
individuală a elevului. în acest caz expunerea verbală rămâne ca o metodă auxiliară.
Pentru organizarea lecţiilor la un nivel metodic înalt profesorul de Informatică trebuie să posede
cunoştinţe din două domenii: informatica şi pictura. Pe parcursul studierii cursului de grafică
computerizată profesorul explică elevilor noţiunile principale ale reprezentării artistice a unor
obiecte şi a unor fenomene.
Abordarea temei poate începe cu încărcarea şi demonstrarea unui desen performant, drept un
etalon pentru elevi care arată posibilităţile redactorului şi omului. Atenţia poate fi atrasă la detaliile
specifice ale desenului computerizat: umplerea fonului cu ornament sau cu fragmentele altui desen,
efectele simetriei, multiplicarea elementelor, etc. După o astfel de demonstrare elevii îşi pot alege
independent o temă pentru desen şi chiar o pot corecta în timpul desenării. Astfel ei pot demonstra
caracterul creativ al activităţii sale.
Nu trebuie propusă elevilor o imagine pentru a o modifica: desenul pregătit poate încătuşa
acţiunile elevilor, a „le deprima”. Elevii sunt dispuşi să încerce sine stătător performanţele
redactorului.
După studierea temei elevii trebuie să cunoască domeniile de aplicare a redactorilor grafici şi să
poată folosi primitivele grafice: elipsa, dreptunghiul, segmentul; să poată efectua mutarea şi
copierea obiectelor, vopsirea fragmentelor desenelor; schimbarea dimensiunii şi unghiului de
înclinare a fragmentelor, rotirea lor. Complexitatea desenului indică profesorului nivelul de însuşire
a redactorului de către elevi.
Următoarea lucrare poate fi recomandată elevilor ca o lucrare auxiliară cu scopul abordării instrumentelor de
copiere şi prelucrare a fragmentelor selectate ale unui desen. în figura 2.1.2 este prezentată o sarcină formată din nouă
etape; elevii o văd în faţa lor deschizând un fişier indicat de către profesor. Pe locul evidenţiat al imaginii elevii trebuie
să creeze un desen asemănător desenului propus de către profesor, folosind explicaţii care sunt aranjate alături de desen.
Există două tipuri principale de reprezentare a imaginii pe ecran: de rastru şi de vector. în primul caz, fasciculul
electronic scanează ecranul de la stânga la dreapta şi de sus până jos (pentru monitorul colorat se folosesc trei fascicule
electronice), luminând punctele necesare pentru formarea imaginii. După atingerea marginii drepte a ecranului
fasciculul se stinge şi se întoarce la marginea stângă deplasându-se în jos pe un rând de pixeli. Astfel imaginea întreagă
se redesenează de 25 ori într-o secundă. în cazul doi, fasciculul electronic desenează liniile pe ecran prin deplasarea
nemijlocită de la unele coordonate la altele şi luminând astfel stratul luminat dintre două puncte determinate, ceea ce nu
necesită împărţirea ecranului pe pixeli. Acest tip de activitate asigură viteza mai mare a scanării ecranului şi cere pentru
păstrarea imaginii un volum mai mic de memorie; totuşi, pe monitorul de rastru pot fi reprezentate imagini de calitate
mai înaltă. Majoritatea redactorilor grafici contemporani este orientată spre reprezentarea imaginii de tip pixeli, iar în
redactorul Coreii Draw, de exemplu, se foloseşte grafica de tip vector.
Pentru a evalua cunoştinţele elevilor la însuşirea capitolului „Sisteme de operare” poate fi propusă o sarcină care
conţine elemente de joc didactic şi competiţie. Scopul final va fi atins prin efectuarea operaţiilor cu comenzile rapide ale
obiectelor şi cu opţiunea Find de căutare a anumitor informaţii a meniului Start.

56
Prima parte a lucrării include în sine următoarele: fiecare elev alcătuieşte o frază-cheie şi creează într-un redactor
textual simplu (Notepad) patru fişiere, fiecare conţinând numai o parte din frază şi o indicaţie în ce fişier se află
următoarea parte (vezi exemplul din tabelul 2.1.1).

instrument
1. desenaţi o curbă şi o copiaţi
(prin apăsarea tastei Ctrl)
' v 1
L^_J
•i
I--- — I
2. reflectaţi-rotiţi imaginea J I1
II——__
pe orizontală
Loc pentru desenare: r — * -----
3. mutaţi linia a doua la prima
linie i w
4. desenaţi ovalul ;- - r -
5. marcaţi imaginea !o
6. copiaţi si reflectaţi imaginea pe verticală
7. uniţi partea de sus a clepsidrei cu partea de jos

8. formaţi linia invizibilă a fundului cu "radieră"


9. adăugaţi nisip

Figura 2.1.7. Abordarea instrumentelor de copiere şi prelucrare a


fragmentelor selectate ale unui desen

Pentru a găsi fişierul numărul unu elevii creează o comandă rapidă şi o aranjează pe suprafaţa de lucru. Este
necesar se subliniem, că trebuie folosite toate criteriile de căutare a fişierelor în mediul Windows: după nume, după tip,
după un simbol din nume, după mărimea fişierului, după dată, după un fragment din text, etc.
în exemplul dat un fişier este arhivat, ceea ce adaugă suplimentar un mod de lucru (cu arhivatorul), iar un fişier are
o extensie nestandard.
Partea a doua a lucrării constă în următoarele: fiecare elev îşi schimbă locul cu vecinul său şi începând de la
fişierul numărul unu adună fraza-cheie a colegului.
Tabelul 2.1.1. Consolidarea unor deprinderi de navigare prin sistemul de fişiere
Numărul cri.
Informaţia pentru căutarea
şi denumirea Fragmentele frazei-cheie
următorului fişier
fişierului
Fişierul nr.2 este creat la ora ... şi are extensia
1) fl.txt „Nu e de ajuns să însuşiţi nişte cunoştinţe,
“doc”.
Fişierul nr.3 este salvat pe discul C şi are
2) f2.doc ci trebuie de asemenea
extensia “kr”.
Fişierul nr.4 este arhivat cu ajutorul arhivatorului
“RAR” şi este salvat pe discul C; volumul lui nu
3)f3.kr să puteţi să le folosiţi.”
depăşeşte
25 KO.
4) f4.rar din Cicero

57
2.1.3. Editarea textelor

Planificare tematică orientativă


Număr
Tema
de ore
Editarea textelor
Aplicaţia Microsoft W ord 1
Formatarea caracterelor 1
Formatarea paragrafelor 1
Formatarea paginilor 1
Stiluri şi şabloane 1
Liste şi tabele 1
Evaluarea curentă 1
Inserarea obiectelor. Formatarea imaginilor 1
Grafica orientată pe obiecte. Diagrame 1
Verificarea textelor. Corespondenţă combinată 1
Inserarea formulelor 1
Evaluarea sumativă 1

Total 12
Predare-învăţare 10 ore
Evaluare 2 ore

Obiective:
Introducerea şi editarea textelor. Formatarea caracterelor. Formatarea paragrafelor. Aşezarea
în pagină. Crearea şi prelucrarea listelor. Instrumente de corectare
După studierea temei, elevii vor fi capabili:
- să utilizeze operaţiile specifice de editare a textelor;
- să explice destinaţia unei ferestre de document şi obiectele grafice ale acestei ferestre;
- să aplice modul de accesare rapidă la comenzile din meniu;
- să cunoască proprietăţile principale ale caracterelor, paragrafelor şi paginilor unui document;
- să utilizeze facilităţile oferite un editor de texte pentru crearea şi formatarea documentelor;
- să utilizeze instrumentele de corectare;
- să explice scopul indicării apartenenţei lingvistice a fiecărui fragment de text.
Tabele. Diagrame
După studierea temei, elevii vor fi capabili:
- să cunoască destinaţia tabelelor şi elementele constitutive ale unui tabel;
- să utilizeze instrumentele de modificare a tabelelor;
- să cunoască destinaţia diagramelor şi obiectele din componenţa unei diagrame;
- să realizeze diagrame;
Inserarea obiectelor
După studierea temei, elevii vor fi capabili:
- să cunoască clasificaţia obiectelor inserate posibil într-un document;
- să explice modul de inserare şi modificare a obiectelor grafice existente în bibliotecile
editorului sau luate din alte surse;
- să utilizeze instrumentele de desenare ale editorului de text;
- să realizeze includerea formulelor în documente.

58
Corespondenţă combinată
După studierea temei, elevii vor fi capabili:
- să explice termenul document principal;
- să cunoască tipul informaţiei conţinute în sursa de date şi modul de organizare a informaţiei;
- să realizeze corespondenţa combinată.

— — -----
Recomandări, completări
L_ ____ «__i______L*___

Scopurile învăţării metodelor de editare a textelor sunt:


1. Pregătirea elevilor pentru activitatea specifică lucrului cu textele, şlefuirea deprinderilor de
lucru computerizat.
2. Formarea ideii despre avantajul prelucrării textelor cu ajutorul computerului.
3. Formarea deprinderii de a ordona în gând (a algoritmiza) activităţile proprii pentru atingerea
unor etape de pregătire ale textului.
4. Educarea modului de gândire, când luarea unei decizii corecte precede acţionarea tastelor în
cazul operaţiilor ireversibile (de exemplu, ştergerea fişierului).
începând predarea acestui capitol profesorul trebuie să explice elevilor scopul şi etapele
perfectării documentelor: introducerea, verificarea şi corectarea textului; inserarea unor obiecte, de
exemplu, a tabelelor, imaginilor, diagramelor; formatarea documentului pentru a-1 prezenta în forma
necesară. Motivaţia interesului faţă de redactorul textual poate fi formată prin compararea
procesului redactării textului pe hârtie şi redactării lui cu ajutorul computerului.
Metodele principale ale învăţării acestei teme sunt:
a) conversaţia despre avantajul prelucrării textelor cu ajutorul computerelor;
b) demonstrarea activităţii proprii de către profesor;
c) lucrul independent al elevilor conform unor anumite instrucţiuni;
d) lucrul practic cu textul.
Elevii pot primi următoarele sarcini: culegerea textelor dictate de profesor, pregătirea unor
referate, corectarea textelor ce conţin greşeli, etc.
Pentru a pregăti elevii de o utilizare eficientă a redactorului textual profesorul trebuie să ia în
consideraţie unele momente metodice importante:
• modelul redactorului textual în viziunea elevului este o fereastră cu o parte din text;
• pe parcursul lucrului se efectuează autocontrolul imediat al elevilor,
• capacitatea de a prezice reacţia programului la o acţiune concretă demonstrează nivelul bun
al cunoştinţelor elevului;
• la începutul lucrului practic trebuie controlate cunoştinţele necesare activităţii în domeniul
respectiv.
Comenzile adresate redactorului pot fi împărţite în grupe logice după funcţiile lor:
1. Mutarea cursorului şi ferestrei (ecranului) prin text.
2. Editarea textului: inserarea şi ştergerea simbolurilor sau liniilor.
3. Anularea efectului ultimei comenzi executate. Această operaţie trebuie să fie explicată elevilor
la începutul temei, deoarece utilizarea ei măreşte încrederea elevului în propriile lui puteri.
4. Marcarea, ştergerea, copierea şi mutarea fragmentelor de text.
5. Formatarea textului reprezintă activităţi de modificare a aspectului textului. De exemplu, alinierea
textului poate fi demonstrată pe calea comparării textului din caietele elevilor cu textul dintr-o carte.
59
6. Căutarea după o cheie a unui element de text - această operaţie este potrivită pentru texte mari.
7. Tipărirea unui text.
Deoarece în redactorii textuali în comparaţie cu cei grafici se află un număr mic de instrumente
analogice celor uzuale rolul explicaţiilor la învăţarea acestei teme este destul de important.
Indicaţiile profesorului trebuie să conţină algoritmii de intrare / ieşire în regimul de culegere a
textului, de editare, precum şi de efectuare a operaţiilor complexe.
Pentru consolidarea temei Editarea textelor, pe lângă exerciţiile prezentate în manual pot fi folosite şi următoarele sarcini:
A. Căutarea şi corectarea greşelilor, completarea unui text
Lucrarea poate fi recomandată elevilor la etapa începerii activităţii cu redactorul textual Microsoft Word, în cadrul
consolidării priceperilor de utilizare a tastaturii calculatorului. Scopul lucrării va fi atins prin efectuarea operaţiilor
de căutare şi de corectare a greşelilor, şi de completare a textului.
Subiectele:
1. Introduceţi simbolurile pierdute1:___________________________________________________________ _

Operaţiile ca (re) pot fi efectu te asupra u (”) ui fişier sau do (s) ar sunt: ere (a) rea, mut (a) rea
şi co (P) ierea. şterge ea. reden (u) mirea. m o d ific a re a atri W utelor.

2. înlăturaţi simbolurile de prisos2:_________________________________________________________ _


Aerul/ nu seg vedae, darrf fârgă ele nu poarte existşa nijmic ceh eşste viun.

3. Corectaţi greşelile din text:________________________________________________________________ _

în vecim ^ă ta tea u n a ^ i Jir de la m a№ \inea la n ş ^ lu i c ^ îe şte a o f l o a r e . T i m p u l era cam

sece^ros şi f i r ^ g l u i nu-i prea m e r g e a .

4. Continuaţi proverbele:
„Cine toamna munceşte, iarna... (huzureşte)”.
„La lucrătorul rău, toamna in im a ... (plânge)”.
„Multă zăpadă - va f i ... (roadă) ”.
„Primăvara-i m am a... (noastră)”.
5. Completaţi anchetele:

! Numele tău
Cum te dezmiardă mama
Locul tău preferat acasă
J Culoarea ochilor tăi
înălţimea şi greutatea ta
Băutura ta preferată
Ocupaţia ta preferată
Visul tău

Prenumele şi numele tuturor prietenilor tăi


Care zile ale săptămânii cunoşti
Care luni ale anului cunoşti
Care soiuri de îngheţată cunoşti
Care culori ale curcubeului cunoşti
Mobila în casa ta
Orarul lecţiilor de azi
Cărţile tale preferate

1în paranteze sunt indicate literele corecte


2 literele evidenţiate sunt de prisos

60
6. Citiţi textul dat şi alegeţi cuvintele care se repetă. Culegeţi textul, copiind prin clipboard aceste cuvinte

Gr. Vieru „Vino, peştişor”

Vino, peşte, cătinel, Vino, peşte, drăgălaş,


Vino, peştişor, Vino, peştişor,
Să te prindă Călinei, Aşa cântă Călinaş,
Vino, peştişor, Vino, peştişor,
Să te-arăte lui bunica, Vino mic, să nu vii mare,
Vino, peştişor, Vino, peştişor,
Vino mic, mic atâtica, Să-ţi dau drumul iar în mare,
Vino, peştişor! Vino, peştişor!

B. Culegerea textului dictat


Lucrarea poate fi uzuală pentru elevi la etapa iniţială a activităţii cu redactorul textual Microsoft Word. Scopul
lucrării: formarea priceperii de a culege rapid un text dictat.
Subiectul: Scrieţi cu ajutorul computerului un text dictat cu glas tare de profesor.
C. Activitate creativă
Lucrarea poate fi recomandată elevilor la etapa începerii activităţii cu redactorul textual Microsoft Word. Scopul
lucrării: dezvoltarea creativităţii.
Subiectul: Sunt date nişte litere, de exemplu, A, V, F, R. Creaţi şi scrieţi cu ajutorul computerului cât mai multe
propoziţii din cuvintele, care încep cu aceste litere. De exemplu, „Ana vorbeşte foarte repede”. Timpul exerciţiului
este limitat. Fiecare elev citeşte cea mai reuşită propoziţie.
D. Dezvoltarea imaginaţiei. Scrierea şi formatarea textului cu ajutorul computerului.
Lucrarea poate fi recomandată elevilor pentru a consolida deprinderile de formatare a paragrafelor şi pentru a
dezvolta imaginaţia.
Subiectul: Alegeţi un obiect în clasă şi din numele lui scrieţi o poveste-monolog (de exemplu, din numele unei
mese, unui bec etc.).
E. Crearea cuvintelor încrucişate cu ajutorul redactorului textual Microsoft Word.
Această lucrare poate fi recomandată elevilor la etapa activităţii cu tabelele. Crearea şi formatarea cuvintelor
încrucişate cu ajutorul redactorului textual permite elevilor să-şi formeze deprinderi de lucru cu tabele.
Opţional, elevii pot fi instruiţi să utilizeze macrosuri pentru automatizarea unor acţiuni.
Subiectele:
1. Crearea macrosului:
a) efectuaţi comenzile Tools/Macro/Record New Macro/Keyboard/Press new shortout
key;
b) definiţi combinaţia tastelor pentru îndeplinirea macrosului;
c) efectuaţi comenzile Assign/Close;
d) îndepliniţi acţiunile necesare;
e) efectuaţi comanda Tools/Macro/Stop record.
Pentru înscrierea macrosului pot fi stabilite diferite combinaţii ale tastelor simbolice ori funcţionale cu tastele
Alt sau Ctrl, prin activarea cărora sau prin apelarea macrosului din meniul Tools/Macro/Macros se
efectuează îndeplinirea macrosului. în mod implicit macros se numeşte Macrosl, dar el poate fi redenumit.
în calitate de macros de obicei se înscrie o succesiune de acţiuni care se repetă de câteva ori pe parcursul
lucrului. Pentru formatarea cuvintelor încrucişate se repetă următoarele acţiuni: evidenţierea unui rând de
celule ale tabelului (pentru un cuvânt) şi alegerea pentru această celulă a chenarului şi culorii de fon. Pentru
automatizarea acestor operaţii rutine trebuie să formaţi doi macrosuri: pentru blocuri de celule orizontale şi
pentru cele verticale.
2. Crearea cuvintelor încrucişate:
Includeţi în documentul Microsoft Word un tabel cu numărul rândurilor şi coloanelor conform numărului
maximal de celule în direcţii verticale şi orizontale necesare pentru crearea unor cuvinte încrucişate.
Stabiliţi lărgimea coloanelor şi înălţimea rândurilor pentru formarea celulelor în formă de pătrat.
61
Stabiliţi o bifK în meniul Table/ShowGridlines. înlăturaţi formatarea existentă a celulelor din tabel prin
comanda Format/Borders and Shading/None.
înscrieţi într-un macros operaţiile de formatare a unei celule:
• marcaţi o celulă pentru oricare cuvânt;
• înscrieţi în macros procesul de formatare a celulelor: efectuaţi comanda Format/ Borders and
Shading;
• stabiliţi modul de afişare a celulelor;
• afişaţi formatul literelor.
Aranjaţi în celule cifrele.
Pentru evidenţierea cuvintelor încrucişate marcaţi blocuri de celule care formează cuvintele, activizaţi
macrosul şi formataţi celulele respective.
Adăugaţi întrebările pentru cuvintele încrucişate. Cu scopul comodităţii fereastra de lucru poate fi împărţită în
două părţi (comanda Window/Split).
în cuvintele încrucişate pot fi inserate desene, simboluri. Pentru aceasta poate fi necesară unirea unor celule
libere învecinate.
3. Cuvintele încrucişate „Anotimpul roadelor bogate” [2]:

1 T

2 0

3 A

4 M

5 N

6 A

Pe orizontală:
1. Ce adie uşor...? (vântul)
2. Cine s-a ascuns ...? (soarele)
3. Ce face vântul...? (adie)
4. Cum au devenit frunzele ...? (arămii)
5. Unde s-a ascuns soarele ... ? (nor)
6. De unde se desprind frunzele ...? (ramuri)
F. Crearea gazetei de perete a clasei în baza unui redactor textual. Profesorul trebuie să organizeze copiii pentru a
repartiza temele, a culege materialul, a scrie şi a tipări articole şi după aceasta a pregăti gazeta de perete propriu-zisă.
Potenţialul didactic al acestei forme de organizare a lecţiilor este înalt deoarece creşte motivaţia activităţii
instructive; se aprofundează cunoştinţele în domeniul selectat; se constituie relaţiile interdisciplinare; se desfăşoară o
activitate creativă colectivă în clasă.

Model de proiect didactic

Data:
Liceul:
Clasa: a VH-a
Obiectul: Informatica
Profesor:
Tipul lecţiei: mixtă
Durata: 45 min.

Tema lecţiei: Editorul de texte Word. Introducerea textului. Inserarea unui desen în text

62
Obiectivele lecţiei
> Obiective de referinţă:
• formarea deprinderilor de lucru în mediul de operare Windows;
• formarea deprinderilor de lucru în redactorul de texte Word.
> Obiective operaţionale:
• să poată crea în Windows dosare noi;
• să poată lansa programele aplicative Paint şi Word;
• să poată trece de la o aplicaţie deschisă la alta;
• să poată deschide fişiere de la orice staţie de lucru;
• să poată memora un document într-o mapă dată;
• să cunoască regulile de bază a introducerii textului;
• să cunoască cum se poate copia un fragment de text;
• să cunoască cum se poate muta un fragment de text;
• să poată introduce un text utilizând şi literele diacritice;
• să poată introduce în document un desen (o imagine) dintr-un fişier dat.
> Obiective afective:
• dezvoltarea atitudinilor estetice faţă de frumosul din natură, literatură şi artă;
• dezvoltarea aptitudinilor artistice proprii şi aprecierea aptitudinilor colegilor săi.

Metode şi procedee de învăţare:


• conversaţia M l, • scrierea la tablă M2, • conspecte de reper M3, • procedeu de asociere M4, • analiza M5,
• comparaţia M6, • activitate cu întrebări şi situaţii de problemă M7, • metoda dialogului M8, • metoda algoritmică
M9, • metoda euristică M10, • metoda limitărior temporale M l 1, • metoda variantelor noi M12, • metoda schiţării
•apide M13, • metoda descoperirii M14.

Scenariul lecţiei

Durat
Evenimente instrucţionale Activitatea profesorului Metode Activitatea elevilor
a. roin
1) Salut elevii şi le urez spor la lucru. Elevii
2) Propun elevilor să verifice S activează pictograma
(limitându-i în timp) Network Neighborhood,
S dacă staţia sa este în reţea; verifică lista staţiilor;
S dacă în mapa cu documente este mapa 'S activează pictograma My
clasei şi mapa personală Computer, deschid
Organizarea clasei pentru
mapele My Documents
lecţie şi captarea atenţiei M II 3
->cl_7_A-> mapa
elevilor
personală şi apoi le
3) Le pun întrebarea: “Ce conţinut are închid;
mapa personală?”
C îmi răspund că în mapa
personală au o mapă cu
numele Desene în care se
conţine un fişier
4) Le pun elevilor întrebarea: “Fiecare din
voi veţi crea un fişier cu un text. Unde e
cel mai bine să-l memoraţi?” Elevii
■C Dacă nu aud un răspuns satisfăcător le v' propun soluţii;
Actualizarea cunoştinţelor, dau întrebări ajutătoare. M7,
priceperilor şi •/ Elevii trebuie să înţeleagă că ar fi bine M12,
3
deprinderilor însuşite să mai creeze o mapă în dosarul M l,
anterior personal cu un nume explicit, dar pot M10
veni şi cu alte propuneri.
5) îl rog pe un elev să ne amintească cum Z’ creează o mapă în care
se execută această sarcină. ulterior vor memora
1__________________ textele lor.

63
6) Anunţ tema lecţiei, obiectivele. Elevii
7) Le propun elevilor să lanseze redactorul v' notează în caiet tema
W ord şi să introducă un text de pe fişele lecţiei;
individuale (4 rânduri de poezie luate ■S lansează redactorul
dintr-un pastel, a cărui temă a fost propusă W ord din START;
pentru desen la lecţia anterioară).
8) Rog un elev să ne amintească regulile S introduc textul din fişe;
de bază de introducere a unui text.
Anunţarea temei lecţiei. 9) Le propun elevilor să memoreze textul ^ numesc regulile;
în mapa Texte, să lanseze programul M6,
Pregătirea elevilor pentru
Paint şi să deschidă fişierul cu desenul M7,
asimilarea noilor S memorează fişierul; 14
respectiv. M8,
cunoştinţe, crearea unei
10) Le explic problema: desenul trebuie M4
situaţii - problemă
introdus în documentul cu poezie. Le 'S lansează Paint, deschid
propun să găsească soluţia prin comparaţia fişierul cu desen;
cu procedee asemănătoare din Paint şi
W ord (prima metodă: utilizarea
clipboard-ului) şi să găsească a doua S se gândesc şi propun
metodă urmând algoritmul deplasării prin soluţii.
bara de meniu.

11) Formulez ambele metode şi le propun Elevii


Comunicarea şi asimilarea elevilor să insereze desenul în text S introduc desenul în text;
M14 4
noilor cunoştinţe utilizând una din metode (la dorinţă), apoi
să salveze fişierul. S memorează fişierul.
Fixarea cunoştinţelor 12) Notez la tablă algoritmii ambelor M2, Notează în caiete algoritmii.
4
predate metode. M3
13) Le propun elevilor prin reţea să S autorul documentului
deschidă pe rând fişierele de la câteva citeşte versurile;
staţii şi să aprecieze munca colegilor şi la M9, ri colegii încearcă să
Evaluarea, autoevaluarea
sfârşit să deschidă la server un fişier în M5, determine numele 14
şi evaluarea reciprocă
care am memorat portretul lui M II poetului şi opera;
V.Alecsandri, autorul pastelurilor •S apreciază desenul
reproduse şi denumirile lor. colegului.
15) Le propun elevilor să scrie acasă un Notează în caiet tema pentru
comentariu din 2 alineate ia pastelul acasă.
respectiv, care va fi utilizat la lecţia
Anunţarea temei pentru următoare.
3
acasă. Notarea elevilor. 16) Notez elevii, ţinând cont de activitatea
lor în timpul lecţiei, complexitatea
desenului şi erorile din fragmentul de
poezie introdus.

Anexa Ia proiectul didactic


Se anexează fragmentele din pastelurile lui V. Alecsandri propuse în fişele individuale şi repartizate elevilor în
ordinea succesiunii anotimpurilor.

„Sfârşit de toamnă” (elevii 1,2) „Iarna” (elevii 3,4)


Vesela verde câmpie acu-i tristă, veştezită; Tot e alb pe câmp, pe dealuri, împrejur, în depărtare
Lunca, bătută de brumă, acum pare ruginită; Ca fantasmele albe plopii înşiraţi se pierd în zare,
Frunzele-i cad, zbor în aer, şi de crengi se deslipesc Şi pe-ntinderea pustie, fără urme, fără drum,
Ca frumoasele iluzii dintr-un suflet omenesc. Se văd satele pierdute sub clăbuci albii de fiim.

Din tuspatru părţi a lumei se ridică-nalt pe ceruri, Dar ninsoarea încetează, norii fug, doritul soare
Ca balauri din poveste, nouri negri plini de geruri. Străluceşte şi dismiardă oceanul de ninsoare.
Soarele iubit s-ascunde, iar pe sub grozavii nori Iat-o sanie uşoară care trece peste văi...
Trece-un cârd de corbi iernatici prin văzduh în văzduh voios răsună clinchete de zurgălăi.
croncănitori.

64
„Miezul iernei” (elevul 5) „Oaspeţii primăverii” (elevii 9,10)
In păduri trăsnesc stejarii! E un ger amar, cumplit! în fund, pe cer albastru, în zarea depărtată,
Stelele par îngheţate, cerul pare oţelit, La răsărit, sub soare, un negru punct s-arată!
Iar zăpada cristalină pe câmpii strălucitoare E cocostârcul tainic în lume călător,
Pare-un lan de diamanturi ce scârţâie sub picioare. Al primăverii dulce iubit prevestitor.

„Sfârşitul iernei” (elevii 6,7,8) în aer ciocârlia, pe casă rândunele,


Lumina e mai caldă şi-n inimă pătrunde; Pe crengile pădurii un roi de păsărele
Prin râpi adânci zăpada de soare se ascunde. Cu-o lungă ciripire la soare se-ncălzesc
Piraiele umflate curg iute şopotind Şi pe deasupra bălţii nagâţii se-nvârtesc.
Ş: mugurii pe creangă se văd îmbobocind.

0 . Doamne! Iată-un flutur ce prin văzduh se pierde!


in câmpul veşted iată un fir de iarbă verde
Pe care-ncet se urcă un galben gândăcel
Ş: sub a lui povară îl pleacă-ncetinel.

№ fir de iarbă verde, o rază-ncălzitoare,


Un gândăcel, un flutur, un clopoţel în floare,
I>-pă o iarnă lungă ş-un dor nemărginit
Aprind un soare dulce în sufletul uimit!

REFERINŢE
Bolun I., Covalenco I., Bazele informaticii aplicate, Editura ASEM, Chişinău, 1999.
Carabet N., învaţă, jucându-te (Ghid pentru părinţi, educatori şi copii), UPS „Ion Creangă’',
Chişinău, 2003.
Chirchin O., Metodica predării informaticii, Partea I, UPS „Ion Creangă”, Chişinău,"2004
Gremalschi A., Vasilache G,, Gremalschi L., Informatica. Manual pentru clasa a Vil-a, Chişinău
Editura Ştiinţa, 2001.
Informatică. Curriculum şcolar pentru clasele a VII-а - a IX-a, Editura Univers Pedagogie,
Chişinău, 2006.
Plohotniuc E., Informatica generală, Bălţi, 2001.
Vasilache G., Ciobanu I., Malearovici A. ş. a., Teste la Informatică (Bacalaureat 2002),
LYCEUM, Chişinău, 2002.
Vasilache G., Mocanu Iu., Covalenco I. ş.a., Windows. Word. Excel. Access, C.N.T.I., Chişinău,
1999.
Софронова H., Методика преподавания информатики. Учебное пособие, ЧГПИ,
Чебоксары, Москва, 1997.

65
2.2. Informatica în clasa a VIII-a

2.2.1. Păstrarea informaţiei în foile de calcul

Planificare tematică orientativă


Număr
Tema
de ore
Păstrarea informaţiei în foile de calcul
Elementele unei foi de calcul 1
Tipuri de date 1
Introducerea şi editarea datelor 1
Formatarea datelor. Formate numerice 1

Total 4
Predare-învăţare 4 ore
Obiective:
Elementele unei fo i de calcul
După studierea temei, elevii vor fi capabili:
- să descrie şi să utilizeze elementele foii de calcul;
- să explice termenul calcul tabelar;
- să cunoască diferenţa dintre un tabel dintr-un document text şi un tabel din cadrul unei foi
de calcul;
- să explice destinaţia comenzilor New, Open, Glose, Save, Save as din meniul File.
Introducerea, editarea şi formatarea datelor în foile de calcul
După studierea temei, elevii vor fi capabili:
- să definească tipurile de date şi să introducă valorile acceptate de foile de calcul;
- să cunoască modalităţi de selectare a unei celule, a unei coloane, a unui rând a foii de calcul;
- să utilizeze operaţiile de editare a datelor în foile de calcul;
- să utilizeze facilităţile de căutare şi înlocuire a datelor;
- să evidenţieze principalele categorii de formate numerice şi să explice destinaţia lor.

1
Recomandări, completări
____ ; ,________ *==»—
Pentru a motiva actualitatea cursului de studiere a tabelelor electronice profesorul poate
enumera elevilor avantajele acestor tabele: uşurinţa formării şi redactării tabelului, efectuării
calculelor, păstrării şi utilizării rezultatelor; posibilitatea prelucrării statistice a elementelor
tabelului, sortării tabelului după un criteriu indicat: utilizarea tabelului ca o bază de date,
imprimarea foilor de calcul pe hârtie. Reieşind din actualitatea tabelelor electronice, scopurile
învăţării acestei teme sunt: formarea ideii despre reprezentarea informaţiei în formă de tabel şi
despre modurile de prelucrare a ei; dezvoltarea capacităţii de a îmbina sarcinile abstracte şi cele
concrete ale problemei.
Metodele de stimulare şi de motivare a învăţării ocupă un loc deosebit din punctul de vedere al
intensificării învăţământului. Tabelele electronice, ca şi alte mijloace programate, pot fi folosite
drept instrumente de cunoaştere pentru dezvoltarea posibilităţilor mintale ale elevilor - în modelarea
matematică a diverselor fenomene ale vieţii sociale şi ale naturii. In acest caz se micşorează rolul

66
metodelor reproductive ale învăţării: ele sunt înlocuite cu metode de problematizare. Pentru
ridicarea nivelului emoţional al instruirii trebuie să fie dată elevilor posibilitatea de a formula
probleme de sine stătător.
Pe parcursul dezvoltării informaticii s-a stabilit că în multe domenii ale activităţilor cotidiene
sunt necesare aplicaţii care ar facilita procesele de prelucrare a datelor organizate în formă de
tabele. Copiilor trebuie să li se demonstreze, că tabelul electronic este un sistem interactiv de
prelucrare a datelor, care reprezintă un tabel în formă dreptunghiulară, celulele căruia pot conţine
numere, şiruri de caractere sau formule - fapt ce determină dependenţa datelor înscrise dintre celule.
în capitolul dat sarcinile practice sunt orientate la obţinerea deprinderilor de a introduce şi de a
edita datele într-o foaie de calcul şi a priceperilor de a formata date.
Precizăm tipurile activităţilor cu aplicaţiile de calcul:
1. Activitatea cu o problemă pregătită, cu un sistem de formule şi numere care este încărcat dintr-
un fişier. în acest caz elevii învaţă să încarce datele problemei şi să observe schimbarea
rezultatelor. Subliniem că elevii nu introduc la această etapă formuîe - toate legăturile dintre
celule se iau în forma pregătită.
2. Studierea comenzilor: deplasarea prin tabel, introducerea, editarea şi formatarea datelor în
celule. Se recomandă de la început să se explice elevilor diferenţa dintre celulele destinate
datelor iniţiale şi celulele destinate înscrierii rezultatelor, şi să fie subliniat că manual pot fi
schimbate numai conţinuturile celulelor cu datele iniţiale.
3. O modificaţie mai amplă este ştergerea unui rând sau coloane în tabel. în acest caz elevii se
familiarizează cu comanda De l e t e şi printr-un dialog clarifică obiectul de ştergere. Tot aici
poate fi explicată şi utilizată operaţia I n s e r t pentru a adăuga un rând sau o coloană.

2.2.2. Formule şi calcule

Planificare tematică orientativă


Număr
Tema
de ore
Formule şi calcule
Operatori şi operanzi 1
Adresarea celulelor 1
Evaluarea formulelor 1
Funcţii 1
Evaluarea sumativă 1

Total 5

Predare-învăţare 4 ore
Evaluare 1 oră

Obiective:
Operatori. Operanzi
După studierea temei, elevii vor fi capabili să utilizeze operatori şi operanzi conform destinaţiei
lor.
Utilizareaformulelor
După studierea temei, elevii vor fi capabili:

67
- să cunoască modalităţile de vizualizare a formulelor unei foi de calcul;
- să explice diferenţa dintre adresele relative şi absolute;
- să aplice formulele pentru efectuarea calculelor propuse.
Funcţii
După studierea temei, elevii vor fi capabili:
- să explice destinaţia asistentului Function Wizard şi modul de introducere formulelor în
foaia de calcul cu ajutorul acestui asistent;
- să cunoască semnificaţia termenului funcţie în aplicaţiile de calcul tabelar;
- să aplice funcţiile predefmite pentru rezolvarea problemelor din matematică, fizică,
prelucrarea textelor.
Ijhb® g&spfgşş 1gşşE n ■■—ş :.T— -
Recomandări, completări
_______ '_______ ■ . .
înainte de a preda acest capitol, profesorul trebuie să ia în consideraţie faptul că tema dată
este cea mai complicată în cadrul studierii aplicaţiei Excel. Explicaţia materialului în studiu trebuie
începută cu faptul că celulele unei foi de calcul pot conţine valori sau formule. De obicei, aplicaţiile
de calcul tabelar afişează în celulele foilor de calcul nu formulele propriu-zise, ci rezultatele
evaluărilor respective. Totuşi, în unele cazuri este necesară vizualizarea formulelor. Elevii trebuie
să cunoască metoda trecerii la acest regim. Pentru rezolvarea unui spectru larg de probleme copiii,
mai întâi, trebuie să se orienteze în variantele adresării celulelor - absolută şi relativă.
Cu scopul consolidării acestui material pe lângă exerciţiile din manual [4] pot fi recomandate, de exemplu,
probleme de următorul tip:
❖ Problema Mişcarea trenului

Sunt cunoscute viteza medie a unui tren şi distanţa de la punctui pornirii până la punctul de destinaţie a lui.
Trebuie de creat un tabel, care arată legătura dintre distanţa rămasă până la punctul de destinaţie şi timpul
mişcării trenului şi reflectă situaţia cu intervalul de o oră.

Rezolvare'.
C3=$B$3/$A$3
D3=l
D4=D3+1
D5 ... Dl2 - copierea formulei din celula D4
E3=$A$3*D3
E4 ... El2 - copierea formulei din celula E3
F3=$B$3-E3
F4 ... FI2 - copierea formulei din celula F3

A B c D B F

V iteza D istanţa Timpul Tim pul D istanţa D istan ţa până


trenului dintre miscArii m işc ă m trecuta La p u n t tu l de
puncte total de la după d estin aţie
p u n ctu l rn n p u lT
< le

1
pornire
2
(V (L la n ) < H h > tT li) (LI k m ) (L2BL*L1 k m )
3 100 1000 l f l 1 1 00 9 00
4 2 200 8 00
3 3 3 00 700
6 4 400 6 00
7 5 500 500
8 6 600 400
8 7 700 3 00
10 8 800 2 00
11 9 900 1 00
12 10 1000 0
Figura 2.2.1. Foaia de calcul Mişcarea trenului
în cadrul studierii temei Funcţii trebuie să fie explicate modurile de utilizare a unor funcţii des
folosite.
De exemplu, problema 15 [4, pag. 45] Rezolvarea ecuaţiei de gradul II cu ajutorul aplicaţiei Excel se rezolvă prin
utilizarea funcţiilor I F şi SQRT. în fig. 2.2.2 sunt reprezentate două foi de calcul: a) varianta cu D>0, afişarea
formulelor şi b) variantele D>0, D=0, D<0, afişarea valorilor calculate.

a)
A B
1 R e z o lv a re a e c u a ţ ie i d e g r a d u l II:
2 ax2+bx+c=0, a ^ 0
3 a 10
4 b 30
5 c ^5
6 D = b 2 -4 a c = B 4 ,'2 - 4 * B 3 * B 5
7 s q r t( D ) = IF ( B 6 < 0 :” d is c r im in a n t n e q a tiv ” : s q r t( B 6 ) )
8 X1 = IF ( B 6 < 0 ;” n u a re r ă d ă c in i" ; ( - B 4 + B 7 ) /( 2 * B 3 ) )
9 X2 = IF ( B 6 < 0 ;” n u a re r ă d ă c in i” ; ( - B 4 - B 7 ) / ( 2 * B 3 ) )

b)

A B C D
1 R e z o lv a r e a e c u a ţ ie i d e g r a d u l II:
2 a x 2 + b x + c = 0 , a 7^ 0
3 a 10 20 2
4 b 30 20 5
5 C f 1 fi 4 “1
_*7
6 D = b 2 -4 a c 700 0
7 s q r t( D ) 26,46 0,00 d is c r im in a n t n e q a tiv
8 HCI -0,18 -0,50 n u a re r ă d ă c in i
9 t~~X2 -2.82 -0,50 n u a r e r ă d ă c in i

Figura 2.2.2. Foaia de calcul Rezolvarea ecuaţiei de gradul II:


a) afişarea formulelor; b) afişarea valorilor calculate

Pentru consolidarea temei Funcţii poate fi propusă următoarea problemă:


Problema Secţia de baschet
Un tabel conţine unele date despre elevi: numele, vârsta şi înălţimea lor. Câţi elevi pot fi luaţi în secţia de I
baschet, dacă la secţie se primesc copiii cu înălţimea nu mai mică decât 160 cm? Totodată vârsta elevilor ]
trebuie să fie egală sau să depăşească 12 ani.

Rezolvare:
1) D2=IF(AND(B2>=12;C2>=160),„DA","NU")
2JD3...D6 - copierea formulei din celula D2
3) D7=COUNTIF(D2:D6;„DA")

A B C D
1 Nume, prenume Virsta elevului (ani) Înălţimea (cm) Primit in secţia
2 Roşea Ion 12 150 nu
3 Mazur Marian ris 169 da
4 Istrati Petru 14 176 da
5 Istrati Vasile 14 164 da
6 Cheptene ion 13 160 da
7 Numărul elevilor primiţi n secţia de baschet 4

Figura 2.2.3. Foaia de calcul


Secţia de baschet
Model de proiect didactic

Data:
Clasa: a VUI-a
Obiectul: Informatica
Profesor:
Tipul lecţiei: Lecţie de formare a
priceperilor şi deprinderilor
Durata: 45 min

Tema lecţiei: Utilizarea formulelor şi funcţiilor în foile de calcul Excel

Obiectivele lecţiei
> Obiective de referinţă:
• Cunoaşterea regulilor de scriere şi evaluare a formulelor Excel;
• Cunoaşterea funcţiilor utilizate în aplicaţiile de calcul tabelar;
• Aplicarea funcţiilor şi formulelor la rezolvarea problemelor.
> Obiective operaţionale:
• să cunoască destinaţia şi modul de utilizare operatorilor;
• să cunoască tipul rezultatelor furnizate de operatori;
• să cunoască prioritatea operatorilor;
• să cunoască clasificarea operanzilor utilizate în calculul tabelar;
• să cunoască şi să poată utiliza diferite tipuri de referinţe;
» să cunoască regulile de compunere a formulelor;
• să cunoască regulile de evaluare a formulelor;
• să poată utiliza formulele pentru efectuarea calculelor;
• să cunoască funcţiile predefinite ale aplicaţiei de calcul tabelar;
• să poată utiliza funcţiile predefinite pentru rezolvarea problemelor din matematică, fizică, prelucrarea textelor.

Metode de învăţământ:
•învăţarea reciprocă, «Conversaţia, «Problematizarea, «Analiza, «Comparaţia, «Observaţia independentă,
•Descoperirea, «Algoritmizarea, «Exerciţiul

Mijloace de învăţământ:
•o clasă de calculatoare; «soft-ul: aplicaţia MS Office Excel; «manualul; «fişe cu tabele

Scenariul lecţiei

Formele de Durata,
Etapele lecţiei Activitatea profesorului Activitatea elevilor
învăţare min
• Salut elevii, verific prezenţa, Individual, Răspund la apel, 2
Moment le propun să lanseze aplicaţia în perechi pregătesc calculatoarele
organizatoric MS Excel de lucru

Anunţarea temei şi • Scriu tema la tablă şi anunţ


în colectiv Ascultă, fac notiţe 2
obiectivelor lecţiei obiectivele lecţiei
Reactualizarea • Le propun elevilor să-şi Individual Dialoghează cu 5
cunoştinţelor amintească: a) regulile de profesorul
compunere şi evaluare a
formulelor; b) funcţiile
utilizate în Excel
• Le propun elevilor să
Rezolvarea elaboreze tabelul Note din în perechi Elaborează tabelul în 8
exerciţiilor-model manual (pag. 42) Excel

• Pun în fata elevilor


Rezolvarea următoarele sarcini: a) să în perechi Elaborează foaia de 7
exerciţiilor cu elaboreze foaia de calcul calcul, o completează
condiţii schimbate Piese din manual (fig. 2.15,
pag. 45); b) să completeze

7
foaia de calcul cu formulele
necesare pentru determinarea
piesei de arie maximă

• Le împart elevilor fişele de


Rezolvarea lucru (se anexează) şi le
exerciţiilor cu propun să elaboreze tabelul
elemente de dat în fişă la calculator şi să-l
creativitate completeze cu date şi rubrici Lucrează cu calculator,
utilizând cât mai multe în perechi îndeplinesc sarcina dată 15
formule şi funcţii standard,
să-l denumească

• Analizez tabelele elaborate


Concluziile şi Demonstrează lucrul
şi-i rog pe,elevi (selectiv) să-
realizarea efectuat, răspund la
mi explice ce calcule au Individual 5
întrebări
feedback-ului efectuat în tabel, îi notez

• Propun tema de acasă -


Anunţarea temei elaborarea unui tabel din Notează în caiet tema
Individual 1
pentru acasă orice domeniu şi efectuarea pentru acasă.
calculelor în el

Anexa la proiectul didactic

rişa cu tabelul de completat


clasa a V-a clasa a V l-a clasa a V îl-a "!
V Anul culoarea M edia M edia Media !
Nume Prenum e Sexul inaltim ea M edia M edia M edia
naslreii o chilo r
sem . 1
sem.
sem . 1
sem .
sem . 1
sem.
II II II
.
-
t 2

l 3 nc

Mată: Elevii ar putea completa tabelul dat cu Media anuală a fiecărui elev in diferiţi ani, Media pe clasă, înălţimea
medie, Anul naşterii minimal, ş.a.

2.2.3. Diagrame şi obiecte grafice

Planificare tematică orientativă


Număr
Tema
de ore
Diagrame şi obiecte grafice
Elementele unei diagrame. Crearea diagramelor 1
Editarea diagramelor 1
Hărţi şi obiecte grafice 1
Construirea graficelor 1

Total 4

Predare-învăţare 4 ore
Obiective:
Elementele unei diagrame
După studierea temei, elevii vor fi capabili:
- să descrie componentele unei diagrame;
- să explice legătura între datele selectate şi elementele diagramei respective;
- să cunoască diferenţa între diagramele create cu ajutorul unui editor de texte şi diagramele
create cu ajutorul aplicaţiilor de calcul tabelar.
Crearea şi editarea diagramelor
După studierea temei, elevii vor fi capabili:
- să aleagă tipul de diagramă în funcţie de specificul datelor de reprezentat;
- să cunoască etapele principale necesare creării unei diagrame;
- să explice termenii încapsularea obiectelor şi ierarhia obiectelor;
- să utilizeze operaţiile de editare a diagramelor.
Hărţi
După studierea temei, elevii vor fi capabili:
- să reprezinte informaţiile geografice cu ajutorul hărţilor;
- să deseneze şi să modifice hărţile incluse în foile de calcul;
- să recunoască legătura între datele selectate şi elementele hărţii înserate în foaia de calcul.
Obiecte grafice
După studierea temei, elevii vor fi capabili:
- să creeze imagini în foile de lucru şi pe diagramele fixate;
- să descrie şi să efectueze operaţii asupra obiectelor grafice;
- să utilizeze modalităţile de formatare a obiectelor grafice din componenţa unei foi de calcul;
- să poată construi un grafic în baza datelor dintr-o foaie de calcul.

Recomandări, completări
Una din problemele frecvent întâlnite în matematică, fizică, chimie, tehnică, medicină,
economie etc. constă în construirea graficelor. în aplicaţia Excel graficele pot fi construite în baza
valorilor din celulele unei foi de calcul utilizând diferite forme de diagrame.
Pe lângă problemele din manual pentru a însuşi metodele de construire a diagramelor de diverse tipuri pot fi
utilizate, de exemplu, următoarele probleme:
❖ Problema 1
Rezolvare:

Evidenţiem blocul celulelor A l : B3, care conţine datele pentru prelucrarea lor grafică. Prima coloană A1:A3 a
blocului reprezentă denumirile sectoarelor; coloana a doua 3 1 :B 3 conţine datele numerice pentru crearea
diagramei. Diagrama circulară va fi reprezentată în modul următor:

ţ& i Carnete
A B
Creioane
i Carnete 2
13 Carnete
2 Creioane 13 ■ Creioane
3 Caiete 45 g] Caiete
Caiete

în exemplul următor se cere crearea diagramei cu coloane:


<f Problema 3 [6]

Considerăm că un vânzător comercializa ziare pe parcursul unei săptămâni. Trebuie de creat o diagramă cu
coloanele, care arată repartizarea numărului de ziare vândute în fiecare zi a săptămânii.

în această problemă înălţimea coloanelor se determină prin cantitatea ziarelor vândute într-o zi: fiecare coloană este
legată de un punct de reper, care în acest caz este ziua săptămânii.
Rezolvare:
A B C D E F G
!. 1 Luni Marţi Miercuri Joi Vineri Sâmbătă Duminică
!2 20 25 32 30 23 30 20

Evidenţiem blocul celulelor A 1:G 2, care conţine datele pentru prelucrarea lor grafică. Primul rând A1:G1 al
blocului evidenţiat reprezentă axa X (puncte de reper); rândul al doilea A 2: G2 a! blocului conţine datele axei ”
(înălţimea coloanelor). Diagrama cu coloane se reprezintă în modul următor:

Vânzarea ziarelor

Problema 4 [6]
Această problemă reprezintă o variantă mai complicată a problemei precedente.
Presupunem că ziarele au fost vândute de către trei vânzători.Trebuie de creat o diagramă cu coloane care
■prezintă rezultatul lucrului vânzătorilor.

Maohare:

: A B C D E F G H

- Luni Marţi Miercuri Joi Vineri Sâmbătă Duminică

Vânzătorul 1 20 25 32 30 23 30 20
,3* Vânzătorul 2 33 28 25 25 22 25 20
Vânzătorul 3 15 20 22 29 34 35 30

73
înălţimea coloanei determină cantitatea ziarelor vândute. De asemenea, vor rămâne 7 puncte de reper - câte unul
pentru fiecare zi de săptămână. Spre deosebire de exemplul precedent, în fiecare punct de reper vor fi acum trei
coloane - câte una pentru fiecare vânzător. Toate coloanele unui vânzător vor fi vopsite identic.
Evidenţiem blocul celulelor A1:H4 care conţine datele pentru prelucrarea lor grafică. Primul rând al blocului
evidenţiat reprezintă axa X a coordonatelor (puncte de reper); următoarele trei rânduri ale blocului evidenţiat conţin
datele axei Y (înălţimea coloanelor). Diagrama cu coloane în acest caz este reprezentată astfel:

Vânzarea ziarelor

□ VânzătoruH
n Vânzătorul
□ Vânzătorul

❖ Problema 5 [6]
Trebuie de creat o diagramă liniară, care reprezintă variaţia cantităţii ziarelor vândute zilnic pe parcursul unei
săptămâni.

Rezolvare:
Crearea diagramei liniare este analogică creării diagramei cu coloane, dar în cazul diagramei liniare în loc de
coloane va fi arătată numai înălţimea lor (prin puncte, pătrăţele, cerculeţe etc.), iar aceste semne vor fi unite între
ele prin segmente de linii drepte. în loc de diferite culori în vopsirea coloanelor vor fi folosite diferite semne,
grosimi şi tipuri diferite ale liniilor (neîntreruptă, punctată etc.) sau diferite culori.

Vânzarea ziarelor

Luni Marţi Miercuri Joi Vineri Sâmbătă Duminică

-♦— Vânzătorul 1 Vânzătorul 2 — A — Vânzătorul 3

Model de proiect didactic

Data:
Clasa: a Vlll-a
Obiectul: Informatica
Profesor:
Tipul lecţiei: Lecţie mixtă
Durata: 45 min

Tema lecţiei: Elementele unei diagrame. Crearea diagramelor


Obiectivele lecţiei
> Obiective de referinţă:
• Cunoaşterea modului grafic de reprezentare a datelor din foile de calcul;

74
• Utilizarea diagramelor.
> Obiective operaţionale:
• să cunoască şi să poată identifica elementele unei diagrame;
• să înţeleagă legătura între datele foii de calcul şi elementele diagramei respective;
• să cunoască tipurile frecvent utilizate de diagrame;
• să cunoască avantajele şi neajunsurile fiecărui tip de diagramă;
• să poată alege tipul de diagramă în funcţie de specificul datelor reprezentate;
• să poată crea diagrame fixate în foaia de calcul şi diagrame ca documente separate;
• să cunoască şi să poată utiliza operaţiile de editare a diagramelor;
• să cunoască şi să poată utiliza operaţiile de formatare a diagramelor

Metode de învăţământ:
•învăţarea reciprocă, «Conversaţia, «Metoda euristică, «Conspecte de reper, «Analiza, «Comparaţia, «Observaţia
independentă, «Cercetarea în grup, «Descoperirea, «Algoritmizarea, «Exerciţiul

Mijloace de învăţământ:
•o clasă de calculatoare; «soft-ul: aplicaţia MS Office Excel; «manualul; «fişe cu tabele şi diagrame

Scenariul lecţiei

Formele de Durata,
Etapele lecţiei Activitatea profesorului Activitatea elevilor
t învăţare min
• Salut elevii, verific
prezenţa, le propun să Individual, Răspund la apel, pregătesc
Moment
lanseze aplicaţia MS în perechi calculatoarele de lucru 3
organizatoric
Excel şi le împart fişele
de lucru
.Anunţarea temei şi • Scriu tema la tablă şi
în colectiv Ascultă, fac notiţe 2
obiectivelor lecţiei anunţ obiectivele lecţiei
Verificarea • Le propun elevilor să în echipe de câte 2 elevi la 8
cunoştinţelor, creeze în foile de calcul 2 fiecare calculator creează
priceperilor şi tabele cu date din fişe, câte 2 tabele Excel J
deprinderilor urmăresc cum lucrează la
calculator
• Le explic elevilor ce este Ascultă, fac notiţe 2
o diagramă şi pentru ce
se utilizează
• Le propun elevilor
a) să scrie în caiet într-o Studiază manualul, fişele, 8
Comunicarea noilor coloană termenii ce scriu în caiete, discută,
cunoştinţe definesc elementele unei analizează.
diagrame (pentru a le
completa ulterior cu în colectiv
termenii în limba
Individual
engleză); b) să le în perechi
găsească explicaţia în
manual şi să descopere
elementele în diagramele
din fişe
• Le propun elevilor să Creează diagrama în Excel, 8
selecteze datele din fac notiţe în caiet
primul tabel şi să
acţioneze butonul
Fixarea noilor Asistentul pentru
cunoştinţe diagrame (Chart Wizard)
şi în continuare să
parcurgă toţi paşii de
creare a diagramei,
descoperind, totodată, şi
notând denumirile de
termeni în limba engleză

75
• După prima parcurgere a
etapelor de creare a Analizează diagramele 4
diagramei, analizez cu proprii, ale vecinilor şi le
elevii reprezentările compară cu cele din fişe
obţinute, le indic Dacă este nevoie
diferenţele faţă de fişă şi le redactează diagramele
propun să redacteze
diagrama
• Pentru a doua diagramă
le sugerez elevilor ideea Analizează a doua 7
Formarea priceperilor să fie atenti la elementele diagramă din fişă,
şi deprinderilor ei şi să încerce să obţină descoperă diferenţa faţă de
la calculator o prima şi o creează într-o
reprezentare identică „din foaie pentru diagrame
prima” (fără a recurge la
redactarea ulterioară), dar
şi să o insereze într-o
foaie pentru diagrame
• Discut cu elevii
Concluziile şi
rezultatele, răspund la
realizarea în colectiv Discută, pun întrebări 3
întrebări
feedback- ului
Anunţarea temei Notează în caiet tema
• Propun tema de acasă Individual 1
pentru acasă pentru acasă

Anexa la proiectul didactic

Media !a obiectele de bază


M edia ia o b ie c te le de b a z ă
Anul de studii
Clasa 2003- 2004- 2005-
2004 2005 2006
a Vlll-a A 9 10 8
a Vlll-a B 8 7 10

♦ a vtli-a A
« a vtli-a B

Rezultatele la teze

Obiectul de studiu Rezultatele la teze


Nume
I.română I.engleză matematica
10 10 10
Catalina
8 10 10
Rusu
Ionel
7 6 6
Buior
Sandu
10 8 8
Cosma
Elevii

□ I.română Dl.engleză Dmatematica j

76
2.2.4. Baze de date

Planificare tematică orientativă


Număr
Tema
de ore
Baze de date
Elementele unei baze de date 1
Gestionarea listelor 1
Sortarea înregistrărilor 1
Selectarea înregistrărilor 1

Total 4
Predare-învăţare 4 ore

Obiective:
Soţiuni elementare de baze de date. Gestionarea listelor
După studierea temei, elevii vor fi capabili:
- să explice termenii date elementare şi date compuse;
- să descrie structura bazei de date;
- să cunoască operaţiile utilizate frecvent în gestionarea bazelor de date;
- să explice destinaţia elementelor de control ale unui formular de date;
- să explice şi să utilizeze operaţiile destinate gestiunii listelor.
Sortarea şi selectarea înregistrărilor
După studierea temei, elevii vor fi capabili:
- să explice termenul sortarea înregistrărilor;
- să cunoască destinaţia cheilor de sortare;
- să stabilească ordinea de sortare a înregistrărilor;
- să explice termenul selectarea (filtrarea) înregistrărilor;
- să utilizeze operaţiile de selectare a înregistrărilor;
- să identifice condiţii complexe de selectare.
Rezumarea datelor dintr-o listă
După studierea temei, elevii vor fi capabili să utilizeze metodele de rezumare a datelor.

Recomandări, completări
— -- ^ - ................. ......... ..... "■*—
Pentru consolidarea materialului instructiv la tema Baze de date profesorul poate propune elevilor
următoarea sarcină:
1. Elaboraţi şi completaţi baza de date LIBRARY.MDB cu câmpurile: Autor (text), Titlul cărţii
«text), Ţara editării (text), Anul editării (numeric).
2. După completarea bazei de date efectuaţi următoarele operaţii:
a) în baza de date redactaţi şi formataţi datele;
b) aranjaţi datele (câmpul Titlul cărţii) după ordinul alfabetic;
c) aranjaţi datele după anul editării în ordinea descreşterii, iar în cadrul fiecărei grupe formate
după an - pe autori în ordinea alfabetică (câmpurile Anul editării şi Autorul)',
d) în baza de date adăugaţi câmpurile Preţul unitar şi Cost, în primul înscrieţi preţurile unitare
pentru cărţile respective;

77
e) calculaţi costul a 300 de cărţi de fiecare denumire; plasaţi datele în câmpul Cost;
f) selectaţi cărţile: 1) denumirile cărora încep cu cuvântul „Bazele...”; 2) numele autorilor căron
încep cu litera „C”; 3) care au fost editate după 1989.

La finalizarea studierii aplicaţiei Excel, cu scopul consolidării cunoştinţelor, elevilor li se poi


propune diverse teme pentru proiecte individuale sau de grup:
• Evidenţa reuşitei claselor a VUI-a a şcolii;
• Inventarierea cabinetului de Informatică;
• Baza de date a clasei; etc.
în sarcini vor fi incluse formatarea tabelelor, utilizarea calculelor, construirea diagramelor,
sortarea şi selectarea datelor.

2.2.5. Algoritmi

Planificare tematică orientativă


Număr
Tema
de ore
Algoritmi
Algoritmi şi executanţi 2
Subalgoritmi 2
Algoritmi repetitivi. Ciclu cu contor 3
Algoritmi repetitivi. Ciclu cu condiţie 2
Evaluarea curentă 1
Algoritmi cu ramificări 2
Algoritmul de funcţionare a calculatorului 2
Generalităţi despre algoritmi 2
Evaluarea sumativă 1

Total 17
Predare-învăţare 15 ore
Evaluare 2 ore

Obiective:
Algoritmi şi executanţi
După studierea temei, elevii vor fi capabili:
- să descrie şi să utilizeze setul de instrucţiuni ale executantului;
- să explice modul de execuţie a algoritmilor;
- să poată formula algoritmi destinaţi operaţiilor aritmetice;
- să elaboreze algoritm pentru executant;
- să cunoască deosebirea dintre modul de comandă prin program şi modul de comandă manuală;
- să poată crea programele simple pentru executanţi.
Subalgoritmi
După studierea temei, elevii vor fi capabili:
- să explice modul de transfer al controlului în cazul apelului unui subalgoritm;
- să poată crea subprogramele pentru executanţii Cangurul şi Furnica;
- să utilizeze metoda selecţiei succesive.
3 t
Algoritmi repetitivi. Ciclu cu contor. Ciclu cu condiţie
După studierea temei, elevii vor fi capabili:
- să definească formatul general şi să utilizeze instrucţiunile de ciclu;
- să precizeze numărul de execuţii al instrucţiunilor dintr-un ciclu;
- să cunoască deosebirea dintre instrucţiunea simplă şi instrucţiunea compusă;
- să elaboreze algoritmi în care se utilizează instrucţiunile de ciclu. , .y
Algoritm cu ramificări Instrucţiunea de ramificare
După studierea temei, elevii vor fi capabili:
- să definească formatul general şi să utilizeze instrucţiunea de ramificare;
- să cunoască deosebirea dintre algoritmii liniari şi algoritmii cu ramificări, algoritmii repetitivi
şi algoritmii cu ramificări;
- să elaboreze algoritmi în care se utilizează instrucţiunea de ramificare.
Proprietăţile algoritmilor. Metode de reprezentare a algoritmilor (limbajele algoritmice, schemele
logice)
După studierea temei, elevii vor fi capabili:
- să cunoască proprietăţile fundamentale ale algoritmilor;
- să utilizeze diferite metode de reprezentare a algoritmilor;
- să poată formula algoritmul de funcţionare a unui calculator numeric.
Clasificarea algoritmilor
După studierea temei, elevii vor fi capabili:
- să cunoască proprietăţile de bază ale algoritmilor;
- să identifice structura algoritmilor (liniari, cu ramificaţii, ciclici);
- să cunoască avantajele şi dezavantajele fiecărui mod de notare a algoritmilor;
- să descrie procesul de elaborare a unui algoritm;
- să explice termenul gândirea algoritmică şi cultura informaţională;

--------- Recomandări, completări


ţ j | - ■ -: ________________ ' |
O mare semnificaţie în procesul studierii algoritmilor are noţiunea de Executant al algoritmului.
Ideea Executantului ca dispozitiv, care îndeplineşte unele comenzi reiese din ideea broaştei-ţestoase
.ui Peipert. Executantul algoritmului este un obiect care îşi schimbă propria stare sub influenţa unei
succesiuni a comenzilor externe (programelor) în conformitate cu o anumită înţelegere. Executantul se
foloseşte drept un mijloc metodic „ideal”, care permite introducerea noţiunilor generale ale
rigoritmizării şi rezolvarea problemelor în mediul evident, eliberat de complicaţiile matematice.
Noţiunea de Executant este nedeterminată (la fel cum sunt nedeterminate noţiunile punct şi linie) şi
>e formulează pe parcursul practicii. Profesorul trebuie de la început să aducă la cunoştinţa elevilor
orele idei principale despre „locul de trai” al executantului („locul de trai” poate reprezenta peretele şi
timpul finit sau infinit, orientat după laturile orizontului, cu carouri vopsite sau nu) şi despre sistemul
comenzilor executantului (fiecare executant poate îndeplini numai comenzile aflate într-o listă finită).
Pe lângă aceasta, profesorul trebuie să atenţioneze elevilor la faptul, că omul nu este unicul executant
ii algoritmilor; că noţiunile de subiect al dirijării, de obiect al dirijării şi de scopul dirijării reprezintă
iiferite laturi ale activităţii cu executantul; că orice executant este alcătuit din dispozitivul de dirijare şi
ifin „instrumentul de lucru”; că pentru rezolvarea problemelor asemănătoare executantul cu setul „mai
sărac” de acţiuni posibile cere algoritmi mai complicaţi şi mai detaliaţi; că diferite clase ale
rroblemelor cer diferite seturi de acţiuni posibile şi diferiţi executanţi.

79
Ideea că subiectul întotdeauna participă la procesul de dirijare, iar conexiunea inversă
corectează acţiunile subiectului este foarte importantă în însuşirea temei de algoritmizare.
Informatica aduce în această schemă un conţinut nou: rolul subiectului poate fi executat de
computer, căruia utilizatorul l-a transmis în prealabil un algoritm de dirijare.
Elevilor li se explică faptul că pentru înregistrarea algoritmilor pot fi utilizate metode variate.
Unele dintre ele sunt orientate spre executant-om, altele - spre executarea algoritmilor de către
computer, sau sunt auxiliare şi se folosesc cu scopul înlesnirii instruirii. In cursul informaticii
şcolare, de regulă, se utilizează trei tipuri principale de înregistrări ale algoritmilor: 1) înregistrarea
verbală (succesiunea rândurilor enumerate scrise în limbajul natural; limbajul algoritmic instructiv);
2) înregistrarea în forma unei scheme logice (organigrama); 3) înregistrarea într-un mediu al unui
limbaj de programare.
Analizăm mai detaliat tipurile de înregistrare a algoritmilor.
Modul verbal de înregistrare a algoritmilor este auxiliar şi se utilizează la etapa iniţială a
abordării algoritmilor. El este predestinat executării algoritmului de către om. Forma înregistrării
operaţiilor în acest caz poate fi liberă, dar pe deplin justificată şi precisă.
Limbajul algoritmic instructiv reprezintă un mijloc intermediar între limbajul natural şi un
limbaj de programare. El se utilizează cu scopul de a înregistra structura formală a algoritmului într-
un limbaj natural, ceea ce uşurează elevilor înţelegerea procesului algoritmizării. în cursul şcolar se
studiază procesul de elaborare a programelor în mediile programate Cangurul şi Furnica.
înregistrarea algoritmului în mediul unui limbaj de programare este necesar pentru a realiza un
algoritm concret cu ajutorul computerului.
Schema logică a unui algoritm reprezintă un sistem de construcţii geometrice legate reciproc.
Fiecare element ai acestor construcţii înseamnă o etapă a procesului rezolvării problemei şi se
numeşte bloc. Utilizarea schemelor logice permite:
- să fie reprezentate construcţiile de bază ale algoritmului;
- să fie concentrată atenţia elevilor pe structura algoritmului şi nu pe sintaxa limbajului;
- să fie analizate structurile logice ale algoritmului;
- să fie utilizat principiul de bloc rezolvând pe grupe o problemă complicată;
- să fie examinat rapid algoritmul la nivelul unei idei;
- să fie analizat un număr mare al problemelor instructive.
în continuare se propune algoritmul problemei de aflare a numărului minim dintre numerele A şi B prin modul
verbal de înregistrare şi se prezintă schem a logică a algoritmului.

Modul verbal de înregistrare a algoritmului'.


1. Se dau valorileA şiB.
2. Dacă A < B, atunci luiY ise atribuievaloareaA, altfel luiY ise atribuievaloarea B.
3. Se înregistrează răspunsul Y.
4. Sfârşit.
Algoritmul poate fi verificat prin completarea unui tabel de valori (vezi exemplele din tab. 2.2.1, 2.2.2) ale
variabilelor aflate după fiecare etapă a rezolvării:
Tabelul 2.2.1. Tabelul de valori pentru B<A

Etapa
A B Y Explicaţii
nr.
i 8 3 - Citim valorile A, B
8 3 - 8<3 - false, astfel, lui Y i se atribuie valoarea 3 (alegem
8 3 3 acţiunea care merge după cuvântul altfel)
3 8 3 3 înregistrăm răspunsul: Y=3

80
Tabelul 2.2.2. Tabelul de valori pentru A<B

Etapa
A B Y Explicaţii
nr.
i 8 13 - Citim valorile A, B
2 8 13 - 8<13 - adevărat, astfel, lui Y i se atribuie valoarea 8
8 13 8 (alegem acţiunea care merge după cuvântul atunci)
3 8 13 8 înregistrăm răspunsul: Y=8

Schema logică a algoritmului pentru a soluţiona această problemă reprezintă un algoritm cu ramificare şi poate fi
prezentată în felul următor:

în cazul general algoritmii se realizează prin trei structuri principale: algoritmi liniari, mg. inii
repetitivi, algoritmi cu ramificări. Urmează unele recomandări despre modul de explicare a
comenzilor: DACĂ, REPETĂ N ORI şi CÎT:
1. Mecanismul de ramificare constă în aceea, că din două comenzi se îndeplineşte una. La
reprezentarea algoritmilor sub formă de ramificare (comanda DACĂ) condiţia poaie fi înţeleasă ca
o întrebare cu două răspunsuri posibile: „da” sau „nu”. Apare o problemă: care comandă se
îndeplineşte? Răspunsul depinde de condiţie. Explicarea verbală a comenzii de ramificare este:
“Dacă condiţia este satisfăcută, atunci este executată secvenţa ce urmează după „da”, în caz contrar
- secvenţa „nu”.
2. în activitatea sa practică omul se ciocneşte deseori de probleme, a cărora rezolvare necesită
repetarea de multe ori a aceloraşi operaţii, adică ciclarea lor (comanda REPETĂ N ORI). Anume
pentru aceasta se foloseşte instrucţiunea repetitivă. Mecanismul de ciclare are o deosebită
însemnătate pentru alcătuirea algoritmilor executaţi la calculator, deoarece permite executarea cu
ajutorul unor algoritmi relativ scurţi să fie scrise prescripţii de înfăptuire a unor succesiuni foarte
lungi de operaţii, pentru care e necesară o rapiditate mare a calculatorului. Profesorul trebuie să
sublinieze caracterul neîntrerupt al scrierii instrucţiunilor: analogia cuvântului îc (începutul
ciclului) cu paranteza de deschidere şi sc (sfârşitul ciclului) cu paranteza de închidere.
3. Procesul de învingere a stereotipului de dirijare directă a executorului şi cel de înţelegere a sensului
comenzii CÎT poate fi astfel: profesorul desenează pe tablă un câmp de lucru, poziţionează într-un
loc un fel de Executant, comunică elevilor sistemul comenzilor Executantului şi propune elevilor
să alcătuiască un algoritm, conform cărui Executantul să ajungă la peretele din dreapta. De la
început elevii dau răspunsurile concrete (“2 paşi la dreapta” sau alte răspunsuri - conform poziţiei
Executantului). Dar în cazul general, dacă poziţia Executantului nu este clarificată, răspunsul
concret nu poate fi dat. Astfel elevii propun condiţia “cît”: Executorul merge „cît drumul din partea
dreaptă este liber”.

81
De regulă, problemele instructive de creare şi de examinare a algoritmilor pot fi împărţite în patru
categorii:
1. Găsirea greşelilor într-un algoritm.
2. Determinarea rezultatului îndeplinirii algoritmului.
3. Crearea unui anumit algoritm.
4. Crearea unui model matematic, alcătuirea algoritmului de comportare a acestui model şi, la sfârşit,
- scrierea programului.
în continuare sunt propuse unele metode utilizate la lecţiile de algoritmizare cu privire la aceste
patru categorii de activitate:
A. La începutul studierii temei de algoritmizare pot fi propuse elevilor unele probleme, pentm
rezolvarea cărora profesorul alcătuieşte prealabil un algoritm greşit. Elevii găsesc greşelile şi
corectează algoritmul.
B. Pentru înţelegerea mai profundă a temei profesorul poate utiliza variate metode de obţinere a
rezultatului efectuării algoritmului, de exemplu, prin completarea unui tabel auxiliar:
Subiectul: dacăR<=6, atunci F=R+1;
dacă 6<R<=16, atunci F=R-10;
dacă 16<R<=21, atunci F=22-R *2;
dacă 2 1<R, atunci F=2*R+3.
Elevii sub conducerea profesorului scriu în tabel valorile aleatorii ale lui R, calculează valorile F şi completează
tabelul (vezi exemplul ce urmează):

R -5 0 78 20 -20 8,34 -0,01 17,02 16,99


F -4 1 159 -18 -19 -1,66 0,99 -12,04 -11,98

C. De la începutul studierii capitolului, elevilor li se explică faptul, că există o mulţime de definiţii ale
algoritmilor. De exemplu: prin algoritm se înţelege o prescripţie (indicaţie) precisă şi clară pentru
un executant de a efectua o succesiune de operaţii, care sunt orientate spre atingerea scopului
indicat sau spre rezolvarea problemei formulate.
Reieşind din definiţia propusă mai sus creăm algoritmul traversării străzii de un pieton. în acest caz elevii pot fi
împărţiţi în două grupe (în fruntea fiecărei grupe va fi un căpitan).
a) sarcina pentru prima grupă: să creeze algoritmul traversării străzii printr-un pasaj fără semafor;
b) sarcina pentru a doua grupă: să creeze algoritmul traversării străzii printr-un pasaj cu semafor.
Pentru varianta a) algoritmul va fi:
Se ştie: Există o stradă fără semafor cu un trafic intens şi un pieton.
Să se qfle\ Modul de traversare a străzii de către pieton.
1) Pietonul trebuie să se oprească pe trotuar.
2) Pietonul trebuie să se uite la stânga.
3) Dacă transportul lipseşte, pietonul trebuie să treacă până la mijlocul străzii şi să se oprească, altfel - să aştepte
până la trece transportul, după aceasta să meargă până la mijlocul străzii şi să se oprească.
4) Pietonul trebuie să se uite la dreapta.
5) Dacă transportul lipseşte, pietonul trebuie să treacă până la partea opusă a străzii, altfel - să aştepte până la trece
transportul, după aceasta să meargă până la partea opusă a străzii.
6) Sfârşit.
Pentru varianta b) algoritmul va fi:
Se ştie: Există o stradă dirijată de semafor şi un pieton.
Sase afle: Modul de traversare a străzii de către pieton.
1) Pietonul trebuie să se oprească pe trotuar în faţa semaforului.
2) Pietonul trebuie să se uite la semafor.
3) Dacă semaforul este roşu, pietonul trebuie să aştepte până la apărea semnalul verde
4) Dacă semaforul este verde, pietonul trebuie să traverseze strada până la partea ei opusă.
5) Sfârşit.
Rezolvarea acestei probleme demonstrează metoda detalierii pe paşi, utilizată în construirea algoritmilor prin
divizarea activităţilor luate în întregime în acţiuni concrete. Din punct de vedere didactic, metoda detalierii pe paşi joacă un
rol important în procesul dezvoltării posibilităţilor de comunicare a elevilor în timpul lucrului, rezolvării colective a
problemelor complicate. Utilizând această metodă elevii obţine următoarele deprinderi: divizarea acţiunilor între diferiţi
participanţi ai lucrului pe parcursul rezolvării unor probleme şi cooperarea lor la sfârşitul lucrului; adoptarea metodelor
străine de rezolvare a problemelor; controlarea şi evaluarea mutuală a activităţii. Profesorul explicând modul de creare a
algoritmului poate folosi formele individuală sau frontală de lucru.

D. Crearea unui model matematic, alcătuirea algoritmului de comportare a lui şi scrierea programului
cere priceperi speciale. Profesorul trebuie să explice elevilor, că elaborarea corectă a algoritmului şi
efectuarea acţiunilor asociate cere respectarea următoarelor condiţii;
a) stabilirea succesiunii clare a operaţiilor;
b) determinarea tipului datelor iniţiale;
c) folosirea cea mai bogată a variabilelor în loc de date concrete;
d) constituirea dispozitivelor de introducere a datelor în computer şi de reprezentare a
rezultatelor;
e) declararea tuturor formulelor şi condiţiilor necesare pentru rezolvarea problemei.
în capitolul respectiv al manualului [4] se studiază procesul de elaborare a programelor în mediul
aplicaţiilor Cangurul şi Furnica. Cu ajutorul acestor programe elevilor pot fi explicate în forma
ilustrativă diferite tipuri de algoritmi; liniari, ciclici şi de ramificare.
Unele exemple de desenare a obiectelor în programul Cangurul sunt date în următoarele patru programe:
Programul 1. Scara Programul 2. Scara
(folosirea comenzii repeta; (folosirea comenzii cit;
vezi fig. 2.2.4) vezi fig. 2.2.5)
/ / d e s e n a ţi / / d e s e n a ţi
/ / o sc a ra / / o sc a ra
/ / fo lo s in d / / fo lo s in d
/ / r e p e ta // c it
p ro c e d u ra a p ro c e d u ra a
/ / lin ia / / lin ia
/ / o riz o n ta la / / o riz o n ta la
re p e ta 5 o r i re p e ta 5 o r i
pas pas
s f ir s itu l re p e tă rii s f ir s itu l re p e tă rii
/ / lin ia / / lin ia
/ / v e rtic a la / / v e rtic a la
ro tire ro tire
re p e ta 5 o r i re p e ta 5 o r i
pas pas
s f ir s itu l re p e tă rii s f ir s itu l re p e tă rii
//ro tire / / ro tire
re p e ta 3 o r i re p e ta 3 o r i
ro tire ro tire
s f ir s itu l re p e tă rii s f ir s itu l re p e tă rii
s f i r s i t u l p ro c e d u rii s f i r s i t u l p ro c e d u rii
rL r
re p e ta 3 o r i c i t nu e m a r g in e
e x e c u ta a e x e c u ta a
s f i r s i t u l re p e tă rii] s f i r s i t u l c ic lu lu i]

83
Programul 3. Patrat Programul 4. Spirala
(folosirea comenzilor (folosirea comenzilor
repeta, cît, dacă', cît, d acă ;
vezi fig. 2.2.6) vezi fig. 2.2.7)
// desenaţi // desenaţi o spirala
/ /un patrat [
procedura a cit nu e linie
cit nu e margine pas
pas daca e linie
sfirsitul ciclului rotire
sfirsitul procedurii sfirsitul ciclului]
procedura b
daca e_margine atunci
rotire
altfel
cit nu e margine
pas
sfirsitul ciclului
sfirsitul procedurii
repeta 4 ori
executa a
executa b
sfirsitul repetării]

Figura 2.2.4. Scara Figura 2.2.5. Scara

Figura 2.2.6. Pătrat Figura 2.2.7. Spirala


Următoarele probleme şi exerciţii [7], orientate spre elaborarea algoritmilor, pot fi utilizate adăugător la lecţiile de
Informatică şi pentru lucrul independent al elevilor:

• Daţi exemple de executant-animal (câine), de executant-om (şofer), de executant-colectiv (uzină), de executant-


maşină (automobil).

• Răspundeţi la întrebările: Poate fi definit computerul în calitate de executant? (Da). Este diferenţă dintre
executant-om şi executant-maşină? (Nu).
• Pe tabla de şah schimbaţi cu locurile calul alb şi calul negru ştiind că ei merg după regulile de şah.
• Un borcan de 8 litri este plin cu apă. împărţiţi apa în două părţi egale, folosind 2 borcane cu capacitatea de 3 litri şi
5 litri.

• Un executant poate efectua numai operaţiile de înmulţire a unui număr la 2 şi de mărirea lui cu 1. Alcătuiţi pentru
acest executant algoritmul obţinerii numărului 100 din numărul 1 utilizând un număr minimal de acţiuni.
Rezolvare'. 100-50-25-24-12-6-3-2-1; 8 acţiuni.
• Executantul poate obţine din orice fracţie de tip a/b altă fracţie de un tip ca:
(a-b)/b; (a+b)/b; b/a.
Cum putem obţine din fracţia 1/2 fracţia 1/4 ?
Rezolvare: 1/2 —» 2/1 —> 3/1 —* 4/1 —►1/4.
• Un om are nevoie să transporte peste un râu un lup, o capră şi o varză. într-o barcă în afară de om poate fi luat sau
lupul, sau capra, sau varza. Dar lupul împreună cu capra şi capra împreună cu varza nu pot fi lăsaţi pe malul râului
fără supraveghere. Ce rezolvare puteţi să propuneţi?
• O sarcină axată pe pregătirea elevilor pentru abordarea noţiuni de tablouri bidimensionali (fig. 2.2.8). Aranjaţi
animalele în celule după adresa dată:

Figura 2.2.8. Aranjarea animalelor

• Pentru o filmare se cere un băiat de 14-16 ani, care poate conduce automobilul sau motocicleta. Descrieţi
algoritmul alegerii candidatului pentru participarea lui la film.
• Automobilul a trecut cu diferite viteze trei sectoare de drum. Alcătuiţi algoritmul aflării vitezei medii a
automobilului dacă viteza automobilului şi lungimile sectoarelor sunt cunoscute.

85
Pentru schema de calcul (fig. 2.2.9) găsiţi valoarea variabilei în punctul de ieşire. Valoarea a în punctul de întrare
este indicată de profesor.

Figura 2.2.9. Schema de calcul.

în cadrul studierii acestei teme, elevilor poate fi recomandată o algoritmotecă [3] (vezi Anexa 1).

REFERINŢE
1. Bolun I., Covalenco I. Bazele informaticii aplicate, Editura ASEM, Chişinău, 1999
2. Informatică. Curriculum şcolar pentru clasele a Vll-a - a LX-a, Editura Univers Pedagogic,
Chişinău, 2006
3. Erşov A. Bazele informaticii şi ale tehnicii computaţionale / Partea 1, Chişinău, Lumina, 1987
4. Gremalschi A., Gremalschi L. Informatica / Manual pentru clasa a VIII-a, Chişinău, Ştiinţa, 2004
5. Vasilache G., Mocanu Iu., Covalenco I. ş.a. Windows. Word. Excel. Access, C.N.T.I., Chişinău,
1999
6. Семакин И., Хеннер E. Задачник-практикум по информатике (7-11 класс), Издательство
«Бином», 19997
7. Софронова Н. Методика преподавания информатики /Учебное пособие, ЧГПИ, Чебоксары,
Москва, 1997
2.3. Informatica în clasa a IX-a

2.3.1. Vocabularul şi sintaxa limbajului PASCAL

Planificare tematică orientativă


Număr de
Tema
ore
Vocabularul şi sintaxa limbajului PASCAL
Iniţiere în limbajul PASCAL. Metalimbajul BNF 1
1
Diagrame sintactice 1
Alfabetul limbajului. Vocabularul limbajului. Simbolurile
speciale şi cuvintele-cheie. Identificatori 1
Numere 1
Şiruri de caractere 1
Etichete. Directive. Separatori

Total 6
Predare-învăţare 6 ore

Obiective:
Metalimbajul BNF. Diagrame sintactice
După parcurgerea capitolului, elevii vor fi capabili:
- să cunoască destinaţia unui metalimbaj;
- să explice modul de descriere a construcţiilor gramaticale prin alternare, concatenare, repetare
şi includere opţională;
- să cunoască destinaţia diagramelor sintactice;
- să aplice formulele BNF, simbolurile terminale şi cele neterminale în diagrame sintactice.
Iniţiere în limbajul PASCAL
După parcurgerea capitolului, elevii vor fi capabili:
- să recunoască părţile componente ale unui program PASCAL: antetul, partea declarativă,
partea executabilă, simbolurile speciale şi cuvinte-cheie;
- să aplice şi să utilizeze regulile de formare a identificatorilor;
- să poată introduce şi lansa în execuţie un program PASCAL.
Numere. Şiruri de caractere
După parcurgerea capitolului, elevii vor fi capabili:
- să descrie formulele metalingvistice şi diagramele sintactice pentru definirea numerelor şi
şirurilor de caractere;
- să cunoască scopul utilizării etichetelor în programele PASCAL;
- să cunoască destinaţia directivelor;
- să cunoască destinaţia separatorilor.

87
> în clasa a IX-a se începe studierea limbajului de programare PASCAL. Introducerea acestui obiect
de studiu are ca obiectiv principal atât dezvoltarea culturii informaţionale cât şi a gândirii
algoritmice. Manualul de Informatică pentru clasa a VUI-a conţine capitolul Algoritmi, în care sunt
date noţiunile de algoritm, executant, proprietăţile principale şi metodele de reprezentare a
algoritmilor. Cunoaşterea acestor termeni şi utilizarea lor corectă facilitează considerabil
rezolvarea problemelor concrete cu ajutorul calculatorului. Datorită acestui fapt, la primele lecţii
din clasa a IX-a, repetarea, în linii generale, a acestor teme ar fi un avantaj pentru studierea
limbajului de programare. Cu acest scop la aceste lecţii se reactualizează cunoştinţele elevilor la
capitolul Algoritmi şi li se propun informaţii suplimentare la tema dată, cum ar fi, schema ce
reprezintă etapele soluţionării unei probleme utilizând un sistem de calcul, specificarea lor, precum
şi exemple de rezolvare a problemelor parcurgând aceste etape.
Etapele soluţionării unei probleme utilizând un sistem de calcul pot fi reprezentate prin următoarea
schemă:

. s «, ------------------- v
Elaborarea unui Codificarea Testarea şi
Specificarea ► algoritm pentru ► algoritmului într-un validarea
problemei Progra­ Imple­
Analiza găsirea soluţiei limbaj de programare programului
marea mentarea
V J

Prima etapă constă în analiza problemei:


- se elaborează enunţul complet şi precis al problemei;
- se identifică informaţiile de prelucrat (datele de intrare) şi rezultatele cerute (datele de ieşire);
se specifică ce urmează să realizeze programul - funcţia lui;
se stabilesc reprezentarea şi organizarea datelor de intrare şi de ieşire pe suporturile externe de
informaţie.
A doua etapă, determinarea algoritmului, constituie, ca regulă, cea mai complicată parte a procesului
de rezolvare a problemei şi necesită cunoştinţe din diferite domenii. La această etapă trebuie să fie
elaborată o listă de comenzi, ce va corespunde secvenţei de operaţii, pe care trebuie să le execute
calculatorul pentru a soluţiona problema. Unei probleme simple îi va corespunde un singur algoritm.
care va fi codificat într-un modul de program. O problemă complexă va fi descompusă în subprobleme
mai simple, fiecare având un algoritm de rezolvare, iar programul elaborat va reprezenta un sistem de
module program. Modularizarea facilitează atât determinarea algoritmului, cât şi procesele de
codificare, depanare şi testare a programelor.
Codificarea algoritmului se efectuează cu ajutorul unui limbaj de programare şi este facilitată de
utilizarea unor simboluri şi reguli speciale în cadrul etapei precedente (organigrame, limbaj
algoritmic, diagrame de structură etc.) Rezultatul acestei etape este programul, care va fi „înţeles” ş:
de calculator. Limbajul de programare este ales în conformitate cu specificul problemei, cu
particularităţile sistemului de calcul şi, nu în ultimul rând, cu experienţa programatorului.
Testarea şi validarea programului constă în verificarea programului şi eliminarea erorilor de sintaxi
şi a celor de logică.
Exemplu: Se consideră următoarea problemă:

Fiind daţi coeficienţii unei ecuaţii de gradul II, a, b şi c, de tip real, să se calculeze (dacă există) rădăcinile reale
ale acesteia, în caz contrar să se afişeze un mesaj corespunzător.

Specificarea problemei:
1. mărimi de intrare: a, b şi c;
mărimi de ieşire: x l şi x2;
2. funcţia programului: calculează rădăcinile reale ale ecuaţiei a r + bx + c = 0
(dacă există) sau afişează mesajul „Ecuaţia nu are rădăcini reale":
3. organizarea şi reprezentarea datelor de intrare/ieşire pe suportul extern: datele de intrare se citesc de la tastatură,
iar rezultatele se afişează pe ecran.
Algoritmul de soluţionare a ecuaţiei de gradul II:
1. Citeşte de la tastatură coeficienţii a, b şi c.
2. Dacă a=0 afişează mesajul „Ecuaţia nu este de gradul II”. Stop.
3. Calculează delta=b2-4ac.
4. Dacă delta<0 afişează mesajul „Ecuaţia nu are rădăcini reale”. Stop.

5. Calculează x l ş i x2 .
2a 2a
6. Afişează la ecran valorile x l şi x2.
Acest algoritm poate fi reprezentat de asemenea prin organigramă (schema logică) (vezi fig.2.3.1) şi poate fi scris în
limbajul de programare PASCAL după cum urmează:

program Ecuaţie;
var a,b,c,delta,xl,x2:real;
BEGIN
readln (a,b,c);
if a=0 then writeln ('Ecuaţia nu este de gradul II')
else
begin delta:=b*b-4*a*c;
if delta<0 then
writeln ('Ecuaţia nu are rădăcini reale')
else
begin xl:=(-b+sqrt(delta))/(2*a);
x2:= (-b-sqrt(delta))/ (2*a);
writeln(xl,' ',x2)
end;
end;
END.

> Este foarte important ca programele vizate în prima temă a capitolului dat Iniţiere în limbajul
PASCAL [7] să fie introduse şi executate pe calculator. Astfel elevii pot examina părţile
componente ale unui program, dar pot fi atenţionaţi şi la sintaxa, semantica limbajului de
programare, pe care le vor studia în continuare.
> Elevii trebuie să studieze lista cuvintelor-cheie [7, pag. 18], să o memoreze şi pentru fiecare
cuvânt rezervat să cunoască atât scrierea şi pronunţarea corectă a lui, cât şi traducerea în limba
română. Profesorul va recomanda elevilor lucrul cu dicţionarul. Evaluarea poate fi făcută printr-o
dictare sau autodictare. Memorarea cuvintelor-cheie va facilita în continuare scrierea declaraţiilor,
instrucţiunilor, evitarea utilizării acestor cuvinte în calitate de identificatori.
> La tema Alfabetul limbajului se face trimitere la tabelul codurilor ASCII [7, pag. 16], tabel care
poate fi demonstrat elevilor utilizând manualul pentru clasa a Vil-a [8, pag. 10], sau pentru clasa a
X-a [5, pag. 13].
> în manualele de Informatică [6, 7] expunerea materialului este bazată în special pe limbajul
standard PASCAL, iar practic, în şcoală, se lucrează cu implementările acestui limbaj (cum ar fi,
spre exemplu, mediul de programare TURBO PASCAL 7,0). Din această cauză, predarea unor
teme trebuie să fie însoţită de specificări pentru implementările limbajului. Recomandările
ulterioare vor conţine unele exemple de acest fel.

89
> în TURBO PASCAL un identificator poate începe şi/sau poate conţine simbolul iar etichetele
pot fi şi identificatori.
> Numerele întregi pot fi scrise şi în notaţie hexazecimală prin prefixare cu simbolul $.
> Simbolurile echivalente (.,.) şi [, ] pot fi amestecate, iar cele pentru desemnarea comentariului - nu.
De exemplu: corect: var T: a rra y (. 1 .. 2] of integer;
greşit: (* aici s-a calculat suma }
> în TURBO PASCAL pot exista comentarii imbricate, dacă se folosesc alternativ perechile de
simboluri {} şi (* *). De exemplu: {acestea sunt comentarii (*imbricate*)}

Fig. 2.3.1. Organigrama soluţionării ecuaţiei de gradul II

Erori frecvente
•- zMăS.: ■: ■■" ■*=>

La scrierea identificatorilor nu se ia în consideraţie echivalenţa dintre literele mari şi mici, ceea


ce duce adeseori la eroarea duplicate identifîer (identificator dublu). De exemplu, se notea
latura pătratului prin a şi aria lui prin A, sau pentru două numere m şi n se calculează me J
aritmetică utilizând identificatorul M.
Elevii utilizează în scrierea identificatorilor litere diacritice. Pentru ai atenţiona asupra acestei
lacune, trebuie aduse cât mai multe exemple de identificatori alcătuiţi corect, care desemnează
cuvinte ce conţin litere diacritice. De exemplu, pentru cuvântul Şir (de caractere, de numere): Sir,
sir, shir, Shir, S.

In scrierea unui număr real se utilizează virgula în loc de punct,

este pentru evaluare sau autoevaluare


-------- I--------- — --------- — -------------------------------------------- i________ i______________________ m — ■ —

Indicaţi care este afirmaţia adevărată dintre cele ce urmează:


a) cuvântul var este un cuvânt utilizator;
b) în antetul programului se declară toate variabilele utilizate în program;
c) cuvântul rezervat end urmat de punct se întâlneşte în program o singură dată;
d) un simbol special poate fi alcătuit din două caractere, dacă ele sunt separate prin spaţiu
1 Următorul fragment de program conţine câte o eroare în fiecare linie:
program pr.1;
[acesta este antetul programului]
constant P=3.14;
var a, b, c, d, e, f,x, y, z: reale;
Care este afirmaţia ce indică corect eroarea de sintaxă din linia respectivă?
a) în linia 1 identificatorul p r.l nu trebuie să conţină punctul;
b) comentariul din linia 2 trebuie să fie scris în linia 1, în continuarea antetului;
c) în linia 3 constanta trebuie să fie desemnată prin identificatorul P i;
d) în linia 4 simt declarate mai mult de 8 variabile într-o singură linie
3. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) literele diacritice nu pot apărea într-un identificator;
b) identificatorul SirDeCaractere este incorect dacă se scrie Sir_De_Caractere;
c) nici unul din identificatorii Ş a s e , OF, 2 _ P r , A+B nu este corect;
d) simbolul special (* este echivalentul parantezei [
4. Ce va apărea la ecran la afişarea şirului de caractere 'Anul ”99':
a) Anul "99 b)Anul'99 c)Anul 99 d)Anul '99
î. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) numerele 12 7e-5, 12.7e-4, 1 . 27e-3, şi 0 . 127e+2 reprezintă una şi aceeaşi valoare;
b) un număr întreg poate începe cu un semn;
c) numărul IE I nu este scris corect;
d) comentariul poate fi scris după fiecare instrucţiune
6. Indicaţi care este afirmaţia adevărată dintre cele ce urmează:
a) numai comentariul poate fi considerat un separator;
b) orice număr întreg fără semn poate reprezenta o etichetă;
c) în orice loc al programului se poate introduce un spaţiu;
d) un şir de caractere poate conţine semne diacritice7
7. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) literele majuscule şi minuscule apar drept caractere distincte în identificatori;
b) literele majuscule şi minuscule apar drept caractere distincte în şiruri de caractere;
c) un identificator poate să înceapă cu simbolul
d) caracterul separator trebuie să apară în mod obligatoriu la sfârşitul instrucţiunii

Răspunsuri: Testul 1: c); Testul 2: a); Testul 3: a) şi c); Testul 4: d);


Testul 5: b) şi d); Testul 6: d); Testul 7: b) şi c)

91
2.3.2. Tipuri de date simple

Planificare tematică orientativă


Număr
Tema
de ore
Tipuri de date simple
Conceptul de date. Tipul de date i n t e g e r 1
Tipul de date r e a 1 1
Tipul de date b o o le a n . Tipul de date c h a r 1
Tipul de date enumerare 1
Evaluarea curentă 1
Tipul de date subdomeniu 1
Generalităţi despre tipurile ordinale de date 1
Definirea tipurilor de date 1
Declaraţii de variabile. Definiţii de constante 1
Evaluarea sumativă 1

Total 10
Predare-învăţare 8 ore
Evaluare 2 ore

Obiective:
Conceptul de dată. Definirea tipurilor de date
După parcurgerea capitolului, elevii vor fi capabili:
- să explice conceptul de dată în limbajul PASCAL;
- să cunoască cum se reprezintă datele în limbajul cod-calculator şi care sunt avantajele şi
dezavantajele acestei reprezentări;
- să precizeze mulţimea de valori şi mulţimea de operaţii ale tipurilor de date i n t e g e r ,
r e a l , b o o le a n şi c h a r ;
- să utilizeze corect tipurile de date enumerare şi subdomeniu.
Generalităţi despre tipurile ordinale de date. Variabile. Constante
După parcurgerea capitolului, elevii vor fi capabili:
- să descrie proprietăţile de bază ale tipurilor ordinale de date;
- să cunoască modalităţile de declarare ale variabilelor de diferite tipuri de date;
- să descrie diagramele sintactice şi formulele metalingvistice ale unităţilor gramaticale pentru
declaratori de variabile;
- să descrie diagramele sintactice şi formulele metalingvistice ale declaratorilor de constante.

> Tipurile de date întregi şi reale existente în TURBO PASCAL:


Tipuri întregi
TiP Domeniu de valori Format Constante predefmite
Byte 0..2 5 5 1 octet
Shortlnt -128.. 127 1 octet
Integer -32768 .. 32767 2 octeţi Maxlnt
Word 0 .. 65535 2 octeţi
Longlnt -2147483648 ..2147483647 4 octeţi MaxLonglnt
Tipuri rea e
Număr de cifre
Tip Domeniul valorilor absolute Format
semnificative
Single 1.5E-45 .. 3.4E38 4 octeţi 7-8
Real 2.9E-39 .. 1.7E38 6 octeţi 11-12
Double 5.0E-324 .. 1.7E308 8 octeţi 15-16
Extended 3.4E-4932 .. 1.1E4932 10 octeţi 19-20
Comp 0 .. 263-l 8 octeţi 19-20

> Tipul logic prédéfinit Boolean a fost completat cu încă trei tipuri booleene: ByteBool,
WordBool şi LongBool, care ocupă respectiv 1, 2 şi 4 octeţi de memorie. Aceste tipuri au fost
introduse din motive de compatibilitate cu alte limbaje şi cu mediul Windows.
> Pentru tipul Boolean s-a implementat operaţia logică disjuncţia logică exclusivă XOR. Tabelul
de adevăr al operaţiei date este:

X y x XOR y

false false false

false true true

true false true

true true false

> Operaţiile care se pot efectua cu valorile unui tip întreg pot fi completate cu următoare'e:
• AND - ŞI aritmetic: a AND b retumează o valoare întreagă, care se obţine prin efectuarea
conjuncţiei între biţii corespunzători ai lui a şi b. De exemplu, rezultatul operaţiei 50 AND 2 va
fi 2;
• OR - SAU aritmetic: a OR b retumează o valoare întreagă, care se obţine prin efectuarea
disjuncţiei între biţii corespunzători ai lui a şi b. De exemplu, 50 OR 2 va retuma valoarea 50;
• XOR - SAU EXCLUSIV aritmetic: a XOR b retumează o valoare întreagă, care se obţine prin
efectuarea operaţiei SAU EXCLUSIV între biţii corespunzători ai lui a şi b. De exemplu,
rezultatul operaţiei 50 XOR 2 va fi 48;
• NOT - negaţie aritmetică, operator unar cu rezultat întreg: NOT a se obţine prin efectuarea
operaţiei de negare asupra fiecărui bit al lui a. De exemplu, NOT 50 va retuma numărul
negativ -51;
• SHR - deplasare la dreapta (pe biţi): a SHR b retumează o valoare întreagă care se obţine prin
deplasarea la dreapta a lui a de b ori. De exemplu, 50 SHR 2 va furniza valoarea 12;
• SHL - deplasare la stânga (pe biţi): a SHL b retumează o valoare întreagă care se obţine prin
deplasarea la stânga a lui a de b ori. De exemplu, 50 SHL 2 va retuma valoarea 200. (Vezi
tema Reprezentarea numerelor întregi în calculator [5, pag. 37])
^ La expunerea tipului de date C har se face din nou trimitere la tabelul codurilor ASCII (vezi
recomandările la tema 2.3.1). La această temă se poate demonstra de ce setul extins ASCII include
doar 256 de caractere, fiecare caracter ocupând 8 biţi de memorie (2S=256). Cu acest scop li se
poate propune elevilor următorul exerciţiu: să alcătuiască tabele de coduri utilizând mai puţină
memorie pentru fiecare caracter - 1 bit, 2 biţi, 3 biţi şi să observe câte caractere vor conţine tabelele
în fiecare caz.

93
> Orice caracter se poate reprezenta punând în faţa codului său ASCII simbolul #. De exemplu, #67
va desemna caracterul C. Cunoaşterea acestei reprezentări le va fi utilă elevilor la temele
ulterioare, de exemplu, la afişarea elementelor unei mulţimi cu tipul de bază Char. Pentru exersare
li se poate propune următoarea sarcină: să scrie un program care să afişeze numele şi prenumele
fiecăruia, dar în locul caracterelor (litere minuscule, majuscule şi blancul ce separă numele de
prenume) să scrie codurile lor precedate de semnul #. Sarcina se complică, dacă elevilor nu li se dă
tabelul codurilor, ci doar codurile spaţiului (32), caracterelor A (65) şi a (97) celelalte urmând să
fie calculate. Este un exerciţiu pe cât de cognitiv pe atât de distractiv, deoarece, mai des, elevii îşi
afişează numele cu greşeli.
> în TURBO PASCAL există posibilitatea specificării limitelor tipului subdomeniu prin expresii
constante, cu respectarea condiţiei ca ambele expresii să aparţină aceluiaşi tip de date ordinal şi
prima să fie mai mică sau egală cu cea de-a doua. Totuşi, trebuie să fie evitat cazul când prima
expresie începe cu paranteza “(“, deoarece apare o ambiguitate sintactică: declaraţia unui tip
subdomeniu nu se poate distinge de o declaraţie a unui tip enumerare. De exemplu, declaraţia
type Interval = (n+l)*2 .. 100
se va înlocui cu
type Interval = 2*(n+l) .. 100
> Lista constantelor predefinite este completată cu Pi=3,1415926536 şi
MaxLongInt=2147483647
> Limbajul TURBO PASCAL oferă posibilitatea de a iniţializa variabile odată cu declararea
acestora, care se face la rubrica de constante. Din acest motiv variabilele date se numesc impropriu
constante cu tip, dar mai au un nume care le reprezintă mai exact: variabile iniţializate, deoarece
îşi pot schimba valoarea pe parcurs. De exemplu: c o n s t e : real=0.00001;
-—, ——-—:— j—- —
Erori frecvente

I Un interval de valori se desemnează cu trei puncte în loc de două.

I La declararea constantelor se foloseşte în loc de „=”

'■11 ■■ 1 ■
Teste nentru evaluare sau autoevaluare

1. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) Maxlnt este o constantă predefmită
b) în PASCAL numărul 0 , 0 01234 poate fi scris în felul următor: 1 2 .3 4 * E -4
c) tipul integer se reprezintă pe 16 biţi
d) cu valorile reale şi cu valorile întregi se pot efectua aceleaşi operaţii
2. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) rezultatele operaţiilor + , - , *, / , d i v şi mod cu valori întregi sunt deasemenea valori întregi
b) a/b retumează câtul împărţirii lui a la b
c) a div b retumează câtul împărţirii întregi între a şi b
d) operatorii and, or şi not sunt operatori binari
3. Indicaţi care este afirmaţia adevărată dintre cele ce urmează:
a) tipurile de date predefinite integer, real, char şi boolean pot fi citite de la tastatură cu ajut
procedurii-standard readln
b) tipurile de date predefinite integer, real, char şi boolean au o mulţime finită de valori
c) Disjuncţia şi suma logică sunt sinonime
d) Not X este False pentru orice valoare a lui X
Indicaţi care este afirmaţia adevărată dintre cele ce urmează:
a) X and Y este True atunci când una din valorile X sau Y este True
b) tipul de date char are o mulţime de 255 de valori
c) egalitatea C hr (O rd (x ) ) = x pentru x de tip char este adevărată
d) egalitatea O rd (C hr ( x ) ) = x pentru x de tip integer nu este adevărată
Ce va afişa următorul program?

type A n o tim p = ( i a r n a , p r i m a v a r a , v a ra , to a m n a ) ;
Timp = ( c a l d , r e c e ) ;
var a : a n o tim p ;
t : tim p ;
I: in te g e r;
BEGIN
a := p rim a v a ra ;
t:= c a ld ;
I:= o rd (a )+ o rd (v a ra )+ o rd (t ) ;
w rite ln ( I ) ;
END.*
9
.
i

a) 6
b) 3
c) I
d) nu va afişa nimic, programul are erori
fc. Indicaţi care este definiţia de tip corectă dintre cele ce urmează:
a) cifra =(zero, unu, doi, zece)
b) interjecţie = (ah, of, aoleu, vai)
c) riu = (Nistru, Nipru, Nil)
d) valuta = (leu, franc, $, dinar, DM)
Indicaţi care este afirmaţia adevărată dintre cele ce urmează:
a) valorile variabilelor de tip enum erare se citesc de la tastatură şi se afişează pe ecran cu ajutorul proceduriioi
r e a d l n şi w r i t e l n
b) tipul de bază al tipului de date subdomeniu poate fi oirce tip predefinit
c) tipul de bază al tipului de date subdomeniu nu poate fi un tip definit de utilizator
d) nici una din afinnaţiile anterioare nu este adevărată
i. Fie următoarele definiţii de tip:

T ype Z i l e = ( l u , i a , m i, j o , v i, sa, d u );
N u m _ re a l = r e a l ;
N um ere = N u m _ re a l;
Z ile _ lu c r = lu .. jo ;
Z ile l i b e r e = v i . . du;

Indicaţi care este afirmaţia falsă dintre cele ce urmează:


a) tipul de date Z i l e _ l u c r este compatibil cu tipul Z i l e _ l i b e r e
b) tipul de date Num ere este compatibil cu tipul N u m _ real
c) tipul de date Num ere este identic cu tipul N u m _ real
d) toate afirmaţiile anterioare sunt false
9. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) un tip de date anonim se defineşte cu ajutorul cuvântului-cheie t y p e
b) valorile constantelor nu se modifică pe parcursul programului
c) toate tipurile de date simple sunt tipuri ordinale
d) fiecare variabilă se asociază doar unui anumit tip de date

Răspunsuri: Testul 1: a) şi c); Testul 2: b) şi c); Testul 3: c); Testul 4: c); Testul 5: b);
Testul 6: a); Testul 7: d); Testul 8: d); Testul 9: b) şi d).

95
2.3.3. Instrucţiuni

Planificare tematică orientativă


Număr
Tema
de ore
Instrucţiuni
Conceptul de acţiune 1
Expresii 1
Evaluarea expresiilor 1
Tipul expresiilor PASCAL 1
Instrucţiunea de atribuire 1
Instrucţiunea apel de procedură 1
Afişarea informaţiei alfanumerice 1
Citirea datelor de la tastatură 1
Instrucţiunea de efect n u l 1
Instrucţiunea i f 1
Instrucţiunea c a s e 1
Instrucţiunea f o r 1
Evaluarea curentă 1
Instrucţiunea compusă 1
Instrucţiunea w h i l e 1
Instrucţiunea r e p e a t 1
Instrucţiunea g o to . Generalităţi despre structura unui program 1
PASCAL
Evaluarea sumativă 1

Total 18
Predare-învăţare 16 ore
Evaluare 2 ore

Obiective: I
Conceptul de acţiune. Expresii. Afişarea informaţiei
După parcurgerea capitolului, elevii vor fi capabili: I
- să identifice diagramele sintactice şi formulele metalingvistice aleinstrucţiunilor, factoriloij
termenilor şi expresiilor; I
- să cunoască tipurile instrucţiunilor PASCAL; I
- să identifice şi să aplice modul de utilizare a tastaturii şi monitorului ca dispozitivestandard da
întrare/ieşire;
- să cunoască regulile de evaluare a unei expresii PASCAL;
- să cunoască priorităţile operatorilor limbajului PASCAL.
Instrucţiunea „apel de procedură”. Instrucţiunea „efect n u l ” Instrucţiuni: atribuire, i f , case
f o r , w h ile , r e p e a t, goto
După parcurgerea capitolului, elevii vor fi capabili:
- să cunoască unitatea gramaticală a instrucţiunii de atribuire;
- să explice termenul compatibilitate din punct de vedere al atribuirii;
- să cunoască modul de execuţie a instrucţiunilor apel de procedură şi efect nul;
- să cunoască destinaţia specificatorului de format;
- să identifice şi să aplice formulele metalingvistice şi diagramele sintactice ale instrucţiunilor în
studiu;
- să elaboreze programe utilizând instrucţiunile în studiu.
Generalităţi despre structura unui program PASCAL
După parcurgerea capitolului, elevii vor fi capabili:
- să descrie părţile componente ale unui program PASCAL;
- să cunoască destinaţia antetului de program;
- să cunoască cum se indică sfârşitul unui program PASCAL.

[----------- -— —----------— —
Recomandări, completări
L —_ ________________________ *—■" ■'

> Deoarece în prima temă a capitolului III din manual Conceptul de acţiune se vorbeşte despre
părţile unui program PASCAL, această temă poate fi anticipată de unele generalităţi despre
structura programului (tema 3.17) [7].
> în mediul TURBO PASCAL antetul programului nu este obligatoriu.
> în TURBO PASCAL operatorul unar @ este folosit pentru a indica adresa unei variabile, iar în
PASCAL Standard simbolul @ este o alternativă pentru A [7, pag.71],
> Operatorul + indică şi concatenarea de elemente aparţinând tipului S t r i n g .
> Tabelul 3.2. Priorităţile operaţiilor limbajului PASCAL [7, pag. 71] poate fi completat la
categoria Operatori multiplicativi (prioritatea a doua) cu operatorii SHR şi SHL, iar la Operatorii
aditivi (prioritatea a treia) se va adăuga operatorul XOR (vezi recomandările la tema precedentă).
> Spre deosebire de PASCAL Standard, în TURBO PASCAL este permisă utilizarea unei valori
pentru selectorul instrucţiunii CASE care nu este egală cu una din constantele CASE, efectul fiind
ignorarea instrucţiunii CASE dacă nu există alternativa ELSE.
> In cazul instrucţiunii CASE utilizarea simbolului înainte de ELSE nu este considerată eroare.
> Instrucţiunea FOR diferă de la o implementare a limbajului PASCAL la alta. Spre deosebire de
restricţiile faţă de variabila de control din PASCAL Standard [7, pag. 95], în mediul TURBO
PASCAL 7.0 această variabilă poate fi modificată în interiorul ciclului: i se pot atribui valori,
poate fi citită de la tastatură şi poate apărea în calitate de contor în altă instrucţiune FOR inclusă,
dar aceste trucuri duc la modificarea numărului de paşi ai ciclului şi de aceea nu sunt
recomandabile.
De exemplu,
a) dacă în fragmentul de program
f o r i : = l to 4 do b e g i n r e a d l n ( i ) ; w r i t e l n ( s q r ţ i ) ) end;

vor fi citite de la tastatură consecutiv valorile lui i: 1,2,3,4, la ecran vor fi afişate pătratele acestor numere; dacă se va
introduce de la început valoarea 4, ciclul se va executa o singură dată şi va fi afişat numărul 16; dacă vor fi citite numerele
5,6, 7, vor fi afişate pătratele lor şi doar citirea numărului 4 va face posibilă ieşirea din acest ciclu.
b) fragmentul de program
fo r i : = l t o 4 do
b e g i n f o r i : = l t o i do w r i t e ( i ) ;
w riteln
end; _________________________________________________

va afişa la ecran:

97
1
12
123
1234

> Valorile expresiilor din componenţa instrucţiunii FOR sunt evaluate o singură dată, la începutul
ciclului, de aceea modificarea lor pe parcursul execuţiei ciclului nu va schimba numărul de paşi.
De exemplu, fragmentul de program
n : =4 ;
for i:=l to n do
bagin writeln(i);
n:-n+l;
end;
w riteln(n);

va afişa:
1
2
3
4
8

> Procedura BREAK poate fi utilizată în cadrul unei instrucţiuni FOR, WHILE sau REPEAT şi
determină ieşirea imediată din cel mai apropiat ciclu în care se află şi trecerea la prima instrucţiune
de după ciclu
> Procedura CONTINUE poate fi utilizată pentru a continua o instrucţiune FOR, WHILE sau
REPEAT prin trecerea imediată la o nouă iteraţie în cadrul celei mai apropiate instrucţiuni ciclice.
> Apelarea procedurilor BREAK sau CONTINUE în afara instrucţiunii repetitive se consideră eroare.
> în TURBO PASCAL instrucţiunea GOTO nu poate referi o etichetă dintr-un bloc, ce-1 conţine pe
cel în care se află instrucţiunea, ci doar o etichetă din acelaşi bloc cu instrucţiunea GOTO.
_______ -
Erori frecvente

l Nu se atrage atenţia cuvenită la memorarea priorităţilor operaţiilor, ca rezultat se comit erori în


alcătuirea expresiilor la temele ulterioare, în special atunci când se studiază instrucţiunea If şi se
construiesc expresii logice utilizând operatorii and, or şi xor nu se pun parantezele necesare.

o Unii începători greşesc frecvent la scrierea parametrilor de ieşire dintr-un apel de forma
Write(ei, e2, e3, . ..,en),unde e i, e 2, e 3, ..., e n sunt expresii de tip i n t e g e r ,
r e a l , b o o le a n , c h a r sau şir de caractere. în acest caz, pentru o înţelegere mai bună, se
recomandă utilizarea echivalentului W r i t e ( e x) , W r i t e (e 2) , W r i t e (e3)
W r i t e (e n) şi atenţionarea lor la diferenţa între un şir de caractere ce reprezintă un identificator
sau o expresie şi valoarea acestui identificator sau a expresiei.

î în cazul instrucţiunii de atribuire nu se ţine cont de compatibilitatea din punct de vedere al


atribuirii dintre tipul variabilei şi tipul expresiei.
8S îIn instrucţiunea
• IF:
- se introduce simbolul înainte de secvenţa ELSE;

98
- se pune greşit îndată după cuvântul THEN şi atunci se interpretează ca o instrucţiune vidă
pentru THEN, iar instrucţiunea ce ar trebui să se execute pentru THEN este înţeleasă ca
următoarea după IF;
- se utilizează cuvântul DO în loc de THEN;

Se pune în loc de „=” în condiţiile din instrucţiunile IF, WHILE sau REPEAT;

Nu se utilizează instrucţiunea compusă b e g i n . . . e n d când se doreşte executarea mai multor


instrucţiuni simple pentru THEN sau ELSE şi în cazul instrucţiunilor CASE, WHILE sau FOR.

Se pune după cuvântul DO din instrucţiunile FOR sau WHILE, ceea ce duce la executarea în
ciclu a unei instrucţiuni vide.

Se pune „=” în loc de în instrucţiunea FOR.

Se utilizează un tip de date ce nu este ordinal pentru contorul ciclului FOR.

Instrucţiunea IF
Scrieţi un program care transformă numerele zecimale 1 , 5 , 1 0 , 5 0 , 1 0 0 , 5 0 0 , 1 0 0 0 , citite de la tastatură, în cifre
romane [7, pag. 90, prob. 6].
Rezolvare:________________________________________________________________________
program Instr_if;
var x:l..1000; c:char;
BEGIN
writeln('Daţi un număr din şirul:1,5,10,50,100,500,1000');
readln(x);
if x=l
then c :='I '
else if x=5
then c :='V '
else if x=10
then c :='X '
else if x=50
then c :='L '
else if x=100
then c :='C 1
else if x=500
then c :='D '
else if x=1000
then c:='M'
else c
if c='*' then writeln('Nu este un număr din sir')
else writeln (x,'=',c);
END.

Instrucţiunea CASE
Utilizând instrucţiunea CASE, scrieţi un program care transformă numerele zecimale 1, 5, 10, 50,100, 500, 1000,
citite de la tastatură, în cifre romane [7, pag. 92, prob. 5].

99
Rezolvare:
program Instr case;
var x : 1 . .1000;c:char;
BEGIN
writeln( ’ Daţi un număr din şirul: 1,5,10,50,100,500,1000');
readln( x ) ;
case x of
1: c : - ' I'
5: c :-'V '
10: c:='X'
50: c : = ' L '
100: c : = ' C '
500: c : = ' D '
1000: c : = 'M:'
else c: = I * 1 r.
end;
if c='*' then writeln('Nu este un număr din sir')
else writeln ( x , ' = ' , c ) ;
END.

Instrucţiunea FOR
1. Elaboraţi un program care afişează pe ecran codurile caracterelor ' A ' , ' B' .. ' Z'
[7, pag. 97, prob. 6].
Rezolvare:______________________________________________________ ________
program I n s t r _ f o r ;
var i : c h a r ;
BEGXN
w r i t e l n ( 'C o d u r ile c a r a c t e r e l o r A..Z s u n t : ' ) ;
for i : = ' A ' to 'Z ' do w r i t e ( i : 3 , ' c o d ' , o r d ( i ) ) ;
END.

2. Calculaţi suma primilor n termeni:


1_ i I _ i
3 4 + 5 6"'
[7, pag. 97, prob. 8].
Rezolvare:
program P^3;
var i , n : i n t e g e r ; S : r e a l ;
BEGIN
w r ite ( 'n='); readln(n);
S:=0;
for i : = 1 to n do
if o d d ( i ) then S : = S + l / i
else S : = S - l / i ;
w r i t e l n ( ' P e n t r u p r i m i i ' , n , ' te rm e n i S = ' , S : 0 : 2 ) ;
re a d ln
END.3

3. Calculaţi pentru primii n termeni:


a) 1+3+5+7 + . . . şi 1 • 3 • 5 • 7 • . .
b) 2+4 + 6 + 8 + . . . şi 2 • 4 • 6 • 8 • . .
c) 3+6+9+12+. . . şi 3 • 6 • 9 • 12 • . .
d) 4 + 8 + 12+16+. . . şi 4 • 8 • 12 • 16 • . . .;
Exemplu: pentru n=3 avem l + 3 + 5 = 9 ; 1 • 3 • 5=15 [7, pag. 97, prob. 7].
Rezolvare:

program P_ 2a ; program P_2b ;


var i,n, S, P, k:integer; var i , n , S, P, k : i n t e g e r ;
BEGIN BEGIN
write('n='); readln(n); w rite ('n = '); readln(n);
S:=0;P:=1;k:=1; S:= 0 ;P:= 1 ;k :=2;
for i:=l to n do for i :=1 to n do
begin begin
S:=S+k; S : =S+k;
P : =P*k; P := P * k ;
k : = k+ 2 { sau in c ( k ,2 ) } k : = k +2 { sau in c (k ,2 ) }
end; end;
writeln('S=',S, ' P=',P); w r i t e l n {' S = ' , S , ' P = ' , P ) ;
END. END.

program P _ 2 c ; program P_2d;


var i , n , S, P , k : i n t e g e r ; var i, n, S, P,k:integer;
BEGIN BEGIN
w rite ('n = '); readln(n); write('n='); readln(n);
S : = 0 ; P : = 1 ; k : =3; S : = 0 ; P : = 1 ; k ; =4;
for i : = l to n do for i:=l to n do
begin begin
S : =S+k; S ;=S+k;
P : =P*k; P:=P*k;
k:=k+3{sau i n c ( k , 3 ) } k:=k+4 {sau inc(k,4)}
end; end;
w r i t e l n ( , S = ',S , ' P = ', P ) ; writeln('S=',S,' P=',P);
END. END.

Instrucţiunea WHILE
Utilizatorul introduce de la tastatură numere întregi pozitive, separate prin acţionarea tastei <ENTER>. Sfârşitul secvenţei
de numere e indicat prin introducerea numărului 0. Scrieţi un program care afişează pe ecran: a) suma şi media aritmetică a
numerelor pare; b) suma şi media aritmetică a numerelor impare [7, pag. 102, prob. 4].
Rezolvare:
program instr_while;
var x, Sp, Si, Kp, Ki:integer;
BEGIN
Sp:=0; Si;=0; Kp:=0; Ki:=0;
writeln{'Daţi numere intregi pozitive:');
readln(x);
while x>0 do
begin
if gdd(x) then begin Si:=Si+x;
inc(Ki)
end
else begin Sp:=Sp+x;
inc(Kp)
end;

readln(x);
end;
if Kp>0 then

101
b egin
writeln ('Suma numerelor pare este ',Sp);
writeln ('Media aritmetica a numerelor pare este ',Sp/Kp:0:2)
end
else writeln ('N-ati introdus numere pare');
if Ki>0 then
begin
writeln ('Suma numerelor impare este ',Si);
writeln ('Media aritmetica a numerelor impare este ',Si/Ki:0:2)
end
else writeln ('N-ati introdus numere impare');
END.

Instrucţiunea KEPEAT
Elaboraţi un program care citeşte de la tastatură o secvenţă de caractere şi afişează pe ecran numărul literelor citite,
numărul literelor mari şi numărul literelor mici. Caracterele introduse se separă prin acţionarea tastei <ENTER>. Sun:
admise literele mari şi mici ale alfabetului latin şi caracterul * care indică sfârşitul secvenţei. Se presupune că există ce!
puţin un caracter diferit de * [7, pag. 107, prob. 8].
Rezolvare:
Varianta I

program I n s t r _ r e p e a t ;
var c : c h a r ; k l , k'2:i n t e g e r ;
BEGIN
k l ; = 0 ; k 2 : = 0;
w r i t e l n ( ' Daţi l i t e r e a le a lf a b e tu lu i l a t i n : ' ) ;
readln(c);
repeat
if ( c > ' A ' ) and (c < 'Z ') then i n c ( k l )
e l s e i n c (k 2 );
readln(c);
until c - '*';
w r i t e l n ( ' N r t o t a l de l i t e r e ' , k l + k 2 ) ;
w r i t e l n ( 'N r de l i t e r e m a r i ' , k l );
w r i t e l n { ' N r de l i t e r e m i c i ' , k 2 ) ;
END.

Varianta a Il-a - pentru cazul când nu se presupune că există cel puţin un caracter diferit de *

program I n s t r _ r e p e a t ;
var c i c h a r ; k l , k 2 :i n t e g e r ;
BEGIN
k l :=0; k2:= 0;
w r i t e l n ( ' Daţi l i t e r e a le a l f a b e t u l u i l a t i n : ' ) ;
repeat
readln(c);
if (c>'A') and fc<'Z ') then inc(kl)
else i n c ( k 2 ) ;
until c = '*';
w r i t e l n ( ' N r t o t a l de l i t e r e * , k l + k 2 - l ) ;
w r i t e l n ( ' N r de l i t e r e m a ri ' , k l ) ;
w r i t e l n { ' Nr d e l i t e r e m i c i ' , k 2 - l ) ;
END. _____ _

102
: .:; ■: ' ' :'
Teste pentru evaluare sau autoevaluare
— ______ ______________ _______ _______ _________ __ ____________ ____________ - ______ _____________ > — i 1

1. Expresia matematică:
abc d
d abc
se scrie în PASCAL astfel:
a) abc / d - d / abc;
b) a*b*c/ d - d / a / b / c ;
c) a*b*c/d-d/a*b*c;
d) nici un răspuns anterior nu este corect.
2. Care este ordinea operaţiilor în evaluarea expresiei: x mod y+x*2 div y>x-y/x;
a) mod div */ + -> ;
b) mod * div / + >-',
c) * / mod div + - >;
d) nici un răspuns anterior nu este corect.
3. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) funcţia r o u n d (x) rotunjeşte un număr întreg x;
b) argumentul şi rezultatul funcţiilor o r d (x) ş i o d d ( x ) sunt de tip ordinal;
c) argumentul şi rezultatul funcţiei n o t x sunt de acelaşi tip;
d) expresia s q r t (25) are tipul întreg;
4. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) Expresia n o t(x -y > 0 ) and not(x<0)
are valoarea t r u e pentru orice x ce satisface condiţia 0 < x < v
b) Expresia n o t(x -y > 0 ) and not(x<0)
are valoarea t r u e pentru orice x ce satisface condiţia y < x < 0
c) expresia pentru calcularea ariei triunghiului după formula Iui Heron se scrie în PASCAL:
sqrt(p (p -a)(p -b )(p -c))
d) tipul rezultatului funcţiei a b s (x) poate fi întreg sau real
5. Se consideră următoarele declaraţii:
Type anotimp = (iarna, primavara, vara, toamna);
Interval = -5..5;
V ar A: anotimp; I: interval; b: integer; c: real;
Indicaţi care sunt cele două instrucţiuni corecte dintre cele ce urmează:
a) I : = (2+3) / 5
b) B:=ord (succ (toamna))
c) C:= ord (vara)+5
d) A:=pred (primavara)+2
6.Care vor fivalorile lui a, b şi c după execuţia instrucţiunilor:
Readln(a); read(b); readln(c);
dacă la intrare se tastează datele:
0 123
4 5 67
89
a) 04 8
b) 04 5
c) 0 12
d) niciun răspuns anteriornu estecorect
program:
7. Ce seva afişape ecran după execuţia secvenţei de
Readln(x,y,x); writeln (x, y, x)
dacă laintraresetasteazăvalorile 12 3
a) 123
b) 121
103
c) 1
2
3
d) 323
8. Ce seva afişape ecran după execuţia secvenţei de program:
P:= 3.14;
Writeln!?) ;
Writeln (P :0: 4 );
Writeln{P:4:0) ;

a) 3.1415926536E+00
3.1415
3

b) 3.1400000000E+00
3.1400
3
c) 3.14
3.14:0:4
3.14:4:0

d) nici un răspuns anterior nu este corect.


9. Ce se va afişa pe ecran după execuţia secvenţei de program:
x:=3;
y:=15;
i f у mod x=l t h e n ; y:=y-x;
write (x);
writeln (y,x);
a) 3123
b) 3
153
c) 3153
d) nu se va afişa nimic, secvenţa conţine o eroare.
10. Indicaţi care sunt cele două secvenţe de program, dintre cele ce urmează, care determină dacă numărul x este par sau
impar:
a) case x of
2*k : writeln (x, ' este par') ;
2*k+l : writeln (x, ' este impar') ;
end;
b) case odd (x) of
true : writeln (x, ' este impar') ;
false : writeln (x, ' este par') ;
end;
c) case x mod 2 of
1 ; writeln (x, ' este impar') ;
0 : writeln (x, ' este par') ;
end;
d) case x = 2*k of
true : writeln (x, ' este par') ;
false : writeln (x, ' este impar') ;
end;
11. Ce se determină în urma executării secvenţei de program ce urmează:
Readln (f);
n : =1 ;
F o r i:=l t o f d o n:=n*i;
Writeln (n);
a) factorialul lui n
b) factorialul lui f
c) factorialul lui i
d) secvenţa are eroare
12. Indicaţi care este afirmaţia adevărată dintre cele ce urmează:
a) ciclul din secvenţa : n:=2; fo r n:=n t o n*n do writeln ('?'); se repetă de 4 ori
b ) ciclul din secvenţa : n:=2; fo r i:=n t o 1 do writeln ('?'); se repetă o dată
c) ciclul din secvenţa : n:=2; fo r i :=1 t o n+1 do n:=n+l; se repetă de 3 ori
d) ciclul din secvenţa : n:=2; fo r i:=l t o n do n:=4; se repetă de 4 ori
13. Ce se va afişa pe ecran după executarea instrucţiunilor:
n:=l; i:=2;
f o r i:=l t o 2*i d o ;
n:=n+l;
writeln (n);
a) 5
b) 2
c) 3
d) nici un răspuns anterior nu este corect
14. Indicaţi care sunt cele două secvenţe de program, dintre cele ce urmează, care calculează suma:
1 1 +2 ! + 3 ! + 4 ! + 5 !

a) s:=0; f:=l;
f o r i:=l t o 5 do
b e g in
f:=f*i; s:=s+f
end;
writeln (s);

b) s :=1; f:=1;
F o r i:=2 t o 5 do
b e g in
f:=f*i; s:=s+f;
end;
writeln (s);
c) s:=l;
f o r i:=2 t o 5 do
s:=s+i*(i— 1);
writeln (s);

d) s:=0;
f o r i:=l t o 5 do
s:=s + i ! ;
writeln (s) ;
15. Indicaţi care este afirmaţia adevărată dintre cele ce urmează:
a) instrucţiunea compusă nu poate apărea în interiorul altei instrucţiuni structurate;
b) numărul de apariţii într-un program al cuvântului-cheie b e g i n trebuie să fie egal cu numărul de apariţii al
cuvântului-cheie e n d ;
c) inserarea simbolului înainte de cuvântul-cheie e n d este o eroare;
d) nici una din afirmaţiile anterioare nu este adevărată.
16. Secvenţa de program:

x:=10; s:=0;
f o r i:=l t o x d o
b e g in
readln (n);
i f odd (n) t h e n s:=s+n
e n d ; writeln (s) ;__________________________

este echivalentă cu secvenţa:

105
a) s:=0;
re a d ln ( n ) ;
w h i l e o d d (n) do
b e g in
f o r i : =1 t o 10 d o s : = s + n ;
r e a d l n (n)
end;
w riteln (s);
b) s : = 0 ; k : = l ;
w h i l e k<=10 do
b e g in
readln (n);
i f n mod 2=1 t h e n s : = s + n ;
inc (k ):
end;
w riteln(s);
c) s : = 0 ; k=0;
re p e a t
readln (n);
i f o d d (n) t h e n s : = s + n ;
n:=n+l;
u n t i l k> =10;
d) nici un răspuns anterior nu este corect
17. Ce se va afişa pe ecran după executarea instrucţiunilor:
a : =1 0; b : = 1 0 0 ;
re p e a t
a : =a+10
u n t i l a > b;
w r i t e l n (a d i v 1 0 , ' ',b) ;

a) 9 100
b) 10 100
c) 11 100
d) nici un răspuns anterior nu este corect
18. Ce va afişa pe ecran următoarea secvenţă de program:
n:=143;
w h i l e n<>0 d o
b e g in
k : = n mod 10;
W rite (k);
n : = n d i v 10;
end;

a) câtul împărţirii numărului n la 10;


b) numărul invers numărului n
c) restul împărţirii numărului n la 10
d) numărul n
19. Se cunoaşte şirul lui Fibonacci:
u(0)=0, u ( l ) = l , u (n + 1 ) = u ( n ) + u ( n - l) , dacă n > 1
Secvenţa de program ce urmează:
w rite ( 'a='); readln(a);
u : = 1 ; x : = 1 ; y : = 1 ; n :=2;
w h i l e n < a do
b e g in
u . = x + y ; x • = y ; y : - u ; n : = n + 1;
end;
writeln(u);

106
a) calculează termenul şirului care nu depăşeşte numărul a introdus de la tastatură
b) calculează u (a ) pentru a introdus de la tastatură
c) afişează primii n termeni ai şirului, pentru n < a
d) nici un răspuns anterior nu este corect
20. Pentru şirul lui Fibonacci (vezi testul precedent) secvenţa de program ce urmează:
write ('a= *); readln(a); u:=l;x:=l;y:=l;
w h il® u < = a do
b e g in
u:=x+y; x:=y; y:=u;
end;
writeln( x ) ;

a) calculează termenul şirului care nu depăşeşte numărul a introdus de la tastatură


b) calculează u (a ) pentru a introdus de la tastatură
c) afişează primii n termeni ai şirului, pentru n < a
d) nici un răspuns anterior nu este corect

Răspunsuri: Testul 1: b); Testul 2: d); Testul 3: b) şi c); Testul 4: a) şi d);


Testul 5: b) şi c); Testul 6: b); Testul 7: d); Testul 8: b); Testul 9: a);
Testul 10: b) şi c); Testul 11: b); Testul 12: c); Testul 13: b); Testul 14: a) şi b);
Testul 15: d); Testul 16: b); Testul 17: c); Testul 18: b); Testul 19: b); Testul 20: a)

REFERINŢE
1. Bălănescu T., Gavrilă Ş., Georgescu H., ş.a. Programarea în limbajele PASCAL şi TURBO
PASCAL / Voi. I / Limbajul PASCAL / Concepte fundamentale, EDITURA TEHNICĂ, Bucureşti,
1992.
2. Bălănescu T., Gavrilă Ş., Georgescu H., ş.a. Programarea în limbajele PASCAL şi TURBO
PASCAL / Voi. II / Limbajul TURBO PASCAL, EDITURA TEHNICĂ, Bucureşti, 1992.
3. Dragan G. Teste-grilă la limbajul de programare PASCAL, Editura TISH, 2000.
4. Fătu I. Teste grilă de programare în limbajele PASCAL şi C, Editura didactică şi pedagogică R. A.,
Bucureşti, 1995.
5. Gremalschi A., Mocanu Iu., Gremalschi L. Informatica. Structura calculatorului / Clasa a X-a,
Ştiinţa, Chişinău, 2000.
6. Gremalschi A., Mocanu Iu., Spinei I. Informatica. Limbajul PASCAL / Manual pentru clasele
IX- XI, Ştiinţa, Chişinău, 1999.
7. Gremalschi A., Mocanu Iu., Spinei I. Informatică / Manual pentru clasa a 9-a, Ştiinţa, Chişinău,
2006.
8. Gremalschi A., Vasilache G., Gremalschi L. Informatica / Manual pentru clasa a Vil-a, Ştiinţa,
Chişinău, 2001.
9. Munteanu F. (coord.), Programarea calculatoarelor / Manual pentru licee de informatică / Clasele
X- XII, Editura didactică şi pedagogică R. A., Bucureşti, 1995.
10. Pătruţ B., Algoritmi şi limbaje de programare / Manual de Informatică / Clasa a IX-a, Teora, 1998.

107
2.4. Informatica In clasa a X-a
Structura calculatorului
2.4.1. Informaţia

Planificare tematică orientativă


Număr
Tema
de ore
Informaţia
Cantitatea de informaţie 1
Codificarea şi decodificarea informaţiei 2
Coduri frecvent utilizate 2
Informaţia mesajelor continue 1
Cuantizarea imaginilor 2
Reprezentarea şi transmiterea informaţiei 1
Evaluarea sumativă 1

Total 10

Predare-învăţare 9 ore
Evaluare 1 oră

Obiective:
Stocarea, transmiterea şi prelucrarea informaţiei
După studierea temei, elevii vor fi capabili:
- să explice sensul uzual al cuvântului informaţie;
- să descrie structura generală a sistemelor de transmitere, stocare şi prelucrare a informaţiei;
- să definească modelul matematic al sursei de informaţie;
- să definească unitatea de măsură a cantităţii de informaţie.
Alfabetul binar
După studierea temei, elevii vor fi capabili:
- să calculeze cantitatea de informaţie emisă de sursă;
- să calculeze cantitatea de informaţie dintr-un semn al alfabetului.
Operaţii de codificare şi decodificare a mesajelor
După studierea temei, elevii vor fi capabili:
- să explice operaţiile de codificare şi decodificare a mesajelor;
- să explice cum pot fi formate cuvintele binare (m+1 Opoziţionale.
Codurifrecvent utilizate
După studierea temei, elevii vor fi capabili:
- să clasifice şi să recunoască codurile frecvent utilizate;
- să codifice şi să decodifice informaţia alfanumerică reprezentată într-un cod frecvent
utilizat;
- să cunoască câte mesaje posibile pot fi codificate cu ajutorul unui cod m-poziţional.
Informaţia mesajelor continue
După studierea temei, elevii vor fi capabili:
- să cunoască diferenţa dintre sursele cu mesaje discrete şi sursele cu mesaje continue;
108
- să cunoască operaţiile de discretizare a mesajelor continue;
- să calculeze cantitatea de informaţie într-un mesaj continuu;
- să explice modul de efectuare a operaţiei de eşantionare şi de alegere a perioadei de
eşantionare;
- să explice modul de efectuare a operaţiei de cuantificare şi de alegere a pasului de
cuantificare;
- să explice cum influenţează cantitatea de informaţie extrasă dintr-un mesaj continuu asupra
valorilor perioadei de eşantionare şi a pasului de cuantificare;
- să cunoască destinaţia convertoarelor analog-numerice şi numeric-analogice.
Cuantizarea imaginilor statice şi a imaginilor dinamice
După studierea temei, elevii vor fi capabili:
- să explice operaţiile de discretizare în spaţiu şi discretizare în valoare a imaginilor statice;
- să explice operaţia de discretizare a imaginilor dinamice în timp;
- să cunoască destinaţia rastrului şi modul de alegere a densităţii liniilor unui rastru;
- să cunoască modul de evaluare a cantităţii de informaţie dintr-o imagine monocromă;
- să cunoască modul de redare a culorilor unei imagini multicolore şi de evaluare a cantităţii
de informaţie dintr-o imagine color.
Reprezentarea şi transmiterea informaţiei
După studierea temei, elevii vor fi capabili:
- să descrie semnalele frecvent utilizate în tehnica de calcul;
- să cunoască deosebirea dintre purtătorii statici şi purtătorii dinamici de informaţie;
- să cunoască factorii de care depinde capacitatea de transmisie a canalului şi în ce unităţi se
măsoară ea.
--------------------------------- p--------------------— ----- ----------------------------------------------------------------------------------

Probleme rezolvate 4
4 .i
n—

în clasele de liceu se realizează pregătirea de bază la Informatică. Cunoştinţele dobândite la


matematică, fizică, chimie permit elevilor din clasa a X-a să înţeleagă principiul lucrului
computerului. Deoarece în clasa a X-a noţiunea de informaţie şi posibilităţile utilizării computerului
se examinează din punctul de vedere cantitativ, în cadrul acestei pregătiri o atenţie deosebită trebuie
acordată interdependenţei dintre conceptele matematice şi realizarea fizică a echipamentelor unui
sistem de calcul, interacţiunilor dintre resursele tehnice şi resursele programate ale calculatorului.
La această etapă un rol important îl joacă problemele axate pe reprezentarea cantitativă a
informaţiei, pe consolidarea cunoştinţelor obţinute în clasa a Vll-a despre diferite sisteme de
numeraţie şi deprinderilor de a realiza conversiunea numerelor dintr-un sistem de numeraţie în
altele.
Analizăm unele probleme destinate obţinerii cantităţii de informaţie emise de o sursă.
❖ Problema 1 [4, pag. 20]

Pentru înregistrarea sunetului se utilizează microfoane, tensiunea de ieşire a cărora variază de la 0 până la 100
pV, Aparatul de înregistrare nu distinge tensiunile valorile cărora diferă cu mai puţin de 0,1 pV. Pentru a
asigura o reproducere fidelă în fiecare secundă, se iau 40000 de eşantioane. Câtă informaţie va furniza
microfonul dat timp de 3 ore?

Rezolvare: întrucât cantitatea de informaţie într-un mesaj continuu

f\s
I max -s ■ II
J min j^
A r>

V=ml=m-lo g 2^ ,

109
unde
m=40000 (într-o secundă), s max= l 00, s miD=0, A s = 0 , 1, T=3 (ore),
rezultă că
V=40000 • ( 3 - 6 0 - 6 0 ) ■ l o g 2 ( 1 0 0 / 0 , 1 + 1 ) « 4 3 2 • 1 0 9=432 ( G b i t )
❖ Problema 2 [4, pag. 22]

Rastrul unei camere de luat vederi este format din 1024x1024 de puncte. Pot fi redate până la 64 niveluri de
luminanţă ale punctelor respective. Câtă informaţie va conţine un film video cu durata de 3 ore?

Rezolvare: I = 3 * 1 0 2 4 * 1 0 2 4 * l o g 264=18 ( Mbi t )


V=3* 3 6 0 0 * 2 5 * 1 8 = 4 , 8 6 ( T b i t )
❖ Problema 3 [6, pag. 4]

Cantitatea de informaţie în 400 de mesaje emise de o sursă cu numărul finit de mesaje este egală cu 3200
biţi. Selectaţi numărul de mesaje posibile al acestei surse:
a) 256; b) 8; c) 3; d) un alt răspuns (indicaţi-1).

Rezolvare: Deoarece cantitatea totală de informaţie emisă de sursă se determină din relaţia:
V=NI,
iar cantitatea de informaţie I ce se conţine într-un mesaj emis de sursă se determină din relaţia:
I = l o g an,
unde a=2 (se utilizează bitul), pentru v =3 2 0 0 şi N=4 00 va fi:
1 = 3 2 0 0 / 4 0 0 =8 şi n = 28=256.
Astfel, răspunsul corect este a).
❖ Problema 4 [2, pag. 40]

Mesajele posibile ale unei surse sunt literele mici ale alfabetului englez. Calculaţi lungimea minimă a şirurilor
binare necesară pentru codificarea şi decodificarea univocă a mesajelor emise de această sursă. Argumentaţi
răspunsul.

Rezolvare: întrucât mesajele posibile ale sursei în studiu sunt literele mici ale alfabetului englez, rezultă că
numărul acestor mesaje este egal cu 26. Deci cantitatea de informaţie, ce se conţine într-un mesaj emis de sursa
dată este
I = l o g 226(biţi).
Utilizând inegalitatea
l o g 21 6 < l o g 22 6 < l o g 232 sau 4 < l o g 226<5,
obţinem relaţia
4<I<5.
Pe de altă parte, lungimea m a unui cod poziţional trebuie să satisfacă condiţia:
m>=I.
Deci lungimea minimă m a şirurilor binare, necesare pentru codificarea şi decodificarea univocă a mesajelor emise
de această sursă, este 5 (biţi).
2.4.2. Bazele aritmetice ale tehnicii de calcul.

Planificare tematică orientativă


Tema Număr
de ore
Bazele aritmetice ale tehnicii de calcul
Sisteme de numeraţie 1
Conversiunea numerelor dintr-un sistem în altul 1
Conversiunea din binar în octal, hexazecimal şi invers 1
Operaţii aritmetice în binar 2
Evaluarea curentă 1
Reprezentarea numerelor naturale în calculator 1
Reprezentarea numerelor întregi 2
Reprezentarea numerelor reale 2
Evaluarea sumativă 1

Total 12

Predare-învăţare 10 ore
Evaluare 2 ore

Obiective:
Sisteme de numeraţie
După studierea temei, elevii vor fi capabili:
- să cunoască cum se defineşte un sistem de numeraţie;
- să efectueze conversia numerelor din baza 2 , 8 , 1 6 în sistemul zecimal şi invers;
- să efectueze conversii din binar în octal, hexazecimal şi invers.
Operaţiile aritmetice în binar, octal, hexazecimal, Reprezentarea numerelor în calculator
După studierea temei, elevii vor fi capabili:
- să efectueze adunarea şi scăderea numerelor în binar;
- să descrie reprezentarea numerelor întregi în cod direct, cod invers şi cod complementar;
- să descrie reprezentarea numerelor reale în virgulă fixă şi virgulă mobilă;
- să efectueze adunarea şi scăderea numerelor întregi în cod direct, cod invers şi cod
complementar;
- să efectueze adunarea şi scăderea numerelor reale în virgulă fixă şi virgulă mobilă.

Model de proiect didactic

Data:
Clasa: a X-a
Obiectul: Informatica
Profesor:
Tipul lecţiei: Lecţie mixtă
Durata: 45 min

Tema lecţiei: Reprezentarea numerelor reale în calculator


Obiectivele lecţiei
> Obiectiv de referinţă: să cunoască aritmetica de calculator.
> Obiective operaţionale:
• să cunoască reprezentarea numerelor întregi în cod direct, cod invers şi cod complementar;

111
• să poată elabora un program care afişează la ecran reprezentările numerelor întregi în cod direct, cod invers şi
cod complementar;
• să cunoască reprezentarea numerelor reale în virgulă fixă şi virgulă mobilă;
• să cunoască avantajele şi dezavantajele reprezentărilor în virgulă fixă şi în virgulă mobilă.

Metode de învăţământ:
•învăţarea reciprocă, «Conversaţia, «Metoda euristică, «Conspecte de reper, «Analiza, «Comparaţia, «Observaţia
independentă, «Cercetarea în grup, «Descoperirea, «Algoritmizarea, «Exerciţiul, «Problematizarea.

Mijloace de învăţământ:
•o clasă de calculatoare; «soft-ul: mediul de programare Turbo Pascal; «manualul.

Scenariul lecţiei
Formele de Durata,
Etapele lecţiei Activitatea profesorului Activitatea elevilor
învăţare min
• Salut elevii, verific Individual, Răspund la apel,
Moment prezenţa, le propun să în perechi pregătesc calculatoarele 3
organizatoric lanseze programul Turbo pentru lucru
Pascal
Anunţarea temei şi • Scriu tema la tablă şi
în colectiv Ascultă, fac notiţe 2
obiectivelor lecţiei anunţ obiectivele lecţiei
• Le propun elevilor să-şi Discută, răspund la 3
amintească regulile de întrebări
reprezentare a numerelor
Verificarea întregi în cod direct,
cunoştinţelor, invers şi complementar
priceperilor şi * Invit la tablă un elev Lucrează câte doi la 6
în colectiv
deprinderilor pentru a scrie programul calculator - introduc
Pascal de reprezentare a programul şi îl
în perechi
numerelor întregi în cod analizează
direct, invers şi
complementar
* Analizez împreună cu Răspund la întrebări, 5
elevii programul şi ie testează programul
propun să-l testeze la
calculator

Comunicarea noilor * Le explic elevilor Ascultă, fac notiţe, pun 10


cunoştinţe două moduri de întrebări
reprezentare a numerelor
reale în calculator,
avantajele şi
dezavantajele lor în colectiv Analizează exemplele, 5
« Le prezint elevilor Individual . scriu în caiet, pun
exemple de numere reale în perechi întrebări
Fixarea noilor exprimate în virgulă fixă
cunoştinţe şi mobilă Câţiva elevi lucrează pe
• Le propun elevilor rând la tablă, ceilalţi 7
pentru exemplificarea lucrează în caiet,
celor spuse mai sus analizează rezultatele
Formarea priceperilor câteva exerciţii colegilor şi intervin în
şi deprinderilor caz de necesitate
• Discut cu elevii
Concluziile şi
rezultatele, răspund la
realizarea în colectiv Discută, pun întrebări 3
întrebări
feedback- ului

• Propun tema de acasă:


Anunţarea temei Notează în caiet tema
întrebări şi exerciţii de la Individual 1
pentru acasă pentru acasă.
tema 2.7 din manual

112
2.4.3. Algebra booleană

Planificare tematică orientativă


Număr
Tema
de ore
Algebra booleană
Variabile şi expresii logice 2
Funcţii logice 2
Funcţii logice frecvent utilizate 3
Evaluarea sumativă 2

Total 9
Predare-învăţare 7 ore
Evaluare 2 ore

Obiective:
Variabile şi expresii logice
După studierea temei, elevii vor fi capabili:
- să utilizeze tehnologia algebrei booleene;
- să reproducă tabelele de adevăr ale operaţiilor elementare;
- să alcătuiască tabelele de adevăr ale expresiilor logice.
Funcţii logice. Formele canonice ale funcţiilor logice
După studierea temei, elevii vor fi capabili:
- să definească funcţiile logice prin tabele şi formule;
- să calculeze tabelul de adevăr al funcţiei logice;
- să scrie direct din tabelele de adevăr formele canonice ale funcţiilor logice;
- să explice noţiunea de set complet de funcţii logice şi să dea exemplele respective;
- să cunoască prin ce metode poate fi definită o funcţie logică de n variabile.

Recomandări, completări

Această temă conţine concepte fundamentale din domeniul algebrei booleene. Sunt expuse
noţiunile de variabilă, constantă şi funcţii booleene, se studiază funcţiile logice frecvent utilizate.
Datorită gradului înalt de complexitate şi pentru înţelegere mai clară a acestui material profesorul
trebuie să utilizeze cât mai multe exemple din viaţă.
Analizăm din acest punct de vedere unele funcţii logice frecvent utilizate. Negaţia este prima
operaţie logică care o concepe omul. De exemplu, copilul care încă nu poate vorbi, deja poate mişca
capul, în semn de dezaprobare, dacă nu vrea să mănânce.
Pentru a prezenta exemple de afirmaţii şi negaţiile lor pot fi examinate unele personaje cu scopuri contrare. In acest
caz afirmaţia adevărată pentru unul nu va conveni altuia şi astfel va fi uşor motivată negaţia. Examinăm o afirmaţie P:
„O scrisoare trimisă de către o persoană a ajuns la persoana a două”. Afirmaţia ar putea să fie adevărată, dar dacă
scrisoarea va fi interceptată de către a treia persoana ostilă, afirmaţia va deveni falsă. în acest caz afirmaţia P cu
negaţie: „O scrisoare trimisă de către o persoană n-a ajuns la persoana a două” va fi adevărată. Corelaţia între P ş i P c u
negaţie corespunde tabelului de adevăr al operaţiei logice negaţie (NU).
Continuăm raţionamentul: primul abonat a trimis pentru a fi sigur două scrisori identice. înregistrăm prin A faptul
că prima scrisoare a ajuns la persoana a două”. Desemnarea A poate fi înţeleasă în continuare drept denumirea variabilei

113
logice, dar la moment aceasta este desemnarea unui eveniment. Afirmaţia: „a doua scrisoare a ajuns la persoana a
două”, o notăm cu B, iar faptul că mesajul este primit - cu P. Concluzie: mesajul este primit dacă până la abonatul al
doilea a ajuns măcar o scrisoare. Această concluzie corespunde tabelului de adevăr al operaţiei logice disjuncţie (SAU):
P=A sau B
Totodată, trebuie arătată diferenţa dintre sensul uzual al cuvântului sau şi înţelesul lui în algebra booleană. De
exemplu, fraza „cumpără pâine albă sau de secară” înseamnă faptul cumpărării pâinii doar de un soi, ceea ce reprezintă
operaţia logică XOR (sau cu excepţie).
Dezvoltăm exemplul şi presupunem că persoana a treia a hotărât cum poate, totuşi, împiedica primirea mesajului:
trebuie reţinute ambele scrisori. Informaţia nu va fi primită dacă nu a ajuns prima scrisoare şi nu a ajuns scrisoarea a
doua:
nu P=nu A şi nu B
Astfel se arată legătura dintre operatorul logic SAU şi negaţia lui cu operatorul ŞI.
Tabelul de adevăr al operaţiei logice Ş I se consolidează cu ajutorul unui exemplu asemănător. Prima persoană
bănuieşte că persoana a treia citeşte mesajele, de aceea el trimite o scrisoare şi o carte poştală. în scrisoare era un mesaj
codificat, iar în cartea poştală a fost indicat codul. Introducem următoarele desemnări: A - „scrisoarea este primită”, B -
„cartea poştală este primită”, P - „mesajul este primit şi înţeles”. Această variantă presupune că informaţia va fi primită
şi corect înţeleasă doar dacă au ajuns şi scrisoarea şi cartea poştală. Tabelul de adevăr în acest caz corespunde formulei:
P=A şi B
în cazul dat, persoana a treia îşi atinge scopul dacă reţine o corespondenţă sau ambele corespondenţe, ceea ce poate
fi înregistrat ca:
nu P= nu A sau nu B
Prima persoană a hotărât să felicite persoana a doua prin poştă cu ocazia Anului Nou. Şi ca să fie sigur a trimis trei
felicitări identice. Astfel faptul că felicitarea a ajuns va fi adevărat dacă persoana a doua a primit măcar o carte poştală:
P=A sau B sau C
Din tabelul de adevăr se vede că numai într-un caz din cele opt abonatul al doilea rămâne fără felicitare.
Dar persoana a treia decide să intercepteze toate trei cărţi poştale:
nu P=nu A şi nu B şi nu C
Abonatul al doilea care n-a primit felicitarea a trimis primului abonat trei corespondenţe: o felicitare cu ocazia
Anului Nou (A)\ o scrisoare plină de mustrări (B); o reţetă contra amneziei (C). El va fi satisfăcut, dacă primul abonat
va obţine toate trei corespondenţele. Atunci:
P= A şi B şi C
Persoana a treia stă la îndoială. Ea presupune că A - este o scrisoare secretă, B - codul ei, iar reţeta C -cifrul
pentru a înţelege codul din B. Dacă-i aşa, atunci trebuie să scoată măcar una din aceste trei corespondenţe:
nu P=nu A sau nu B sau nu C.
Pentru a nu provoca mare bănuială el hotărăşte că nu trebuie se scoată toate trei corespondenţe, şi scoate numai
felicitarea. După aceasta expresia nu P a devenit adevărată.
Raţionamentul poate fi continuat şi pentru înţelegerea altor expresiilor logice.
Analizând exemplele, poate fi atrasă atenţia elevilor asupra formulelor obţinute:
nu (A sau B)=nu A şi nu B
nu (A şi B)=nu A sau nu B
Astfel profesorul împreună cu elevii „descoperă” legile lui Morgan.

Problemele din domeniul algebrei booleene sunt orientate mai mult spre utilizarea tabelelor de
adevăr (vezi literatura recomandată).

114
Probleme rezolvat
___ ________________________________ _______■ - - - ■ - ^ = --1

❖ Problema 1 [4, pag. 49, prob. 8f]


Elaboraţi un program care introduce valorile logice ale variabilelor x,, x2, x3) x4 şi afişaţi valorile funcţiei
y = ( x , v x 2) (x3 v x4)

Rezolvare:
P ro g ra m P I ;
v a r x : a r r a y [ l . .4] o f b o o l e a n ;
i : 1 . . 4 ; j : 0 . . 1 ; y : b o o le a n ;
BEGIN
w r i t e l n ( ' D a ţ i v a l o r i l e x l , x 2 , x 3 , x 4 : 1) ;
f o r i : = l t o 4 do
b e g in
r e a d ( j ) ; i f j= 0 th e n x [ i ] : = f a l s e
e ls e x [i]:= tru e ;
end;
y : = n o t ( x [ l ] o r x [2 ] ) and n o t( x [ 3 ] o r x [ 4 ] ) ;
w r i t e l n ( ' P e n t r u c o m b in a ţia de v a l o r i a l e v a r i a b i l e l o r ;
f o r i : = l t o 4 d o w r i t e ( o r d ( x [i ] ) , ' ' ) ;
w riteln;
w r i t e l n ( ' V aloarea f u n c ţ i e i y e s te : ' ,o r d ( y ) ) ;
END.

❖ Problema 1 [4, pag. 49, prob. 9j|

Elaboraţi un program care alcătuieşte tabelul de adevăr al funcţiei y = x, v x 2 v x3

Rezolvare:

P ro g ra m P2;
var i , j , k:boolean;
BEGIN
W r i t e l n ( ' T a b e l u l de a d e v a r e s t e : ' ) ;
w riteln;
w r i t e l n ( 1x l ' : 4 , ' x2 ' : 4, ' x 3 ' : 4 , ' y ' : 4 ) ;
w riteln;
f o r i : = f a l s e t o t r u e do
f o r j : = f a l s e t o t r u e do
f o r k : = f a l s e t o t r u e do
w r i t e l n ( o r d ( i ) : 4 , o r d (j ) : 4 , o r d ( k ) : 4 , o r d ( n o t i o r n o t j o r n o t k ) : 4 ) ;
END.

115
2.4.4. Circuite combinaţionale

Planificare tematică orientativă


Număr
Tema
de ore
Circuite combinaţionale
Circuite logice elementare 1
Clasificarea circuitelor logice. Sumatorul. Metoda de proiectare 1
ierarhică
Circuite combinaţionale frecvent utilizate 1
Evaluarea sumativă 1

Total 4
Predare-învăţare 3 ore
Evaluare 1 oră

Obiective:
Circuite logice elementare. Sumatorul.
După studierea temei, elevii vor fi capabili:
- să descrie metodele de reprezentare a valorilor binare prin mărimi fizice;
- să cunoască rolul elementelor de comutare la realizarea circuitelor logice;
- să explice esenţa metodei de proiectare ierarhică a dispozitivelor unui calculator numeric;
- să explice modul de realizare a funcţiilor logice NU, ŞI, SAU.

Recomandări, completări

Bazele fizice ale computerului se examinează pe baza cursului de fizică şcolară, dar Informatica
începe această examinare cu circuite logice. Trebuie să înţelegem că utilizarea elementelor logicii
formale bazate pe existenţa a două stări generale ale elementelor computerului (semnalul / tensiunea
este / nu este) şi sinteza circuitelor computerului necesită studierea tabelelor de adevăr.
Pentru a elabora un circuit combinaţional, se execută următoarele operaţii:
a) se stabileşte setul complet de funcţii şi porţile logice respective, pe baza cărora se va realiza
circuitul;
b) se întocmesc tabelele de adevăr ale tuturor funcţiilor de ieşire; utilizând simbolurile
funcţiilor din setul prestabilit de funcţiile de bază, se scriu expresiile logice ale funcţiilor de
ieşire dacă e necesar, se aplică o simplificare a expresiilor logice ale funcţiilor de ieşire;
c) conform formei expresiilor logice se întocmeşte schema circuitului.
Pentru a înţelege acest algoritm de construire a schemelor logice după tabelele de adevăr,
profesorul împreună cu elevii elaborează schema logică a semisumatorului. Algoritmul constă în
acţiunile următoare: după construirea tabelului de adevăr, pentru fiecare rând al tabelului de adevăr
cu s= 1 trebuie din toate argumentele să alcătuim o expresie de tip şi (conjuncţie). Dacă un
argument al acestui rând este egal cu 0 atunci luăm negaţia lui. în continuare trebuie de legat toate
aceste expresii prin sau. Astfel, pentru a elabora schema semisumatorului după crearea tabelului de
adevăr formăm funcţiile de ieşire s şi t.

s=abvab; t=ab

116
Conform acestor funcţii creăm schema logică a semisumatorului. La intrarea şi ieşirea
circuitelor pot fi scrise valorile semnalelor. Schema semisumatorului şi simbolul utilizat sunt
prezentate în manual [4, pag. 58].
La etapa următoare elevii trebuie să facă o generalizare: dacă un număr binar reprezintă o
succesiune a zerourilor şi a unităţilor, atunci pentru crearea schemei logice de adunare a două
numere trebuie să legăm între ele schemele de adunare a 6/r-urilor. Astfel, elevii înţeleg caracterul
complicat al circuitelor şi caracterul regular şi unificat al elementelor.
Propunem mai jos tabelul de adevăr al sumatorului elementar [2, pag.44]:

ss, ss2
bi tj-1
rl cif tl cif t2 ti
Si
0 0 0 0 0 0 0 0
0 0 1 0 0 1 0 0
0 1 0 1 0 1 0 0
0 1 1 1 0 0 1 1
1 0 0 1 0 1 0 0
1 0 1 1 0 0 1 1
1 1 0 0 1 0 0 1
1 1 1 0 1 1 0 1

unde: rl - este cifra obţinută în rezultatul adunării cifrelor a2 şi b/, c i f j l şi c if j 2 - cifrele de


transport obţinute de la semisumatoarele SSi şi SS2.
Analizăm mai detaliat încă un circuit combinaţional - comparatorul. El reprezintă un circuit care
compară numerele binare
A=anian-2.•.aia0 şi B=bn_ibn-2 .. .bib0
indicând prin trei ieşiri una din situaţiile posibile:
A<B;A>B sau A=B.
Pentru a determina dacă A este mai mare sau mai mic decât B, se începe inspecţia numerelor A
şi B cu poziţia cea mai semnificativă. Dacă cei doi biţi a„.j şi bn.i sunt egali, se trece la inspecţia
biţilor a„.2 şi b„.2. Această inspecţie, bit cu bit, se continuă până la ajungerea perechii în care biţii din
cele două numere simt inegali. Dacă în acest moment bitul din numărul A este 0 şi bitul din numărul
B este 1, avem A<B, în caz contrar A>B.
Tabelul de adevăr al comparării a două cifre binare este următorul:

a b a<b a=b a>b


0 0 0 1 0
0 1 1 0 0
1 0 0 0 1
1 1 0 1 0

Evident, situaţiei a<b îi corespunde termenul a b, situaţiei a=b termenul a=b, iar situaţiei a>b
termenul a b. Schema comparatorului elementar este dată în [2].

117
2.4.5. Circuite secvenţiale

Planificare tematică orientativă


Număr
Tema
de ore
Circuite secvenţiale
Bistabilul RS 1
Circuite secvenţiale frecvent utilizate. Generatoare de 1
impulsuri

Total 2

Predare-învăţare 2 ore
Obiective:
Circuite secvenţiale. Bistabilul. Registrul
După studierea temei, elevii vor fi capabili:
- să explice prin ce se deosebesc circuitele combinaţionale şi circuitele secvenţiale;
- să explice noţiunea de circuit secvenţial,
- să cunoască care este destinaţia circuitului bistabil;
- să explice prin ce se deosebesc circuitele secvenţiale asincronice şi circuitele secvenţiale
sincronice;
- să descrie funcţiile bistabilului;
- să cunoască destinaţia registrului şi de ce depinde capacitatea unui registru;
- să cunoască destinaţia numărătoarelor şi cum se schimbă stările unui numărător direct, unui
numărător invers;
- să cunoască destinaţia elementului de îniârziere şi să deseneze diagramele în timp ale
elementului examinat;
- să explice cum funcţionează generatorul de impulsuri periodice şi de ce depinde durata
impulsurilor.

Recomandări, completări
Să examinăm metodica introducerii noţiunii de bistabil. Dacă pur şi simplu începem cu
explicarea construcţiei bistabilului elevii pot întreba: Cu ce scop este elaborată această schemă?
Unde se află bitul păstrat? Utilizarea ieşirilor în calitate de intrări complică circuitului. Deoarece
pentru funcţionarea bistabilului este importantă starea lui precedentă, apare un factor nou - timpul.
Deci, trebuie examinat un şir de stări ale bistabilului desfăşurate în timp.
Reieşind din cele spuse mai sus, are rost să examinăm scopurile utilizării bistabilului şi cerinţele
faţă de acest dispozitiv înainte de reprezentarea schemei:
1. Dispozitivul trebuie să-şi „memoreze” starea existentă: 0 sau 1. Pentru a simplifica
raţionamentele se presupune existenţa unei singure ieşiri. Starea acestei ieşiri reprezintă bit-ul
păstrat propriu-zis.
2. Dispozitivul trebuie să-şi permită să treacă în altă stare, cu altă semnificaţie la ieşire. Pe lângă
aceasta, el trebuie să posede şi punctul de intrare.
3. E necesar să existe două puncte de intrare: unul pentru a stabili ieşirea în 0, altul - în 1. Neavând
semnalul la intrare (avem zerouri) starea ieşirii se păstrează.

118
4. Comutarea elementelor logice se efectuează cu un semnal destul de scurt la intrare, după care la
punctele de intrare iarăşi se restabilesc zerourile ceea ce înseamnă că starea principală a
bistabilului reprezintă starea zero la intrare.
In continuare va fi elaborată schema şi tabelul de adevăr al bistabilului. Intrările le însemnăm
prin S şi R, ieşirea - prin Q. Regimul de funcţionare a bistabilului este arătat în tabelul 2.4.1, iar
schema bistabilului asincron RS şi simbolul utilizat sunt prezentate în [4, pag. 64].
Tabelul 2.4.1. Regimurile de funcţionare ale bistabilului asincron RS

Intrări
Regim de funcţionare Ieşirea Q
R 5

0 0 păstrare bit bit memorat


0 1 setare 1
1 0 resetare 0
1 1 interzis ?

Putem observa, că combinaţia R=1 şi S=1 la intrare este interzisă. Acest fapt poate fi explicat
prin analogie cu domeniul de definire a funcţiilor matematice: funcţia poate fi definită nu pentru
toate argumentele. Semnalul de ieşire nu depinde univoc de semnalul de intrare: când la intrare este
zero, semnalul de ieşire se păstrează. Aceasta înseamnă că noţiunea de funcţie aici nu poate fi
utilizată şi, de asemenea, că starea ieşirii depinde de starea ei precedentă. Ca să revenim iarăşi la
noţiunea de funcţie trebuie să cunoaştem valoarea precedentă a lui Q ( 0 prec) (vezi tabelul 2.4.2)
Tabelul 2.4.2. Regimurile de funcţionare ale bistabilului asincron RS (varianta cu Qpttc)

Intrări
Regim de funcţionare Ieşirea g prec Ieşirea Q
R S
0 0 păstrare bit 0 0 (bit memorat)
0 0 păstrare bit 1 1 (bit memorat)
0 1 setare 0 1
0 1 setare 1 1
1 0 resetare 0 0
1 0 resetare 1 0
1 1 interzis 0 ?
1 1 interzis 1 ?

Ideea că semnalul de ieşire singur poate reprezenta un argument justifică apariţia legăturii
inverse în schema bistabilului. Deoarece iniţial acest element logic creează un semnal de ieşire şi
numai după aceasta semnalul apare la intrare, putem spune că se analizează procesul dinamic din
bistabil şi nu starea bistabilului.
Deci, tot ce se cere de la bistabil se reduce la următoarele:
1) stabilim Q = 1: la intrarea S va fi 1, R rămâne 0;
2) stabilim Q = 0: la intrarea R va fi 1, S rămâne 0;
3) memorăm bit-ul Q, rămâne 0 la intrările S şi R.
Observăm că în cazul punctului 3) tensiunea nu se decuplează deoarece una dintre ieşirile Q sau
Q în orice caz diferă de zero.
Pentru a cerceta toate variantele funcţionării bistabilului analizăm şi combinaţia interzisă:
S =R =1. în manual [4, pag. 65] se examinează procesele care au loc în bistabil, dar, totuşi, ce se
întâmplă în cazul dat? Din punctul de vedere al logicii nu se întâmplă nimic extraordinar dacă
semnalele R şi S coincid. După ce impulsurile la intrare au dispărut, sau S =R =0, urmează că Q=Q
=1. Totodată, conform tabelului 2.4.2 Q=Q= 0 ceea ce înseamnă că bistabilul începe a „clipi”.

119
Dacă presupunem că semnalul unei ieşiri după conexiunea inversă va intrece semnul, atunci
bistabilul se va „linişti” cu Q=0 şi Q= 1 sau Q=\ şi Q=0 - depinde de faptul la care ieşire
electronul va fi mai iute. Starea ieşirilor nu este determinată.

2.4.6. Structura şi funcţionarea calculatorului.

Planificare tematică orientativă


Număr
Tema
de ore
Structura şi funcţionarea calculatorului
Schema funcţională a calculatorului. Dispozitivul aritmetic 1
şi logic. Memoria internă
Formatul instrucţiunilor. Tipuri de instrucţiuni 1
Dispozitivul central de comandă 1
Limbajul cod calculator şi limbajul de asamblare 1
Evaluarea curentă 1
Resursele tehnice şi resursele programate ale calculatorului. 1
Memorie externe pe benzi şi discuri magnetice
Memorii externe pe discuri optice. Vizualizatorul şi 1
tastatura
Imprimantele. Clasificarea calculatoarelor 1
Microprocesoml. Din istoria tehnicii de calcul î
Evaluarea sumativă 1

Total 10

Predare-învăţare 8 ore
Evaluare 2 ore

Obiective:
Schema funcţională a calculatorului.
După studierea temei, elevii vor fi capabili:
- să descrie schema funcţională a calculatorului şi destinaţia fiecărei unităţi;
- să cunoască echipamentele periferice ale calculatoarelor modeme;
- să cunoască componentele unui calculator personal şi să explice destinaţia lor.
Instrucţiunile şi formatul lor.
După studierea temei, elevii vor fi capabili:
- să clasifice instrucţiunile în funcţie de tipul lor;
- să cunoască care este destinaţia instrucţiunilor de transfer şi să estimeze numărul
instrucţiunilor posibile de transfer;
- să cunoască când şi cum se utilizează instrucţiunile de salt şi care condiţii de test pot fi
analizate de aceste instrucţiuni;
- să cunoască care este destinaţia instrucţiunilor de intrare-ieşire şi ce informaţii conţin aceste
instrucţiuni.
Limbajul cod calculator şi limbajul de asamblare. Limbaje independente de calculator.
După studierea temei, elevii vor fi capabili:

120
- să explice noţiunile limbaj cod calculator, limbaj de asamblare, limbaje independente de
calculator;
- să dea exemple de resurse tehnice şi resurse programate ale calculatorului;
- să cunoască care este diferenţa dintre limbajele dependente şi limbajele independente de
calculator şi care sunt avantajele şi dezavantajele fiecărui limbaj.
Memorii externe pe benzi, cartele, discuri magnetice şi discuri optice.
După studierea temei, elevii vor fi capabili:
- să descrie organizarea informaţiei în memoria externă şi principiile de funcţionare a
memoriei externe;
- să cunoască de ce depinde numărul total al instrucţiunilor unui calculator;
- să cunoască care sunt avantajele şi dezavantajele implementării prin echipamente şi ale
implementării prin program;
- să cunoască resursele tehnice şi resursele programate ale unui sistem de calcul;
- să explice cum funcţionează unitatea de memorie pe o bandă magnetică şi de ce depinde
capacitatea de memorie a unei benzi magnetice;
- să cunoască diferenţa dintre memoriile externe cu acces direct şi acces secvenţial şi de ce
depinde timpul de acces al unităţii de discuri magnetice;
- să cunoască capacitatea de memorare a unui disc optic;
- să cunoască cum se înregistrează informaţia pe un disc optic CD-ROM.
Vizualizatorul şi tastatura. Imprimantele.
După studierea temei, elevii vor fi capabili:
- să descrie schemele bloc şi principiile de funcţionare ale vizualizatorului, tastaturii şi
imprimantelor;
- să cunoască care sunt indicii principali de calitate ai unui vizualizator;
- să cunoască grupurile de taste şi destinaţia lor;
-• să cunoască cum se clasifică imprimantele în funcţie de tehnica de tipărire;
- să cunoască care sunt părţile componente ale unei imprimante;
- să cunoască care este principiul de funcţionare a imprimantei matriceale cu ace şi cum
funcţionează această imprimantă;
- să explice cum funcţionează o imprimantă laser şi care este avantajul principal al acestei
imprimante.
Generaţii de calculatoare.
După studierea temei, elevii vor fi capabili:
- să enumere parametrii tehnici şi economici ale calculatorului;
- să clasifice calculatoarele în funcţie de performanţele lor;
- să poată da o caracteristică succintă a fiecărei categorii de calculatoare: supercalculatoare,
calculatoare mari, minicalculatoare şi microcalculatoare.
Microprocesorul.
După studierea temei, elevii vor fi capabili:
- să explice destinaţia microprocesorului;
- să explice destinaţia echipamentelor din componenţa unui microprocesor (Dispozitivul
central de comandă, Dispozitivul aritmetic şi logic, Registrele de uz general, Magistrala
internă, Circuit Comandă de magistrală);
- să cunoască care sunt parametrii principali ai unui microprocesor şi să explice semnificaţia
fiecărui parametru;
- să cunoască prin ce se deosebesc microprocesoarele de tip CISC şi de tip RISC şi care sunt
avantajele microprocesoarelor de tip RISC.

121
----------- ----------- — -------- — - ------------ !
Recomandări, completări
; n ^ y № ^ j i j A""; ' ' ' " , ' in'* ‘

Studierea temei se începe cu istoria dezvoltării computerelor. Lecţia poate fi realizată în formă
de seminar sau de comunicare ştiinţifică. în orice caz, profesorul are nevoie de posteruri,
diapozitive, filme. Pentru elevi va fi utilă informaţia auxiliară despre arhitectura
microcalculatoarelor [1, pag.94]:
Din punct de vedere al utilizatorului un microcalculator IBM PC sau IBM PC compatibil în
funcţie poate fi determinat ca un ansamblu de echipament (hardware sau hard) şi programatură
(software sau soft). Componentele unui calculator pot fi distinse funcţional şi constructiv. Fiecare
componentă funcţională îndeplineşte o anumită funcţie în calculator.
Blocul central este elementul fundamental al oricărui microcalculator. în funcţie de forma
blocului central deosebim: calculatoare staţionare şi calculatoare portabile (laptop - cântăresc circă
4-5 kg, notebook - cântăresc circă 3 kg, pocket - cele mai mici).
în blocul central se găsesc:
- placa de bază (mother board); această placă conţine elementele electronice principale, cum
ar fi: generatorul semnalului de tactare, microprocesorul, memoria operativă, controllerul de
memorie, ceasul de timp real RTC (Real Time Clock), controllerul DMA (Direct Memory
Access), controllerul tastaturii, microconectorii de configurare etc.;
- magistrala de sistem (BUS), utilizată pentru conectarea părţilor componente ale
calculatorului şi transferul codurilor adreselor, datelor şi instrucţiunilor;
- sistemul de intrare/ieşire (Input/Output system) compus din plăci sau cartele specializate
numite des adaptori şi conectori de configurare, care asigură legătura cu mediul
înconjurător, deci şi interfaţa cu utilizatorul;
- unităţile periferice sunt acele dispozitive care asigură extinderea capacităţilor sistemului de
calcul; ele se clasifică după funcţiile îndeplinite în: unităţi periferice de memorie (una sau
două unităţi de disc magnetic flexibil, una sau două unităţi de disc magnetic rigid, o unitate
de disc optic); unităţi periferice pentru introducerea informaţiei în sistemul de calcul
(tastatura, mouse-ul, scanerul etc.); unităţi periferice pentru extragerea informaţiei din
sistemul de calcul (monitorul, imprimanta, plotterul etc.).
- sursa de alimentare, care transformă curentul alternativ de la reţea de 220 V sau 110 V în
curent continuu de 5 V, 10 V sau alte mărimi.

2.4.7. Reţelele de calculatoare

Planificare tematică orientativă


Număr
Tema
de ore
Reţelele de calculatoare
Introducere în reţele. Tehnologii de cooperare în reţea. 1
Topologia şi arhitectura reţelelor
Reţeaua Internet. Servicii Internet 1

Total 2
Predare-învăţare 2 ore

122
Obiective:
Arhitectura şi topologia reţelelor. Echipamente de reţea.
După studierea temei, elevii vor fi capabili:
- să cunoască factorii care au contribuit la apariţia reţelelor de calculatoare;
- să cunoască care sunt funcţiile adaptorului de reţea şi cum se identifică calculatoarele din
componenţa unei reţele;
- să explice destinaţia unui modem şi a unui radiomodem;
- să cunoască cum se clasifică reţelele în funcţie de aria de răspândire;
- să cunoască care sunt avantajele reţelelor de calculatoare şi ce servicii oferă o reţea de
calculatoare.
- să cunoască cum este organizată funcţionarea calculatoarelor din reţea în cazul tehnologiei
client-server;
- să explice destinaţia serverilor de reţea, serverului de fişiere, serverului de imprimare şi a
staţiei de lucru;
- să explice cum este organizată funcţionarea calculatoarelor din reţea în cazul tehnologiei
egal-la-egal şi care sunt avantajele şi dezavantajele acestei tehnologii;
- să explice cum interacţionează programele în curs de execuţie în cazul tehnologiei client-
server,
- să cunoască topologia reţelei Internet;
- să cunoască care este destinaţia unei porţi şi a unui ruter;
- să explice termenul pachet de date',
- să cunoască destinaţia unui protocol şi ce norme conţine un protocol;
- să explice termenul arhitectura reţelei',
- să cunoască care este destinaţia serviciului FTP şi ce fişiere pot fi transferate prin acest
serviciu;
- să explice de ce depinde viteza transferului fişierelor;
- să cunoască cum se specifică adresele în cadrul serviciilor de poştă electronică;
- să cunoască care este destinaţia unui server Web, a unui client Web şi cum interacţionează
aceste programe;
- să explice modul de specificare a resurselor în Internet cu ajutorul adreselor URL şi care este
semnificaţia câmpurilor acestor adrese;
- să cunoască care este destinaţia unui server de căutare şi ce servicii oferă un astfel de server.

Recomandări, completări
.... .. _________________________ ___________

Explicând avantajul utilizării reţelelor de calculatoare, profesorul trebuie demonstreze că


opţiunea pentru o reţea de calculatoare este pe deplin justificată. Reţelele de calculatoare permit
următoarele facilităţi [5, pag.201]:
- programele pot fi păstrate într-o singură copie (pe server) şi folosite de oricare dintre
utilizatorii reţelei;
- bazele de date pot fi exploatate concurent;
- resursele hardware (memoria externă, imprimantele etc.) pot fi exploatate simultan de mai
mulţi utilizatori;
- posibilităţi de comunicare şi schimb de informaţii între utilizatori.
Adăugăm unele detalii despre echipamentele reţelelor de calculatoare. Ele se împart în
echipamente pasive (1) şi echipamente active (2).

123
1) Tipul echipamentelor pasive este determinat de mediul prin care se execută comunicările
între calculatoare. Ca mediu de transfer se utilizează conductoare din cupru (cablul coaxial sau
perechea răsucită de conductoare), cablul optic, canalul radio şi canalul infraroşu.
Cablul coaxial reprezintă un conducător central din cupru într-un cilindru izolat acoperit cu
ecran conductor, tot din cupru. Principalul dezavantaj al cablului coaxial constă în viteza de transfer
limitată - 10 Mbit/s. In prezent în unele standarde internaţionale cablul coaxial nu se recomandă
pentru utilizare în reţelele nou configurate.
Perechea răsucită (Twisted Pair) de conductoare ce formează o linie de semnal are performanţe
majore în comparaţie cu cablul coaxial: capacitatea ei parazitară, sensibilitatea la câmpul
electromagnetic exterior şi nivelul propriu de emisie a undelor electromagnetice sunt mai mici.
Viteza de transfer a perechii răsucite se măsoară în Mbit/s.
Cablul optic (Fiber Optic Cable) constă din unul sau mai multe fibre optice acoperite cu o
substanţă specială rezistentă la acţiuni mecanice. Raza de lumină se propagă prin cablu prin reflexii
de la firul central (Core). Viteza de transfer a datelor prin cablul optic se măsoară în Gbit/s;
lungimea unui segment poate fi de câţiva kilometri. Cablul optic are sensibilitate scăzută faţă de
câmpul electromagnetic exterior şi nu prezintă singur o sursă de distorsiuni, dar este mai sensibil
faţă de variaţia temperaturii şi radiaţie. Instalarea conectorilor la capătul cablului optic necesită o
calificare înaltă a specialistului şi aparataj destul de scump.
Radiocanalul nu necesită fire conductoare, ce reprezintă un avantaj important. Dar el nu a primit
o largă răspândire din cauza preţului ridicat al aparatajului radio de emisie şi recepţie. în afară de
aceasta canalele radio sunt puternic influenţate de câmpul electromagnetic exterior ce aduce la
distorsionări destul de mari a semnalului transferat.
Canalul infraroşu ca şi canalul radio nu necesită fire conductoare. Acest canal nu este sensibil la
acţiunea câmpului electromagnetic exterior şi poate fi utilizat în condiţii de producere, unde sunt
multe surse de unde electromagnetice. Canalul infraroşu poate fi utilizat pentru interconectări a
calculatoarelor la distanţe de 1...1000 m. Viteza de transfer a informaţiei este limitată de 5 Mbit/s.
2) Dintre dispozitivele active ale reţelelor de calculatoare menţionăm: adaptorii de reţea (plăci
de comunicaţie, controllere); dispozitivele recepţie/emisie (transceivers - de la engl. transmitter
+receiver); repetori (repeaters), distribuitori (hubs), punţi (bridges), dispozitive pentru alegerea
comunicaţiilor (routers), dispozitiv pentru conectarea calculatoarelor sau reţelelor de tip diferit
(gateways).
Adaptorul de reţea este dispozitivul principal al unei reţele locale. El are drept sarcină
concordarea calculatorului la mediul de transfer al informaţiei în corespundere cu regulile de
transfer a informaţiei primite într-o reţea de calculatoare. Toate funcţiile adaptorului de reţea pot fi
clasificate în modul următor: funcţii de magistrală sau funcţii de concordare a adaptorului la
magistrala de sistem a calculatorului şi funcţii de reţea sau funcţii responsabile de organizarea
schimbului de informaţie prin reţea.
Dispozitivul recepţie/emisie serveşte pentru organizarea transferului bidirecţional a datelor
dintre adaptor şi cablul de reţea sau între două segmente ale cablului de reţea. Funcţia principală a
acestui dispozitiv constă în amplificarea semnalului sau în transformarea formei semnalului cu
scopul îmbunătăţirii performanţelor reţelei, de exemplu, pentru mărirea distanţei dintre calculatoare.
Funcţii mai complicate ele îndeplinesc în procesul convertirii semnalelor electrice din reţea în
semnale optice sau semnale radio.
Repetorul îndeplineşte funcţii mai simple ca trasceiver-ul. El nu transformă nivelele semnalelor
din reţea şi nu schimbă tipul lor. Funcţia principală a repetorului constă în restabilirea formei
semnalului atenuat şi distorsionat într-o linie lungă. Repetorul serveşte drept retranslator
bidirecţional a semnalelor din reţea.

124
Distribuitorii sunt folosiţi pentru conectarea mai multor calculatoare. Distribuitorii pot fi pasivi
sau activi (din punct de vedere al prelucrării informaţiei): distribuitorul pasiv îndeplineşte doar
funcţia mai multor repetori plasaţi constructiv împreună; distribuitorul activ poate converti
informaţia şi protocoalele regimurilor de lucru.
Bridge-ul are funcţia de organizare a schimbului de informaţie dintre reţelele cu standarde
diferite de schimb, de exemplu, Ethernet, Arcnet, Token Ring etc., sau dintre segmentele aceleaşi
reţele.
Router-ul are funcţia de alegere a canalului optimal pentru fiecare bloc de date transferat.
Aceasta se face pentru a descărca de transferuri unele segmente ale reţelei sau pentru a ocoli
segmentele defectate. El este utilizat numai pentru conectarea segmentelor care folosesc acelaşi
protocol de transfer a datelor.
Brouter-ul reprezintă un router hibrid care include părţile pozitive a bridge-ului şi router-ului.
Brouter-u\ poate lua decizia despre necesitatea alegerii canalului optimal.
Gateway este un dispozitiv care conectează reţele de tip complect diferit după organizare,
protocolul de schimb al datelor şi spaţiul acoperit (de exemplu, o reţea locală cu una globală). în
acest caz apare necesitatea convertirii totale a informaţiei, inclusiv a codurilor, formatelor,
metodelor de dirijare etc. Aceste dispozitive sunt cu mult mai complicate ca bridge-ul sau router-ul.

REFERINŢE
1. Bolun I., Covalenco I. Bazele informaticii aplicate, Editura ASEM, Chişinău, 1999.
2. Botoşanu M., Popa L., Vasilache G. ş. a. Examenul de bacalaureat la Informatică / Subiecte şi
soluţii, anii 1995 - 2003, Liceum, Chişinău, 2004.
3. Informatică. Curriculum şcolar pentru clasele a X-a - a Xll-a.
4. Gremalschi A., Mocanu Iu., Gremalschi L. Informatica. Structura calculatorului / Clasa a X- a,
Ştiinţa, Chişinău, 2000.
5. Plohotniuc E., Informatica generală, Bălţi, 2001.
6. Vasilache G., Ciobanu I., Malearovici A. ş. a. Teste la Informatică (Bacalaureat 2002), Liceum,
Chişinău, 2002.
Lim bajul de programare Pascal
2.4.8. Tipuri de date structurate

Planificare tematică orientativă


Număr
Tema
de ore
Tipuri de date structurate
Tipuri de date tablou ( a r r a y ) 2
Tipuri de date şir de caractere 2
Tipuri de date articol ( r e c o r d ) 2
Instrucţiunea wi t h 2
Evaluarea curentă 2
Tipuri de date mulţime ( s e t) 2
J Generalităţi despre fişiere / 2
| Fişiere secvenţiale I 2
Fişiere cu acces direct 2
Fişiere text 2
Evaluarea sumativă 2

Total 22

Predare-învăţare 18 ore
Evaluare 4 ore

Obiective:
Tipuri de date tablou (a r ra y )
După studierea temei, elevii vor fi capabili:
- să definească formulele metalingvistice şi diagrame sintactice ale declaraţiilor de tipuri df
date tablou;
- să explice modul de referire a componentelor tablourilor;
- să utilizeze instrucţiunile repetitive pentru prelucrarea componentelor tablourilor;
- să elaboreze programe în care se utilizează tablouri;
- să cunoască structura datelor de tip tablou.
Tipuri de date şir de caractere
După studierea temei, elevii vor fi capabili:
- să definească formulele metalingvistice şi diagrame sintactice ale declaraţiilor de tipuri de
date şir de caractere;
- să explice modul de referire a componentelor şirurilor de caractere;
- să cunoască operaţiile care pot fi efectuate asupra şirurilor de caractere.
Tipuri de date r e c o r d
După studierea temei, elevii vor fi capabili:
- să elaboreze programe în care se utilizează şiruri de caractere;
- să definească formulele metalingvistice şi diagrame sintactice ale declaraţiilor de tipuri de
date articol,
- să cunoască modul de referire a câmpurilor datelor de tip articol,
- să explice operaţiile admise pentru prelucrarea articolelor şi componentelor lor;

126
- să elaboreze programe în care se utilizează tipul de date articol.
Instrucţiunea wi th
După studierea temei, elevii vor fi capabili:
- să definească formulele metalingvistice şi diagramele sintactice ale instrucţiunii w ith ;
- să explice modul de referire a câmpurilor datelor de tip articol în interiorul instrucţiunii
w ith ;
- să înlocuiască instrucţiunea w i t h a unui program cu o secvenţă echivalentă de instrucţiuni;
- să elaboreze programe în care se utilizează instrucţiunea w it h .
Tipuri de date mulţime ( s e t )
După studierea temei, elevii vor fi capabili:
- să definească formulele metalingvistice şi diagrame sintactice ale declaraţiilor de tipuri de
date mulţime;
- să precizeze mulţimea de valori şi operaţiile admise pentru oricare tip de date mulţime;
- să elaboreze programe în care se utilizează tipul de date mulţime.
Generalităţi despre fişiere
După studierea temei, elevii vor fi capabili:
- să cunoască structura datelor de tip fişier şi semnificaţia simbolului sfârşit de fişier;
- să explice modul de scriere şi citire a datelor din fişier;
- să clasifice fişierele după tipul operaţiilor permise şi modul de acces;
- să indice ordinea în care trebuie apelate procedurile destinate prelucrării datelor de tip fişier.
Fişiere secvenţiale. Fişiere text
După studierea temei, elevii vor fi capabili:
- să poată crea şi prelucra datele din fişierele secvenţiale;
- să creeze fişiere text şi să prelucreze datele respective.

Recomanda«, completări
> Pentru tipul de date tablou instrucţiunea de atribuire dată ca exemplu în manualul de
Informatică [5, pag. 108]
a:=b
este corectă pentru declaraţia dată
var a,b: matrice ;
sau pentru declaraţia
var a: matrice ;
b: matrice ;

Această atribuire poate fi efecutată şi în cazul când tipul de date este declarat anonim, dar numai
cu respectarea condiţiei, ca ambele variabile să fie declarate de acelaşi tip. De exemplu:
pentru declaraţia
var a,b: array[1..10] of integer;
instrucţiunea a : =b este corectă, iar pentru declaraţiile
var a: array[1..10] of integer;
b: array[1..10] of integer;
sau
type vector = array[1..10] of integer;
var a: vector;
b: array[1 . .10] of integer;
atribuirea a : =b nu poate fi efectuată

127
Aceeaşi specificare este valabilă şi pentru tipul de date articol [5, pag. 116].
> în manual este dat următorul exemplu pentru tipul de date Şir de caractere [5, pag. 114]:
După executarea secvenţei de instrucţiuni
P [1 ] :=' P'; P [2]: =' e '; P[3]:='t'; P[4]:='r'; P[5]:='u'
Variabila P va avea valoarea ' P e t r u ' .
Trebuie de menţionat că acest exemplu se referă la cazul când tipul de date şir de caractere este
declarat ca o variantă a tipului a r r a y .
Dacă însă şirul de caractere este de lungime variabilă (tipul St ring în Turbo Pascal),
executarea acestei secvenţe nu va duce la atribuirea valorii ' Petru' variabilei P. Fiecare
caracter P fi ] în acest caz are valoarea corespunzătoare atribuirii efectuate, dar şirul P nu are
nici o valoare.
Secvenţa
For i:=l to 5 do write(P[i])
va afişa cuvântul 'Petru' iar apelul write (P) nu va afişa nimic şi length ( P) varetuma
valoarea 0.
Situaţia se schimbă, dacă se execută instrucţiunea P [0 ] :=chr (5) . în acest caz variabila P va
avea valoarea ' Petru' , iar length (P) - valoarea 5.
> La specificarea unei valori de tip mulţime printr-un constructor de mulţime elementele acestui
constructor pot fi date prin valori concrete, expresii sau intervale ale tipului de bază [5, pag.
124]. Dar spre deosebire de tipul de date subdomeniu, care nu permite ca limita inferioară a
intervalului să fie mai mare ca limita lui superioară, în cazul tipului de date mulţime o
specificare de acest fel nu va declanşa o eroare, dar din acest interval nu se va lua nici o valoare.
De exemplu, declaraţia V ar a : 1 0 .. 5
nu este permisă, pe când mulţimea specificată prin constructorul [10..5,7..9] va conţine elementele 7,8 şi 9.

> Variabilele de tip fişier se deosebesc de celelalte variabile prin faptul că primelor li se asociază
fişiere aflate pe suport extern şi nu li se alocă memorie ca în celelate cazuri. Acest fapt permite
ca acelaşi fişier de date să fie folosit în programe diferite şi să dureze în timp şi în afara
perioadei de execuţie a programului. Un avantaj deosebit în utilizare o au fişierele text deoarece
ele sunt „vizibile”, fiind alcătuite din caractere. Ele se pot vedea cu editorul mediului Turbo
Pascal şi chiar pot fi corectate folosind acest editor. Totuşi, la prelucrarea acestor fişiere trebuie
de ţinut cont de faptul în ce mod se execută citirea/scrierea variabilelor din/în fişierele text.
De exemplu, în manual este specificat că în cazul fişierelor text variabila dintr-un apel
r e a d ( f , v)
poate fi de tipul i n t e g e r , r e a l , c h a r sau şir de caractere şi în programul ce urmează [5,
pag. 141] este arătat cum pot fi citite 3 variabile de tip r e a l din fişier cu procedura
read ln (f, a ,b ,c ) .
Dar situaţia este mai complicată în cazul când în fişierul text sunt scrise în aceeaşi linie variabile
de diferite tipuri, având printre ele şi variabile de tip s t r i n g . Ca exemplu, în exerciţiul 9 [5,
pag. 143] este dat că fiecare linie a fişierului text conţine următoarele date, separate prin spaţii:
numărul de ordine ( i n t e g e r ) ,
numele (un s t r i n g ce nu conţine spaţii),
nota la disciplina 1 ( r e a l ) ,
nota la disciplina 2 ( r e a l ) ,
nota la disciplina 3 ( r e a l ) .
în acest caz, citirea din acest fişier ar fi mai simplu de efectuat dacă datele de intrare ar fi
aranjate în următoarea ordine: mai întâi numărul de ordine, apoi notele la disciplinele date şi

128
doar la sfârşit variabila de tip string. în continuare este dat programul care citeşte din fişierul
F datele aranjate anume în acest mod şi creează în fişierul FI o copie a fişierului de intrare, iar
în fişierul F2 scrie în fiecare linie următoarele date separate prin spaţii:
numărul de ordine (integer),
numele (string),
nota medie (real).
De exemplu, pentru fişierul de intrare P9. in cu următoarele date:
1 10.00 10.00 10.00 Leu
2 6.50 9.90 7.75 Vulpe
3 8.50 8.40 8.70 Ursu
fişierul media.out va avea următorul conţinut:
1 Leu 10.00
2 Vulpe 8.05
3 Ursu 8.53

Trebuie de menţionat, că şirul de caractere S, citit din fişierul F în acest mod, va conţine în prima
poziţie un spaţiu, iar variabilele reale se scriu în formatul X: 0: 2 ca să fie separate de un singur
spaţiu, indiferent de câte poziţii ocupă (4 sau 5).
Dar în cazul când variabilele sunt date în ordinea indicată în exerciţiu, şi anume: variabila de tip
integer a, şirul de caractere S şi apoi numerele reale b, c şi d, după un apel de felul
readln(F, a , S, b , c, d ) doar variabila a va fi citită corect, iar şirul de caractere S va conţine
toată informaţia ce urmează în linia dată: numele şi cele trei note. în acest caz, este nevoie de a
separa din acest şir numerele reale, astfel se va obţine un program mai complicat cum ar fi cel ce
urmează:

129
while not eof(F) do
begin
readln(F,a,s);
writeln{FI,a,s);
i : =2 ;
while s[i]<>' ' do inc(i);
sl:=copy(s,2,i-2);
inc(i);p:=i;
while s [!]<>'' do inc(i);
s2:=copy(s,p,i-p);val(s2,b,j);
inc(i);p:=i;
while s[i]<>' ' do inc(i);
s2:=copy(s,p,i-p);val <s2,c,j );
s2:=copy(s,i+1,length(s)-i);val (s2,d,j);
writeln(F2,a,' ',si, ' ', (b+c+d)/3:0:2)
end;
close(F);close(Fl);close (F2);
END.

Pentru fişierul de intrare cu următorul conţinut:


1 Leu 10.00 10.00 10.00
2 Vulpe 6.50 9.90 7.75
3 Ursu 8.50 8.40 8.70
fişierul media.out va conţine datele:
1 Leu 10.00
2 Vulpe 8.05
3 Ursu 8.53
O soluţie mai simplă în cazul dat este de a citi şirul S câte un caracter, după cum este efectuat în
programul următor:

program P9_3;
var F, Fl ,F2itext;
a :integer;
b,c,d:real;
cl,c2:char;]
s :string;
BEGIN
assign(F,'p9.in'); assign(Fl,'copia.out') ;
assign(F2,'media.out');
reset(F);
rewrite(Fl); rewrite(F2);
while not eof(F) do
begin
Si— *1; read(F,a,cl,c2);
while c2<>' ' do
begin
s:=s+c2;
read(F,c2)
end;
readln(F,b,c,d);
writeln(Fl,a,' ',s,' ',b:0:2,' ',c:0:2,' ',d :0:2);
writeln(F2,a,' ',s,' ',(b+c+d)/3:0:2)
end;
close(F);Close(Fl);close(F2);
END.

130
' . .7■:■—
P
Probleme rezolvate
Tipul de daie Tablou
Problemă [5, pag. 112, prob. 9]

Utilizând un tip de date tablou, elaboraţi un program care realizează algoritmul lui Eratostene pentru
calcularea numerelor prime mai mici sau egale ca un număr natural dat n (n<200)

Rezolvare:
program Prime;
type vector=array [2..200] of boolean;
var v :vector;
i, j ,n:integer;
BEGIN
write('n= ’}; readln(n);
writeln('Numerele prime mai mici sau egale ca ’,n);
for i :=2 to n do
if v[i]=false
then for j :=i+l to n do
if j mod i = 0 then v[j]:=true;
for i:=2 to n do if not v[i] then write (i,’ ');
END.

Tipul de date Şir de caractere


Problemă [5, pag. 115, prob. 9]

Şirul S este compus din câteva propoziţii, fiecare terminându-se cu punct, semn de exclamare sau semnul
întrebării. Elaboraţi un program care afişează pe ecran numărul de propoziţii din şirul în studiu.

Rezolvare:
var S:string;
i,k:byte;
BEGIN
writeln('Daţi şirul de caractere');
readln(S);
For i:=l to length(S) do
if (s[i]='.') or {s [i ]='?') or (s[i ]='!') then inc(k);
writeln {’In şirul dat sunt ', k, ' propoziţii').
END.

Tipul de date Articol ( r e c o r d )


Problemă (5, pag. 120, prob. 6|
Fie declaraţiile
type Punct=record
x,y:real;
end;
Triunghi=record
A, B,C:Punct;
end;
Utilizând tipurile de date Punct şi Triunghi elaboraţi un program care citeşte de la tastatură informaţiile
referitoare la n triunghiuri (n<10) şi afişează pe ecran:
a) aria fiecărui triunghi;
b) coordonatele vârfurilor triunghiului cu aria maximă;
c) coordonatele vârfurilor triunghiului cu aria minimă;
d) informaţiile referitoare la fiecare triunghi în ordinea creşterii ariilor.________ _______________________
Rezolvare:
în program se utilizează
a) formula de calcul a distanţei dintre punctele i şi j :

d,t =J(x, - X j ) 2 +(y, - y , Y ,

131
unde Xi, y t şi x jr y . sunt coordonatele punctelor i şi j respectiv;
b) formula lui Heron pentru calcularea ariei triunghiului:

S =yjp(p-a)(p~b)(p-c),

undep este semiperimetrul, iar a , b ş i c sunt lungimile laturilor respective.

type Punct=record
x ,y :real;
end;
Triunghi=record
A,B,C:Punct;
end;
Date=record
T :triunghi;
A ria:real
end;
var V:array[1..10] of Date;
aux:date;
n , i , pm in,pmax:1 ..1 0 ;
a, b, c, p, min, max: r e a l ;
bo:boolean;
BEGIN
w r i t e l n ( ' d a ţ i n u m ă r u l de t r i u n g h i u r i ' ) ; r e a d l n ( n ) ;
w r i t e l n ţ ' Daţi co o rd o n a te le v i r f u r i l o r : ' ) ;
for i ;=1 to n do
begin
w r i t e l n ( ' T r i u n g h i u l ' , i );
w r i t e ('v i r f u l A:'); r e a d .ln ( v [i] .T .A. x, v [ i ] .T .A. y) ;
w r i t e ( ' v i r f u l B : ' ) ; r e a d l n ( v [i]. T . B.x , v [ i ] .T .B . y ) ;
write('v i r f u l C:'); r e a d l n ( v [ i ] . T . C . x,v[ i ].T . C.y);
a:=sqrt(sqr(v[i].T.B.x-v[i].T.C.x)+sqr(v[i].T .3.y-v[i].T.C.y));
b :=sqrt(sqr(v[i].T .A.x-v[i].T.C.x)+sqr(v [i].T.A.y-v[i].T.C.y));
c:=sqrt(sqr(v[i].T .B .x-v[i].T.A.x)+sqr(v[i].T.B.y-v[i].T.A.y));
p:=(a+b+c)/2;
v[i].Aria:=sqrt(p*(p-a)* (p-b)* (p-c))
end;
min:=v[l].aria;max:= v [1 ].aria;pmin:=l;pmax:=l;
for i:=l to n do
begin
w r i t e l n ( ' A ria t r i n u g h iu lu i i , , v [ i ] . a r i a : 0:2);
if y [ i ] . a r i a < m i n then begin m i n : = v [ i ] . a r i a ; p m i n : = i end
else if v [ i ] . a r i a > m a x
then begin
max:= v [i].aria;pmax:=i end;
end;
w r i t e l n ( ' T r i u n g h i u l c u a r i a m axim a a r e c o o r d o n a t e l e : ' ) ;
w r i t e l n ( ' v i r f u l A :' , v[pmax]. T.A .x :0 : 2 , ' ' , v[pmax]. T.A .y :0 :2 );
w r i t e l n { 'v i r f u l B : ' , v[pmax]. T .B .x : 0 : 2 ,' ' , v[pmax]. T .B .y :0 :2 ) ;
w r i t e l n ( ' v i r f u l C : ' , v[pmax]. T .C .x :0 : 2 , ' ' , v[pmax]. T .C .y :0 :2 );
w r i t e l n { ' T r i u n g h i u l c u a r i a m inim a a r e c o o r d o n a t e l e : ' ) ;
w r i t e l n ( 'v i r f u l A :’, v[pm in].T .A .x:0 : 2 , ' ' , v[pm in].T .A .y:0:2);
w r i t e l n ( ' v i r f u l B: ' , v [ p m i n ] . T . B . x : 0 : 2 , '' , v [ p m i n ] . T .B .y : 0 : 2 ) ;
w r i t e l n ( ' v i r f u l C: ' , v [p m in ]. T .C .x :0 : 2 , ' ' , v [ p m i n ] . T .C .y : 0 :2 ) ;
{ o r d o n a r e a t r i u n g h i u r i l o r d u p ă a r i e , m e to d a b u l e l o r ]
bo:=true;
while b o do
begin
bo:=false;
for i:=l to n-1 do
if v [ .i] . a r i a > v [ i + l ] . a r i a then

132
begin
aux:= v [i];
v[i]:=v[i+l];
v[i+1]:=aux;
bo:=true
end;
end;
writeln('triunghiurile in ordinea creşterii ariilor:');
for i:=l to n do
begin writeln('Trinughiul ',i,':');
writeln('virful A:',v[i].T.A.x:0:2, ' '/v [i].T .A.y:0:2);
writeln('virful B : ',v[i].T.B.x:0:2, ' ',v[i].T.B.y:0:2);
writeln('virful C : ',v[i].T.C.x:0:2,' ',v[i] .T .C .y :0 :2) ;
writeln('aria:',v[i].aria:0: 2)
end;
END.

Tipul de date Mulţime ( s e t )


❖ Problemă [5, pag. 128, prob. 10|_______________________________________________________________
Elaboraţi un program care citeşte de la tastatură două şiruri de caractere şi afişează pe ecran:
a) caracterele care se întâlnesc cel puţin în unul din şiruri;
b) caracterele care apar în ambele şiruri;
c) caracterele care apar în primul şi nu apar în şirul al doilea.

Rezolvare:____________________________________________ ______________________________________
program Şiruri;
var sl,s2:string;
ml,m2:set of char;
iibyte;
j :char ;
BEGIN
Writelnţ'Daţi primul sir de caractere');
readin(si);
Writeln{'Daţi al doilea sir de caractere');
readin(s2) ;
ml:=[];m2:=[];
for i:=l to length(sl) do ml:=ml+[sl[i]];
for i:=l to length(s2) do m2;=m2+[s2[i]];
writeln ('Caract. care se intilnesc cel puţin in unul din şiruri:');
for j:=#0 to #255 do if j in (ml+m2) then writefj,' ');
writeln;
writeln ('Caracterele care apar in ambele şiruri:');
for j:=#0 to #255 do if j in (ml*m2) then write(j,' ');
writeln;
writeln {'Caract. care apar in primul si nu apar in al doilea sir:');
for j:=#0 to #255 do if j in (ml-m2) then write(j,' ');
readin
END.

Fişiere cu acces direct


❖ Problemă [5, pag. 137, prob. 5]
Se consideră următoarele tipuri de date:
type angajat=record
NumePrenume:string;
ZileLucrate:1..31;
PlataPeZi:real;
PlataPeLuna:real; end;

133
FisierAngajati = f i l e o f Angajat;
Elaboraţi un program care:
a) citeşte de la tastatură datele referitoare la fiecare angajat şi creează fişiere de tipul FisierAngajati;
b) modifică, dacă e necesar, câmpurile ZileLucrate, PlataPeZi şi PlataPeLuna ale componentelor indicate
din fişierul respectiv;
c) calculează salariul mediu al angajaţilor incluşi în fişier;
d) afişează la ecran datele despre angajaţii cu plata lunară maximală;
e) ordonează angajaţii din fişier în ordine alfabetică;
f) ordonează angajaţii din fişier în ordinea creşterii plăţilor pe lună;
g) adaugă noi angajaţi în fişierul existent;
h) exclude din fişier persoanele concediate.
Rezolvare:__________________________________________________________________________________
program Fişiere;
type angajat=record
NumePrenume:string;
ZileLucrate:1..31;
PlataPeZi:real;
PlataPeLuna:real;
end;
FisierAngajati = file of Angajat;
var F,G:FisierAngajati;
A,B:angajat;
s,nume:string;
n,i,j,kuinteger;
c:char;
Suma,max:real;
BEGIN
repeat,
writeln('Meniul: ') ;
writeln ('a - creare fişier de tipul FisierAngajati');
writeln{'b - modificarea datelor din fişier');
writeln('c - calcularea salariului mediu al angajaţilor');
writeln('d - afişarea datelor angajaţilor cu plata lunara maxima');
writelnţ'e - ordonarea angajaţilor in ordine alfabetica');
writeln('f - ordonarea angajaţilor in ordinea creşterii
plaţilor pe luna');
writeln('g - adaugrea in fişier a datelor persoanelor angajate');
writeln(*h -excluderea din fişier a datelor persoanelor concediate');
writeln('0 - oprire'); readln(c);
case c of
'a ':begin
writeln('Numele fişierului de creat:'); readln(s);
assign(F,sj; rewrite(F);
write('Numărul de angajaţi: '); readln(n);
writeln('Datele angajaţilor:');
for i:=l to n do
begin
writeln('Angajatul ',i);
writef'Nume, Prenume: '); readln(A.NumePrenume);
write('Zile lucrate: '); readln{A.ZileLucrate);
write('Plata pe zi: '); readln(A.PlataPeZi);
A.PlataPeLuna:= A.ZileLucrate*A.PlataPeZi;
write (F, A) ;
end;
close(F);
end;
'b ':begin
writeln('Numele fişierului in care veţi modifica datele:');

134
readln (sj ; assign(f,s); reset(F);
n:=FileSize(F);Writeln('are ',n,' componente');
writeln('Nr. angajatului pentru care veţi modifica datele:');
readln(i); seek(F,i);
write('Nume, Prenume: '); readln(A.NumePrenume);
write('Zile lucrate: '); readln(A.ZileLucrate);
write('Plata pe zi: '); readln(A.PlataPeZi);
A.PlataPeLuna:= A.ZileLucrate*A.PlataPeZi;
write(F,A);
close(F);
end;
'c ':begin
writeln('Numele fis. in care vreţi sa calc. salariul mediu:');
readln{s);
assign(F,s); reset(F);
n:=FileSize(F);Suma:=0;
for i:=l to n do begin
read(F,A);Suma:=Suma+A.PlataPeLuna;
end;
writeln ('Salariu mediu al angajaţilor este ', Suma/n:0:2);
close(F);
end;
'd':begin
writeln('Numele fis.in care veţi cauta angaj.cu salariu maxim:');
readln(s);
assign(F,s); reset(F);
n :=FileSize(F);max:=0;
for i :=1 to n do
begin read(F,A);
if A. PlataPel.una>max then max:=A.PlataPeLuna;
end;
writeln('Datele angajaţilor cu salariul maxim:');
Seek(F,0);
for i:=1 to n do
begin read(F,A);
if A.PiataPeLuna-max then
writeln (A.NumePrenume,' ',A.ZileLucrate,'',
A.PlataPeZi:6:2, A.PlataPeLuna:8:2);
end;
end;
'e ':begin
writeln('Numele fişierului pe care il ordonaţi alfabetic:');
readln(s);
assign(F,s); reset(F);
n:=FileSize(F);;
for i:=0 to n-2 do
for j:=i+l to n-l do
begin seek(F,i);read(F,A); seek(F,j);read(F,B);
if B.NumePrenume<A.NumePrenume then
begin
seek(F,i) ;write(F,B); seek(F,j) ;write(F,A);
end;
end;
writeln('Angajaţii ordonaţi alfabetic:');
Seek(F,0);
for I:=1 to n do begin read(F,A);
writeln (A.NumePrenume,’ ',A.ZileLucrate, ' ',
A.PlataPeZi:6:2, A.PlataPeLuna:8:2);
end;
end;
'f ':begin
writeln('Numele fis. pe care il ordonaţi după salariu:');
readln (s); assign (F,sj; reset (F) ;_______ ________ _____________
n:=FileSize(F);;
for i: =0 to n-2 do
for j:=i+l to n-1 do
begin seek(F,i);read(F,A); seek(F,j)/read(F, B);
if B .PlataPeLuna<A.PlataPeLuna then
begin
seek(F,i) ;write(F,B); seek(F,j) ;write(F,A);
end;
end;
writeln('Angajaţii in ordinea creşterii plaţii lunare:
Seek(F,0);
for I :=1 to n do begin read(F,A);
writeln (A.NumePrenume,' 1,A.ZileLucrate,'
A.PlataPeZi: 6 : 2 , A.PlataPeLuna:8:2);
end;
end;
'g ':begin
writeln('Numele fişierului in care veti adauga date:'),
readln(s);
assign(f,s); reset(F);
writeln('Cati angajaţi veti adauga:');
readln(k); seek(F,FileSize(F));
for i :=1 to k do begin
write('Nume, Prenume: '); readln(A.NumePrenume);
write('Zile lucrate: '); readln(A.ZileLucrate);
write('Plata pe zi: '); readln(A.PlataPeZi);
A.PlataPeLuna:= A.ZileLucrate*A.PlataPeZi;
write(F,A); end;
close(F);
end;
'h':begin
writeln('Numele fişierului din care veti exclude
persoanele concediate:');
readln(s);
assign(F,s); reset I F ) ;assign(G,'temporar');rewrite(G)•
writeln('daţi numele angajatului pe care il exclude!i:'
readln(nume);
while not eof(F) do
begin
read(F,A);
if A. NumePrenumeOnume then write (G, A);
end;
close(F);close(G);erase(F);rename(G,s)
end;
end;
until c='0';
END.

1, Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) tipul indicelui unui tablou poate fi oarecare;
b) tipul elementelor unui tablou poate fi oarecare;
c) dimensiunea tabloului nu se schimbă pe parcursul executării programului,
d) numele variabilelor de tip tablou nu pot apărea într-o instrucţiune de atribuire.

2. Fie declaraţiile: type TI = array [-5 ..5] o f integer;


var T 2 : array [ - 5 ..5] o f Tl;
T 3 : array [ 'a ' . .,'d'] o f T2;

136
Indicaţi care este afirmaţia adevărată dintre cele ce urmează:
a) tabloul T2 are 10 elemente de tip TI;
b) tabloul T2 are 100 de elemente de tip i n t e g e r ;
c) tabloul T3 are 4 elemente de tip T2;
d) nici una din afirmaţiile anterioare nu este adevărată.
3. Secvenţa de program:

b:=true;
while b do
begin
b:= false;
for k : = l to n - l do
if v [ k ] < v [ k + l ] then
begin
aux: = v [ k ] ; v [ k + l ] : = v [ k ] ;
v[k+l]:=aux; b:=true;
end;
end;

a) are erori de sintaxă;


b) ordonează crescător n elemente ale vectorului v;
c) ordonează descrescător n elemente ale vectorului v;
d) nici una din afirmaţiile anterioare nu este adevărată.
4. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) Toate şirurile de caractere de tip string sunt compatibile;
b) şirul care depăşeşte 255 de caractere se trunchiază;
c) concatenarea, alipirea şi juxtapunerea nu sunt sinonime;
d) funcţia predefinitâ l e n g t h (S) retumează o valorea de tip c h a r .
5. Fie programul:

program S i r ;
var s:string; c:char,
L, i:integer;
BEGIN
readln <s); L:=iength (s);
for i :=1 to L do
begin
c:= s[i]; s[i]:= s[L + l-i]; s[L +l-i]:=c;
end;
w riteln ( s ) *67
END.__________________

Programul dat:
a) afişează şirul introdus s;
b) inversează şirul s şi apoi îl afişează;
c) are erori de sintaxă;
d) nici una din afirmaţiile anterioare nu este adevărată.
6. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) componentele tipului articol nu pot fi afişate la ecran;
b) numele unei variabile de tip articol poate apărea în partea stângă a instrucţiunii de atribuire;
c) numele unei variabile de tip articol nu poate apărea în partea dreaptă a instrucţiunii de atribuire;
d) componentele tipului articol se numesc câmpuri.
7. Fie următoarele definiţii:
type E lev = record
Nume : s t r i n g [ 1 5 ] ;
Prenume : s t r i n g [ 1 5 ] ,
Media : r e a l ; end;
L i s t a E l e v i l o r = array [ 1 . . 3 0 ] of E lev;
Var E: e l e v ;
L: ListaElevilor;
Indicaţi care este instrucţiunea corectă dintre cele ce urmează:
a) E : =L [ 2 ] ;
b) w r i t e l n ( E . N o t a M e d i e ) ;
c) case E . M e d i a of
9,10: w riteln ('foarte bine');
7,8: w riteln ('bine');
5,6: w riteln ('su ficien t')
end;
d) E l e v . Nume := ' S p a t a r u ' ;

8. Fie declaraţiile din testul precedent. Ce se va afişa pe ecran după execuţia secvenţei de program:
for i : = l to 3 0 do
readln (L [ i J . n u m e ) ;
i:= 10;
with L [ i ] do
for i : = l to 1 0 do
w riteln (nume);

a) numele primilor 10 elevi;


b) numele primului elev repetat de 10 ori;
c) nici un rezultat, secvenţa are erori;
d) nici un răspuns anterior nu este corect.

9. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) tipul de bază al tipului mulţime poate fi orice tip ordinal;
b) tipul mulţime are 2*n valori în cazul când tipul de bază are n=2 valori;
c) o expresie nu poate apărea ca element al generatorului de mulţime;
d) elementele unei mulţimi nu pot fi referite.
10. Fie a şi b operanzi de tipuri mulţime compatibile. Indicaţi care este afirmaţia adevărată dintre cele ce urmează:
a) relaţia a = b este adevărată dacă a şi b conţin acelaşi număr de elemente;
b) relaţia a <= b este adevărată dacă vaicarea fiecărui element al lui a este mai mică decât valoarea oricărui
element al lui b;
c) operaţia relaţională in verifică apartenenţa:
d) expresia a-b este de tip i n t e g e r .
11. Indicaţi care sunt cele două definiţii corecte dintre cele ce urmează:
a) type f i b r e = ( b u m b a c , i n , m a t a s e ) ;
s e t _ f i b r e = set o f f i b r e ;
b) type l i t e r e = ' a ' . . ' f ' ;
var v o c a l e : set of l i t e r e ;
c) var c i f r e : set of ' 0 ' . . ' 9 ' ;
d) var n u m e r e : set of 0 . 5 . . 9 . 5 ;
12. Indicaţi care sunt cele două expresii logice adevărate dintre cele ce urmează:
a) n o t ( ' c ' i n [ 'a ' . . ' f '] ) o r ( [ 1. . 1 0 , 1 1 . . 21] <= [ 1. . 20] ) ;
b) ['a'. .'d','g','l','o']-['b','c','l'. .'o']o[’a','d','g','m','n'] ;
c) [] + [ l , 2 , 3 ] * [ 0 ] + [ 3 , 4 , 5 ] = [0] ;
d) [ 3. .1] + [ 6 . . 3 ) = []
13. Fie secvenţa de program:

n:=[1..10];
for i :=0 to 20 do
if n * [ 2 * i + l ] <> [] then n:=n - [ 2 * i + l ] ;

Valoarea variabilei n după execuţia acestei secvenţe va fi:


a) [1,3,5,7,9,11,13,15,17,19];
b) [1,2,3,4,5,6,7,8,9,10];
c) [0,1,3,5,7,9];
d) nici un răspuns anterior nu este corect.

138
14. Indicaţi care este afirmaţia adevărată dintre cele ce urmează:
a) tipul de bază ai unui fişier poate fi doar un tip simplu;
b) fimcţia EOLN ( F) este de tip boolean;
c) funcţia EOLN (F ) determină lungimea liniei unui fişier text F;
d) procedura S e e k ( F , 2 ) fixează poziţia de prelucrare la componenta a doua a fişierului F.

15. Indicaţi care sunt cele două definiţii corecte dintre cele ce urmează:
a) type f i s = t e x t ;
var f : f i s ;

b) type f i s = ( t e x t ) ;
var f : f i l e o f f i s ;

c) type f i s = t e x t ;
var f : f i l e o f f i s ;

d) type f i s = t e x t ;
var f : f i l e o f t e x t ;

Răspunsuri: Testul 1: b) şi c); Testul 2: d); Testul 3: d); Testul 4: a) şi b); Testul 5: a);
Testul 6: b) şi d); Testul 7: a); Testul 8: d); Testul 9: b) şi d); Testul 10: c);
Testul 11: b) şi c); Testul 12: b) şi d); Testul 13: d); Testul 14: b);
______ Testul 15: a) şi b)____________________________

Modele de proiecte didactice

Modelul 1
Data:
Clasa: a X-a
Obiectul: Informatica
Profesor:
Tipul lecţiei: Lecţie de formare a priceperilor şi
deprinderilor
D urata: 45 min

Tema lecţiei: Aplicarea tipului de date String la rezolvarea problemelor

Obiectivele lecţiei

> Obiective de referinţă:


• să cunoască tipul de date Şir de caractere ( S t r i n g ) ;
• să poată utiliza tipul de date S t r i n g la rezolvarea problemelor.

> Obiective operaţionale:


• să cunoască modul de referire a componentelor şirurilor de caractere;
• să poată preciza operaţiile admise pentru prelucrarea şirurilor de caractere şi componentelor lor;
• să poată aplica operaţiile relaţionale şi instrucţiunile repetitive pentru prelucrarea componentelor şirurilor de
caractere;
• să cunoască funcţiile şi procedurile predefinite pentru tipul String;
» să poată aplica funcţiile şi procedurile predefinite la rezolvarea problemelor;
• să poată da exemple de probleme rezolvarea cărora necesită utilizarea tipurilor de date şir de caractere;
• să poată elabora programe în care se utilizează şiruri de caractere.

Metode de învăţământ:
•învăţarea reciprocă, «Conversaţia, «Analiza, «Comparaţia, «Demonstrarea, «Observaţia independentă, «Cercetarea
în grup, «Descoperirea, «Algoritmizarea, «Exerciţiul, «metoda Philips 6/6.

139
Mijloace de învăţământ:
•o clasă de calculatoare; «soft-ul: mediul de programare Turbo Pascal; «manualul; «culegerea de probleme; • fişe.

Scenariul lecţiei

Formele de Durata,
Etapele lecţiei Activitatea profesorului Activitatea elevilor
învăţare min
Salut elevii, verific • Răspund la apel,
Moment organizatoric
prezenţa, le propun să Individual, pregătesc calculatoarele 1
lanseze programul Turbo în perechi pentru lucru
Pascal
Anunţarea temei şi Scriu tema la tablă şi
In colectiv Ascultă, fac notiţe
obiectivelor lecţiei anunţ obiectivele lecţiei
Reactualizarea Le propun elevilor să-şi • Discută, răspund la
cunoştinţelor, amintească operaţiile de întrebări
priceperilor şi bază, funcţiile şi
deprinderilor însuşite procedurile tipului String
anterior Invit la tablă un elev
pentru a scrie secvenţa Analizează secvenţa de
de program Pascal care program
determină numărul de
în colectiv
cifre dintr-un număr
Rezolvarea Individual
utilizând doar un tip de
problemelor: în perechi
date simplu Scriu programul în
în grupuri de câte
Le demonstrez elevilor 6 elevi caiet, îl analizează şi-l
că această problemă se testează la calculator
rezolvă simplu utilizând
tipul de date String

Le propun elevilor acasă


Rezolvarea în mod similar să Notează sarcina în caiet
prob! emelor mode! elaboreze două program^
(cu şi tară Stâng) pentru
a inversa un număr
natural n în alt număr
natural m

Le propun elevilor pentru


rezolvare două probleme:
Rezolvarea Să se înlocuiască într-o
problemelor cu propoziţie cuvântul doi
condiţii schimbate prin cifra 2;
Se dă o propoziţie
formată din cuvinte
separate prin spaţiu. Să
se afişeze la ecran într-o
coloană aceste cuvinte
Rezolvarea
problemelor cu Analizează problemele, 12
elemente de Elaborez împreună cu participă la elaborarea
creativitate elevii programele pentru programelor, le scriu în
aceste probleme, le caiet
propun să le noteze în
caiet şi să le testeze la
calculator acasă Elevii elaborează în
Repartizez câte o perechi programele şi
problemă distinctă la rezolvă problemele pe
fiecare pereche de elevi calculator
(după cum sunt repartizaţi
la calculatoare) şi le
propun să le rezolve în
mediul de programare

140
Turbo Pascal (problemele:
3a, 3c, 4-7, 9, 16, 17, 18,.
• Monitorizez lucrul • Analizează programele 3
elevilor, intervin, dacă este elaborate de grupul vecin
nevoie.
• După testarea programelor
le propun echipelor să-şi
interschimbe locurile două
câte două şi să' analizeze
problemele rezolvate de • Lucrează în grup,
grupul vecin. secretarul notează 7
• Le propun elevilor să se problemele elaborate,
grupeze câte 6 elevi, să-şi conducătorul dirijează
aleagă fiecare grup discuţia şi urmăreşte să fie
„secretarul” şi propuse pentru utilizare
„conducătorul”. Le împart toate funcţiile şi
câte o foaie şi le explic procedurile
sarcina: fiecare grup
trebuie să alcătuiască timp
de 6 minute 2 probleme la
rezolvarea cărora ar fi
nevoie de utilizat cât mai
multe (ideal - toate)
funcţiile şi procedurile
String
• Strâng foile şi anunţ
elevii că le vom analiza
şi vom rezolva cele mai
interesante probleme la
lecţia următoare.
Concluziile şi » Discut cu elevii şi
în colectiv
realizarea răspund la întrebări • Discută, pun întrebări 2
feedback-ului
$ Propun terna de acasă:
Probleme din culegere,
Anunţarea temei pentru cei mai creativi • Notează în caiet tema
Individual 1
pentru acasă din fişele cu probleme pentru acasă.
pentru concursuri de
programare

Modelul 2
Data:
Liceul:
Clasa: a X-a (profilul real)
Obiectul: Informatica
Profesor:
Tipul lecţiei: Lecţie de asimilare a cunoştinţelor
Durata: 45 min.

Tema lecţiei: Tipul de date m u lţim e

Obiectivele lecţiei
> Obiective de referinţă:
• Cunoaşterea caracteristicilor tipului de date mulţime;
• Aplicarea tipului set la rezolvarea problemelor.
> Obiective operaţionale:
• să poată defini un tip mulţime;
• să poată declara variabile şi constante de tip set;
• să poată preciza mulţimea de valori a oricărui tip de date mulţime;
• să cunoască restricţiile impuse de realizările limbajului în cazul tipurilor de date mulţime;

141
• să poată preciza operaţiile admise pentru prelucrarea şirurilormulţimilor;
• să poată specifica valorile de tip mulţime cu ajutorul constructorului de mulţimi;
• să poată preciza tipul de bază al unui tip de date mulţime;
• să cunoască operaţiile de tipul set\
• să cunoască cum se scriu şi cum se citesc de mulţimile;
• să dea exemple de probleme rezolvarea cărora necesită utilizarea tipurilor de date mulţime;
• să elaboreze programe în care se utilizează tipuri de date mulţime.

Metode de învăţământ:
•Conversaţia, «Conspecte de reper, «Analiza, «Comparaţia, «Problematizarea, «Observaţia independentă, «Cercetarea în
grup, «învăţarea reciprocă «metoda Jigzaw (Mozaicul)

Mijloace de învăţământ:
•o clasă de calculatoare; «soft-ul: mediul de programare Turbo Pascal; «manualul; «fişe cu materialul de studio;
•culegerea de teste grilă.

Scenariul lecţiei

Metode de Durata,
Etapele lecţiei Activitatea profesorului Activitatea elevilor
învăţământ min
• Salut elevii, verific prezenţa, le
Răspund la apel, îşi
Moment propun să-şi pregătească caietele
Individual pregătesc cele necesare i
organizatoric pentru lucru şi le împart la fiecare
câte o fişă cu materialul de studiu
Anunţarea temei
• Scriu tema la tabla şi anunţ în colectiv,
şi obiectivelor Ascultă, fac notiţe i
obiectivele lecţiei individual
lecţiei
• împart elevii în 3 grupe a câte 4 Să organizează în grupe, 3
elevi, îi anunţ care sunt cele 4 Individual notează subtema de care
subteme în care a fost divizată răspunde şi elementele ei
tema în studiu: principale
• Tipul set: definiţia, mulţimea
valorilor, constructorii de mulţime
• Mulţimea operaţiilor
• Afişarea elementelor mulţimii
• Formarea noţiunii din elemente
citite de la tastatură

• Stabilesc pentru fiecare subtemă


elementele pe care trebuie să fie
însuşirea/ pus accentul. Numesc în fiecare
comunicarea echipă câte un elev care trebuie să
noilor cunoştinţe devină „expert” în problema
respectivă şi le explic modalitatea
de lucru în continuare.
• Le propun elevilor să cerceteze în
mod individual subtemele
corespunzătoare şi le pregătească Fiecare elev lucrează
câte un raport asupra a ceea ce au Individual individual cu fişa şi 5
studiat. pregăteşte raportul
• Le propun elevilor să se reunească corespunzător
în grupe de experţi pentru a Se reunesc în grupe
dezbate problema împreună. conform subtemelor
• Monitorizez dezbaterile, intervin studiate, prezintă rapoartele 10
dacă este nevoie, le sugerez în echipe pregătite individual, discută
elevilor ideea de a folosi pe baza materialelor avute
calculatoarele, în special la la dispoziţie, adaugă
subtemele 3 şi 4. elemente noi şi stabilesc
modalitatea în care vor fi
transmise cunoştinţele
celorlalţi membri din
echipele iniţiale

142
Se reîntorc în echipele
iniţiale de învăţare, fiecare
expert transmite
• Le propun elevilor să se întoarcă în cunoştinţele asimilate.
echipele iniţiale de învăţare pentru Membrii echipei discută,
a transmite cunoştinţele asimilate prin întrebări, notează
şi pentru a reţine la rândul lor în echipe propriul plan de idei 15
cunoştinţele pe care le transmit
colegii lor. Rezolvă testele, răspund la
întrebări

Analizează rezultatele
• Le propun elevilor spre rezolvare muncii sale, pun întrebări
teste la tema dată.
Fixarea noilor
cunoştinţe Individual Notează în caiet tema 7
• Analizez rezultatele elevilor, pentru acasă
Concluzii. răspund la întrebările care pot
Realizarea apărea.
feedback- ului în colectiv, 2
individual
Anunţarea temei • Anunţ tema de acasă - întrebări şi
pentru acasă exerciţii din manual, probleme din Individual 1
culegerea de probleme

Anexa Ia proiectul didactic


Tipul de date mulţime (la metoda Mozaicul)
Subtema I
Un tip de mulţime (set) se defineşte în raport cu un tip de bază care trebuie să fie ordina! în felul următor, tyi; ».•
ident_tip_multime ~ sst of tip_de_baza
Valorile unui tip de date set sunt mulţimi formate din valoriie tipului de bază. Daca tipul de bază are n valori, tipul
mulţime va avea 2“ valori. în implementările limbajului valoarea lui r este limitată, de reguiâ n< =256 Tip de bază
poate fi: b y t e , b o o l e a n , c h a r , enumerare, subdomeniu.
Mulţimea valorilor tipului mulţime reprezintă mulţimea tuturor submulţimilcr tipului de bază, inclusiv mulţimea vidă.
în PASCAL o mulţime poate fs specificată enumerându-i-se elementele între parantezele pătrate “[“ şi care ţin locul
acoladelor din matematică.
Notaţia [ ] reprezintă mulţimea vidă.
Exemplul 1: t y p e cifre=5..7;
multime=set of cifre;
v a r m: mulţime;
Tipul de bază are n=3 valori, tipul mulţime va avea 23=8 valori:
[ ], [5], [6], [7], [5,6], [5,7], [6,7], [5,6,7]
O atribuire corectă: m: = [ 5 , 6 ]
Exemplul 2: ty p e Indice=l..10;
Zi=(L, Ma, Mi, J, V, S, D);
Multimelndici=set of Indice;
ZileDePrezenta=set of zi;
var Mi : Multimelndici; Zp: ZileDePrezenta;
Tipul Indice are n= 10 valori: 1,2,3,4,5,6,7,8,9,10.
Tipul Multimelndici are 2 10= 1024 de valori, şi anume:
[ ], [1], [2],..., [1,2], [1,3],..., [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
Prin urmare, variabila Mi poate să aibă oricare din aceste valori, de exemplu: Mi:= [1, 3 ] .
Tipul Zi a re n = 7 valori: L, Ma, Mi, J, V, S, D.
Tipul ZileDePrezenta are 27 =128 de valori, şi anume

143
[ ] , [ L ] , [Ma], [Mi],..., [L, Ma] , [L, Mi],..., [L, Ma, Mi, J , V, S, D] .
Variabila Zp poate să aibă oricare dintre aceste valori, de exemplu
Z p : = [ L , Ma, Mi, V]
O valoare de tip mulţime poate fi specificată printr-un constructor (generator) de mulţime care conţine
enumerarea elementelor mulţimii separate prin virgulă şi luate între parantezele [ ].
Un element al constructorului poate fi o valoare a tipului de bază, un interval sau o expresie ce are tipul de bază.
Exemple: [ ' a ' , ' b ' ] , [ 1 , 2 , 5 . . 9 ] ; [ 2, k*3]
Subtema II
Operaţiile care se pot efectua cu mulţimi sunt:
1. Reuniunea A: = [0 , 2, 4, 6 , 8 ] ; B := [1 , 3, 5, 7, 9 ] ; C := A+B;
{C= [0 , 1, 2 , 3, 4, 5, 6, 7 , 8, 9]}
2. Intersecţia a două mulţimi A şi B este mulţimea tuturor elementelor care sunt membri ai lui A şi ai lui B.
A := [1 , 3, 5, 7 ] ; B := [1 , 4, 5, 9 ] ; C:=A*B; { C=[l, 5]}
3. Diferenţa mulţimilor
A := [1 , 3, 5, 7 ] ; B := [1 , 4, 5, 9 ] ; C 1:=A -B ;
{ C l= [ 3, 7 ] - elementele ce sunt în A şi nu sunt în B}
C 2: =B-A; { C2= [ 4, 9 ] - elementele ce sunt în B şi nu sunt în A }
4. Operaţii relaţionale (tipul rezultatului - boolean)
A oB este true când mulţimile au elemente absolut diferite
A>=B este true când orice element din B este în A
A<= B este tru e când orice element din A este inclus în B
A= B este true când mulţimile conţin exact aceleaşi elemente
in (apartenenţa) stabileşte faptul dacă o anumită valoare este sau nu membru al unei
mulţimi precizate,
exemplu: if x in A then ....(tipul elementului x trebuie să fie compatibil cu tipul
de bază al mulţimii A)
Subtema III
Spre deosebire de tablouri şi şiruri de caractere, componentele cărora pot fi referite direct, prin indici (exemplu: A[ 1,2]
sau S[i]) elementele unei mulţimi nu pot fi referite. De aici apare specificul afişării elementelor unei mulţimi la ecran
sau formarea unei mulţimi din elemente citite de la tastatură.
în cazul afişării elementelor se va proceda în felul următor: ştiind din ce domeniu sunt elementele mulţimii, se va
parcurge acest domeniu şi se va verifica fiecare valoare din acest interval dacă aparţine mulţimii date sau nu şi în caz
afirmativ se va afişa elementul.
Exemplul 1: V ar M: s e t o f b y t e ; i : b y t e ;
B e g in
M: =[ 4, 7 . . 1 3 ] ;
W rite ln ('M ulţimea a re u rm ă to a re le e l e m e n t e : ') ;
F or i : = 0 t o 255 do i f i i n M t h e n w r i t e ( i , ' ' )
End.
Exemplul 2:
V ar M: set of char;
i: char;
Begin

Writeln (’Mulţimea are următoarele elemente:’);


For i:=’a’ to ’z’ do
if i in M then write(i,’ ’)
End.
Subtema IV
Dacă formăm o mulţime din elemente citite de la tastatură, fiecare valoare citită se adaugă la mulţime ca element al
unui constructor de mulţimi prin operaţia de reuniune.

144
Exemplul 1: Var M: set of byte; x: byte;

M: = [ ] ;
R e a d ln (x);
M:=M+[x ]

Exemplul 2: V a r M: s e t o f c h a r ; x: c h a r ;

M: = [ ] ;
Readln ( x );
M:=M+[x]

Putem repeta această procedură în ciclu:

M: = [ ] ;
f o r i : = l t o n do
b e g in
R e a d ln ( x ) ;
M:=M+[x]
End;

Dar trebuie să ţinem cont de faptul că în cazul dat mulţimea va conţine n elemente doar dacă toate valorile citite x au
fost distincte (vezi operaţia reuniunea).
Dacă dorim să ne asigurăm că mulţimea va avea anume n elemente putem repeta citirea elementului x dacă el este deja
în mulţime:

M; = [] ;
f o r i : = l t o n do
b e g in
r e p e a t R e a d ln (x) u n t i l n o t ţx i n M ); M:=M+[x]
End;

REFERINŢE
1. Bălănescu T., Gavrilă Ş., Georgescu H., ş.a. Programarea în limbajele PASCAL şi TURBO
PASCAL / Voi. I / Limbajul PASCAL / Concepte fundamentale, EDITURA TEHNICĂ,
Bucureşti, 1992.
2. Bălănescu T., Gavrilă Ş., Georgescu H., ş.a. Programarea în limbajele PASCAL şi TURBO
PASCAL / Voi. II / Limbajul TURBO PASCAL, EDITURA TEHNICĂ, Bucureşti, 1992.
3. Dragan G. Teste-grilă la limbajul de programare PASCAL, Editura TISH, 2000.
4. Fătu I. Teste grilă de programare în limbajele PASCAL şi C, Editura didactică şi pedagogică R.
A., Bucureşti, 1995.
5. Gremalschi A., Mocanu Iu., Spinei I. Informatica. Limbajul PASCAL / Manual pentru clasele
IX-XI, Ştiinţa, Chişinău, 1999.
6. Munteanu F. (coord.), Programarea calculatoarelor / Manual pentru licee de informatică /
Clasele X-XII, Editura didactică şi pedagogică R. A., Bucureşti, 1995.
7. Pătruţ B. Algoritmi şi limbaje de programare / Manual de Informatică / Clasa a IX-a, Teora,
1998.

145
2.5. Informatica în clasa a Xl-a
Limbajul de programare Pascal
2.5.1. Funcţii şi proceduri

Planificare tematică orientativă


Număr
Tema
de ore
Funcţii şi proceduri
Subprograme 1
Funcţii 1
Proceduri 2
Domenii de vizibilitate 1
Comunicarea prin variabile globale 1
Efecte colaterale 1
Recursia 2
Sintaxa declaraţiilor şi apelurilor de subprograme 1
Evaluarea sumativă 2

Total 16
Predare-învăţare 14 ore
Evaluare 2 ore

Obiective:

Subprograme
După studierea temei, elevii vor fi capabili:
- să definească termenii: problemă, subproblemă, programul principal, programul apelat,
subprogram, apel de subprogram, funcţie, procedură;
- să explice modul de transfer al controlului în cazul apelului unui subprogram.
Funcţii şi proceduri
După studierea temei, elevii vor fi capabili:
- să definească formulele metalingvistice şi diagramele sintactice ale declaraţiilor şi apelurilor
de funcţii şi proceduri;
- să explice modul de transmitere a argumentelor şi de retumare a rezultatelor în cazul unui
apel de funcţie şi procedură;
- să elaboreze programe în care se utilizează funcţii şi proceduri predefmite şi funcţii şi
proceduri definite de utilizator.
Domenii de vizibilitate
După studierea temei, elevii vor fi capabili:
- să determine domeniile de vizibilitate ale declaraţiilor;
- să identice obiectele desemnate de unul şi acelaşi nume în diferite blocuri ale programului.
Comunicarea prin variabile globale
După studierea temei, elevii vor fi capabili:
- să clasifice variabilele programului în variabile globale şi variabile globale;
- să elaboreze programe în care se utilizează comunicarea prin variabile globale.
Efecte colaterale
146
După studierea temei, elevii vor fi capabili:
- să descrie efectele colaterale cauzate de atribuiri la variabile globale şi la parametrii formali;
- să elaboreze programe în care nu apar efecte colaterale.
Recursia
După studierea temei, elevii vor fi capabili:
- să descrie modul de alocare a memoriei şi de transmitere a controlului la execuţia
algoritmilor recursivi;
- să ilustreze avantajele şi neajunsurile recursiei;
- să elaboreze funcţii şi proceduri recursive.
Sintaxa declaraţiilor şi apelurilor de subprograme
După studierea temei, elevii vor fi capabili:
- să poată utiliza diagramele sintactice pentru verificarea corectitudinii declaraţiilor şi
apelurilor de subprograme;
- să explice operaţiile efectuate de calculator la execuţia unui apel de subprogram căruia i se
transmit parametri variabilă, parametri valoare, parametri funcţie/procedură.
' --- - --—----!----- """- " ' ■'';
Recomandări, completări

0 Funcţii
> Pentru a elabora o funcţie trebuie precizate:
a) numele funcţiei precedat de cuvântul cheie function;
b) parametrii săi formali şi tipul acestora;
c) tipul rezultatului retumat de funcţie;
d) instrucţiunile ce specifică modul în care se calculează rezultatul funcţiei pe baza valori’
parametrilor actuali.
> Apelarea unei funcţii nu este o instrucţiune de sine stătătoare; ea trebuie inclusă ca operand în
cadrul expresiilor.
> Parametrii formali sunt disponibili numai în interiorul funcţiei. Numărul parametrilor actuali
trebuie să fie identic cu cel al parametrilor formali. Parametrii actuali trebuie să corespundă din
punctul de vedere al compatibilităţii atribuirii cu tipul parametrilor formali corespunzători. O
funcţie poate să nu aibă parametri fonnali, dar ea va retuma mereu acelaşi rezultat.
> Atât tipul parametrilor cât şi tipul rezultatului pot fi standard sau pot fi definite anterior.
Rezultatul funcţiei este reprezentat printr-o unică valoare, de aceea nu poate fi de un tip
structurat cum ar fi tabloul, dar poate fi de tip s t r i n g .
> în corpul funcţiei trebuie să existe cel puţin o instrucţiune de atribuire prin care să se transmită
numelui funcţiei valoarea rezultatului.
> O funcţie poate avea ea însăşi propria-i parte declarativă, în care sunt definite constante, tipuri,
variabile locale şi chiar alte funcţii.
> Variabilele globale, declarate în programul principal pot fi utilizate în interiorul oricărei funcţii
asigurând în anumite situaţii un alt mijloc pentru transmiterea rezultatelor.
> Etapele de execuţie a unei funcţii sunt:
1. Se creează o locaţie de memorie pentru rezultatul funcţiei.
2. Se pun în corespondenţă de la stânga la dreapta, parametrii actuali ai funcţiei cu parametrii
formali.
147
3. Se creează câte o locaţie de memorie pentru fiecare parametru formal şi i se atribuie acesteia
valoarea parametrului actual corespunzător.
4. Se creează câte o locaţie de memorie pentru fiecare variabilă locală a funcţiei.
5. Se execută instrucţiunile cuprinse în corpul funcţiei.
6. Se eliberează toate locaţiile de memorie ce fuseseră rezervate pentru rezultatul funcţiei,
parametrii formali şi variabilele locale. Valoarea rezultatului funcţiei este utilizată în cadrul
expresiei ce include apelul acesteia.

0 Proceduri
\> Procedurile nu au limitarea caracteristică funcţiilor, ele pot returna mai multe valori şi pot
„întoarce” un rezultat de tip structurat.
N'> Procedurile retumează rezultate prin intermediul parametrilor şi nu prin numele asociat.
v > în cazul procedurilor datele de intrare se transmit prin aşa-numiţii parametri valoare
(constantă), iar rezultatele se retumează prin intermediul parametrilor variabilă (referinţă).
Parametrii variabilă pot fi folosiţi de către procedură şi pentru introducerea de date.
> Fişierele pot fi utilizate doar în calitate de parametri formali variabilă.
> Lista parametrilor formali poate fi vidă, atunci când nu există schimb de informaţii cu restul
programului sau când acest schimb se realizează doar prin intermediul variabilelor globale.
> Parametrul formal valoare este tratat în cadrul subprogramului ca o variabilă locală. La apelarea
procedurii i se alocă spaţiu şi este iniţializat cu valoarea parametrului actual corespunzător, apoi
subprogramul poate modifica valoarea sa fără a modifica parametrul actual corespunzător.
Modificările asupra parametrilor formali variabilă se transmit parametrilor actuali
corespunzători.
V > Utilizarea variabilelor locale se recomandă pentru memorarea şi utilizarea unor valori ce nu se
transmit în afara subprogramului. Ca avantaje ale folosirii variabilelor locale se pot menţiona:
- siguranţa (variabilele locale nu pot fi afectate de alte subprograme);
- claritatea programului;
- utilizarea eficientă a memoriei (variabilele locale au „viaţă scurtă”).
> Etapele de execuţie a unei proceduri sunt:
1. Se pun în corespondenţă de la stânga la dreapta parametrii actuali ai procedurii cu parametrii
formali.
2. Se creează câte o locaţie de memorie pentru fiecare parametru valoare şi i se atribuie acesteia
valoarea parametrului actual asociat care trebuie să fie o expresie corespunzătoare, din
punctul de vedere al atribuirii, tipului parametrului valoare.
3. Se pune în corespondenţă fiecare parametru variabilă cu parametrul actual respectiv, care
trebuie să fie o variabilă de acelaşi tip cu parametrul variabilă.
4. Se creează câte o locaţie de memorie pentru fiecare variabilă locală a procedurii.
5. Se execută instrucţiunile procedurii. în această etapă parametrii valoare se comportă la fel ca
oricare variabilă locală, în schimb orice referire la parametrii variabilă constituie o referire la
parametrii actuali pe care aceştia îi reprezintă. Ca exemplu, atribuirea unei valori unui
parametru variabilă modifică în mod efectiv valoarea parametrului actual.
6. în final toate locaţiile create sunt eliberate.

148
/STRecursivitate
> Există două tipuri de subprograme recursive: direct recursive şi indirect (mutual) recursive. Ca
exemplu, prezentăm schematic structurile unor proceduri recursive:
Procedură direct recursivă:
Procedure P;
Begin

P; {apel la procedura P}

End;

Procedură indirect recursivă:


Procedure PI;
Begin

P2 ; {apel la procedura P2}

End;
Procedure P2;
Begin

PI; {apel la procedura PI}

End;

In cazul recursiei indirecte apare necesitatea utilizării declaraţiilor anticipate [6, pag. 170].
> în majoritatea cazurilor soluţia iterativă de scriere a programei este preferabilă celei recursive,
deoarece subprogramele recursive sunt mult mai greu de controlat şi depanat, necesită un volum
mai mare de memorie şi timpul de execuţie este mai ridicat. De regulă, algoritmii recursivi se
folosesc în cazurile în care calculele aferente sunt descrise în formă recursivă sau structurile de
date sunt definite recursiv (arbori, liste, etc.).
> La elaborarea subprogramelor recursive se ţine cont de două reguli principale:
1. Orice subprogram recursiv trebuie să poată fi executat, în cel puţin o anume situaţie, fără a se
autoapela.
2. Un subprogram recursiv se va autoapela într-un mod prin care se va tinde spre îndeplinirea
condiţiei de execuţie fără autoapelare.
PŞ u i ~ r—
" - {
>robleme rezolvate
; : j % . : ..........

Funcţii
❖ Problemă [6, pag. 149, prob. 8]

Variabila A este introdusă prin declaraţia V a r A: s e t o f char;


Elaboraţi o funcţie care retumează numărul de caractere din mulţimea A.

Rezolvare:
în programul ce urmează mai întâi se formează o mulţime din caracterele introduse de la tastatură până la întâlnirea
unui spaţiu, după care se determină numărul de caractere din mulţime apelând funcţia ce retumează acest număr.

149
program Funcţii;
type multiset of char;
var A: mult;
c:char;

function NrCar(X:mult):byte;
var c:char; k:byte;
begin
k: =0;
for c:=#0 to #255 do
if c in X then inc(k);
NrCar:=k
end; {NrCar}

BEGIN
A: = [ ] ;
readln(c);
while c<> ' ' do
begin
A :=A+{c];
readln(c)
end;
Writeln('Mulţimea are NrCar(A),' caractere');
END.

Proceduri
❖ P roblemă [6, pag. 153, prob. 7]
Elaboraţi o procedură care:
a) creează o copie de rezervă a unui fişier text;
b) exclude dmtr-un fişier text liniile vide;
c) numerotează liniile unui fişier text;
u) concatenează două fişiere text întrunii) singur:
e) concatenează nfişiere text (n>2) wtr-ural singur.

Rezolvare:
program Proceduri;
var f1,f2,f3:text;
s,sl,s2:string;
c:char;

procedure copie;
begin
write('Daţi numele fişierului pentru care doriţi o
copie:');
readln(s);
assign{fl,s);reset (fl);
assign(f2,'Copia.txt');rewrite(f2) ;
while not eof(fl) do
begin
readln(fl,sl);
writeln(f2,s1)
end;
close(fl); close(f2);
Writeln('Aveţi o copie in fişierul extern cu numele
Copia.txt');
end; {copie}

procedure exclude;
begin
write('Daţi numele fişierului in care excludeti
liniile vide: ') ;
readlnţ s);
assign(f1, s)/reset ţfl);
assign(f2,'temporar.txt');rewrite(f2) ;
while not eof(fl) do
begin
readln(f1, sl) ;
if sl<>'' then writeln(f2,sl)
end;
close (fl) ; close (f2) '/erase (fl) /rename (f2, s) ;
writeln('Liniile vide au fost excluse')
end; {exclude}

procedure numerotează;
var i:integer;
begin
write('Daţi numele fişierului in care veţi numerota
liniile : 1);
readln(s);
assign(fl,s)/reset (fl);
assign(f2,'temporar.txt1);rewrite (f2) ; i:=0;
while not eof(fl) do
begin
readln(f1,s1);inc(i);
writeln(f2,i, ' ',sl)
end;
close(fl); close(f2)/erase(fl)/rename(f2,s);
writeln('Liniile au fost numerotate')
end; {numerotează}

procedure concateneaza;
begin
writeln(1Daţi numele fişierelor pe care le
concatenati: ');
readln(sl);
readln(s2);
assign (f.1,sl)/reset (f1) ; assign (f2, s2)/reset (f2) ;
assign{f3,'Unite.txt');rewrite(f3) ;
while not eof(fl) do
begin
readln(f1,s);
writeln(f3, s)
end;
while not eof(f2) do
begin
readln(f2,s);
writeln(f3,s)
end;
close(f1); close (f2);close(f3);
Writeln('Au fost concatenate in fişierul extern
cu numele Unite.txt')
end; {concateneaza}

procedure conc_mu11e;
var i,n:integer;
begin
writeln('Daţi numărul n de fişiere pe care le
concatenati:');
readln(n);
assign(f2,'multe.txt');rewrite(f2) ;
for i:=l to n do
begin
writeln('Daţi numele fişierului ',i,':');
readln(s);
a s s i g n ţ f 1 , s ) ; r e s e t (f l );
w h i l e n o t e o f ( f l ) do
b e g in
readln(f1 ,s i ) ;
w r i t e l n (f 2 , s i )
end;
c l o s e ( f 1);
end;
c l o s e (f 2);
W r i t e l n ( n , ' f i ş i e r e au f o s t c o n c a t e n a t e i n f i ş i e r u l
e x t e r n cu numele m u l t e . t x t ' )
e n d ; {conc_multe}

BEGIN
w riteln ('M e n iu l:');
w r i t e l n ( ' a - c o p ia u n u i f i ş i e r ' ) ;
w r i t e l n ( ' b - e x c lu d e re a l i n i i l o r v i d e ' ) ;
w r i t e l n ( ' c - numerotarea l i n i i l o r ' ) ;
w r ite ln ( 'd - concatenare 2 f i ş i e r e ') ;
w r i t e l n ( 'e - concatenare n f i ş i e r e ') ;
readln(c);
case c o f
'a 'lc o p ie ;
' b ' :exclude ;
' c ' :numerotează;
'd 'rc o n c a te n e a z a ;
'e':conc_m ulte;
end;
readln
END.

Recursh’itate
❖ Problemă |6, pag. 169, prob. 6]

Se consideră declaraţia
ty p e v e c t o r = a r r a y [ 1 . . 2 0 ] o f i n t e g e r ;
Elaboraţi un subprogram recursiv care:
a) afişează componentele vectorului pe ecran;
b) calculează suma componentelor;
c) inversează componentele vectorului;
d) calculează suma componentelor pozitive;
e) verifică dacă cel puţin o componentă a vectorului este negativă;
f) calculează produsul componentelor negative;
g) verifică dacă cel puţin o componentă a vectorului este egală cu un număr dat.

Rezolvare:
p ro g ra m R e c u r s i e ;
ty p e v e c t o r = a r r a y ( 1 . . 2 0 ] o f i n t e g e r ;
var a:vector;
i , n : i n t e g e r ; b :boolean;
p ro ced u re P a(n:integer);
b e g in
i f n = l th e n w r i t e ( a [1])
e l s e b e g in
Pa(n-1);
w r i t e (' ' , a [ n ] )
end;
e n d ; {Pa}
function F b ( n : i n t e g e r ) : i n t e g e r ;
begin
if n = l then F b : = a [ i ]
else F b : = F b ( n - 1 ) + a [ n ]
end; {Fb}

procedure P c (i : i n t e g e r ) ;
var a u x : i n t e g e r ;
begin
if i = 0 then for i ; = l to n do w r i t e ( a [i ] , ' ')
else begin
aux:=a[i]; a[i]:=a[n+l-i]; a[n+l-i]:=aux;
P c(i-l);
end;
end; {Pc}

function F d ( n : i n t e g e r ) : i n t e g e r ;
begin
if n=0 then F d := 0
else if a [ n ] > 0 then F d : = F d ( n - 1 ) + a [n ]
else F d : = F d ( n - l ) ;
end; {Fd}

function F e ( n : i n t e g e r ) : b o o l e a n ;
begin
if n —0 then F e : =b
else begin
if a [ n ] < 0 t h e n b : = f a l s e ;
Fe:=Fe(n-1)
end;
end; {Fe}

fu n c tio n F f ( n : i n t e g e r ) : i n t e g e r ;
b e g in
i f n=0 t h e n F f : = i
e l s e i f a [ n] <0 t h e n F f : = F f ( n - 1 ) * a [ n ]
else F f : = F f ( n - 1 ) ;
end; {Ff}

function F g ( n , x : i n t e g e r ) : b o o l e a n ;
begin
if n=0 then F g : = b
else begin
if a [ n ] = x then b : = t r u e ;
Fg:=Fg(n-l,x)
end;
end; {Fg}

BEGIN
w r i t e ( ' D a ţ i n u m ă r u l d e e le m e n te d i n s i r : ' ) ; r e a d l n ( n ) ;
for i : = l to n do begin w r i t e ( ' a [ ' , i , ' ] = ' ) ; r e a d l n ( a [ i ] ) ;
end;
w r i t e ( 'Ş ir u l e s te : ') ; Pa(n); w rite ln ;
w r i t e l n ( ' Suma e l e m e n t e l o r e s t e : ' , F b (n ) ) ;
w r i t e ( ' Ş i r u l i n v e r s a t e s t e : ' ) ; Pc(n d iv 2 ); w r i t e l n ;
w r i t e l n ( ' Suma e l e m e n t e l o r p o z i t i v e e s t e : ' , F d ( n ) } ;
b:=true;
if F e ( n ) then
w r i t e l n ( ' T a b l o u l n u c o n ţ i n e n i c i un nu mă r n e g a t i v ' )
else begin
w r i t e l n ( ' T a b l o u l c o n ţ i n e c e l p u ţ i n un n u m ă r
n e g a t i v ' );
w r i t e l n ( ' Produsul elem entelor negative e ste :
' , F f ( n ) );
end;
write('Daţi numărul cautat: ');readln(i) ;
b:=false;
if Fg(n,i) then write('Tabloul conţine numărul ’,i)
else w r i t e ( ' T a b l o u l nu c o n ţ i n e n u m ă ru l ' , i );
END.

I:-• : --------(-------------------n p — b ş ---------------------------------------- :----------- ■■ - — : r>

Teste pentru evaluare sau autoevaluare


■ ■ ■ -__ ____ ■■■■ -.............. ■■ . .......--

1. Indicaţi care este afirmaţia adevărată dintre cele ce urmează:


a) parametrii-valoare trebuie să fie precedaţi de cuvântul-cheie var;
b) o procedură poate retuma doar o singură valoare;
c) numele parametrilor actuali trebuie să coincidă cu numele parametrilor formali;
d) numele unei funcţii se poate scrie în partea dreaptă a instrucţiunii de atribuire.
2. Ce va afişa programul următor?

program t e s t 2;
var a , b : i n t e g e r ;

procedure p r o d u s (c:integer; var d : i n t e g e r ) ;


begin
c : =:
=sqr(c); d:=d*c
end;

BEGIN
a : -2 ; b : = l ; p r o d u s ( a, b ) ; w r i t e (a, b);
produs (a , b ) ; w rite (b, a ) ;
END.

a) 44644;
b) 24216;
c) 24162;
d) nici un răspuns anterior nu este corect.
3. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) o variabilă globală nu poate fi redefinită local într-o procedură;
b) funcţiile definite de programator se apelează în acelaşi mod ca şi funcţiile-standard ale limbajului Pascal;
c) datele de prelucrat nu pot fi transmise unei proceduri prin variabile globale;
d) funcţiile sunt subprograme care calculează şi retumează o valoare.
4. Ce va afişa programul următor?

program t e s 1 4 ;
var a , b : i n t e g e r ;

procedure sum a;
var a : i n t e g e r ;
b e g in
a : =a+b
end;

BEGIN
a :=1; b :=2; su m a ;
w rite (a);
w r i t e (b ) ;
END.

154
a) 3
2;
b) 1
2;
c) nici un rezultat, programul are erori;
d) nici un răspuns anterior nu este corect.
5. Fie următoarele declaraţii:
var a , b , c : i n t e g e p ;
d, e : r e a l ;
function f ( m , n : i n t e g e r , 1: r e a l ) : real;
Care dintre următoarele instrucţiuni sunt corecte?
a) d := f(2 ,4 ,e ) ;
b) w r i t e l n ( p ( a , b , c ) );
c) r e a d l n ( f ( b , c , d ) );
d) e : = f ( c , 7,7.7)
6. Ce va afişa programul următor?

program test6;
var a,b,x: integer;

procedure Schimb(c:integer;var d: integer);


var z: integer;
begin
z:=c; c:=d; d:=z
end;

BEGIN
a:=0; b:=l; x:=2;
Schimb (a,b);
Schimb (x,b);
writeln (a,b,x);
END.

a) 120:
b) 011;
c) 022;
d) nici un răspuns anterior nu este corect.
7. în descrierea funcţiei ce calculează recursiv factorialul numărului n lipseşte o instrucţiune:
function fact (n: byte): integer;
begin
if n=0 then fact:=l
else ...
end;
Care din următoarele instrucţiuni trebuie plasată în locul punctelor?
a) f a c t : = n * ( n - l ) * ( n —2 ) * ( n - 3 ) * . . * 1 ;
b) fact:=fact(n-l) ;
c) f a c t := n! ;
d) nici un răspuns anterior nu este corect.
8. Ce va afişa programul următor?

program testS;
var x,n: integer;

function calcul (n:integer): integer;


begin
if n=0 then calcul:=0
else calcul:=calcul(n—1)+n
end;

155
BEGIN
x:=10;
writeln (x, calcul( x ) ' , n ) ;
END.

a) 10-0-10;
b) 10-55-01;
c) 10-55-10;
d) nici un răspuns anterior nu este corect.
9. Funcţia recursivă descrisă mai jos:
function f{x,y: byte): integer;
begin
if y=0 then f :=x
else f :=f(x,y-1)+1;
end;
ne permite să determinăm:
a) numărul de cifre în numărul x;
b) suma l+2+3+...+x;
c) suma x+y;
d) nici un răspuns anterior nu este corect.
10. Fie descrierea funcţiei Ackerman'.
function A(m,n: integer): integer;
begin
if m=0 then A:=n+1
else if n=0 then A:=A(m-l,l)
else A:=A(m-l, A(m, n-1));
end;
Ce valoare va avea A( 1,1)?
a) 2;
b) 4;
c) 6;
d) nici un răspuns anterior nu este corect,
11. Se consideră funcţia:
function F(x,y: integer): integer;
begin
if x=l then F:=y
else if x<y then F:=F(y mod x, x)
else F:=F(y,x);
end;
Ce valoare va avea F(27,5)?
a) 5;
b) 2;
c) 7;
d) nici un răspuns anterior nu este corect.
12. în definiţiile de mai jos 2 linii au fost schimbate cu locul:
var n: integer; {1}

function F2(m: integer): integer;forward; {2}


function F2; {3}
begin
if m=0 then FI:=n
else FI :=F2 (m-1) ; {...}
end;
function Fl(m: integer):integer; {8}
begin
if m=0 then F2:=2*n
else F2:=F1(m-1);
end;
156
Care sunt ele?
a) {1} şi {2 };
b) {2} şi {3};
c) {3} şi {8>;
d) {2} şi {8}.

Răspunsuri: Testul 1: d); Testul 2: c); Testul 3: b) şi d); Testul 4: d); Testul 5: a) şi d);
Testul 6: c); Testul 7: d); Testul 8: d); Testul 9: c); Testul 10: d);
Testul 11: b); Testul 12: c)

Modele de proiecte didactice:

Modelul 1

Liceul:
Data:
Clasa: a Xl-a (profilul real)
Obiectul: Informatica
Profesor:
Tipul lecţiei: Lecţie de asimilare a
cunoştinţelor
Durata: 45 min

Tema lecţiei: Recursia. Subprograme recursive

Obiectivele lecţiei
> Obiective de referinţă:
• Cunoaşterea modului recurşiv de organizare a algoritmilor.
• Utilizarea algoritmilor recurs?vi la rezolvarea problemelor.
> Obiective operaţionale:
• să poată explica modul de execuţie a algoritmilor recursivi;
« să dea exemple de probleme soluţionarea cărora necesită utilizarea algoritmilor recursivi;
• să cunoască diferenţa dintre recursie şi iteraţie;
• să cunoască avantajele şi neajunsurile recursiei;
• să poată elabora funcţii şi proceduri recursive.

Metode de învăţământ:
•Conversaţia, «Metoda euristică, «Demonstrarea, «Conspecte de reper, «Analiza, «Comparaţia, «Problematizarea,
•Observaţia independentă, «Cercetarea în grup , «Algoritmizarea, «Exerciţiul, «învăţarea reciprocă.

Mijloace de învăţământ:
•o clasă de calculatoare; «soft-ul: mediul de programare Turbo Pascal; «manualul; «fişe cu probleme.

157
Scenariul lecţiei

Formele de Durata,
Etapele lecţiei Activitatea profesorului Activitatea elevilor
învăţare min
• Salut elevii, verific Răspund la apel, îşi
prezenţa, ie propun să-şi pregătesc cele necesare
Moment organizatoric Individual i
pregătească caietele
pentru lucru
Anunţarea temei şi • Scriu tema la tablă şi In colectiv, Ascultă, fac notiţe
2
obiectivelor lecţiei anunţ obiectivele lecţiei individual
• Le explic elevilor Ascultă, fac notiţe 5
noţiunile de
- recursivitate
- algoritmi recurşi vi
- subprograme direct
recursive şi mutual
recursive
• Invit un elev la tablă Un elev scrie la tablă, toţi 4
pentru a scrie varianta analizează subprogramul
iterativă a funcţiei ce
calculează factorialul unui
număr. Le propun
colegilor să verifice
corectitudinea secvenţei
de program.
• Demonstrez, că Ascultă, scriu în caiete 5
algoritmul de rezolvare a
acestei probleme poate fi
şi unul recursiv.
« Scriu pe tablă alături de
Reactualizarea prima variantă pe cea
cunoştinţelor, recurşivă.
priceperilor şi • Invit un elev la tablă în colectiv
deprinderilor însuşite pentru a scrie varianta Individual Un elev scrie la tablă, toţi 4
anterior. nerecursivă a funcţiei ce analizează subprogramul
calculează puterea unui
Comunicarea noilor număr. Le propun
cunoştinţe colegilor să verifice
corectitudinea secvenţei
de program.
• Discut cu elevii despre Vin cu propuneri pentru 5
posibilitatea de a scrie un elaborarea unui
subprogram recursiv subprogram recursiv, un
pentru această problemă. elev scrie subprogramul la
Invit un elev la tablă tablă.
pentru a scrie funcţia
recurşi vă. Verific
împreună cu elevii
corectitudinea lui.
• Le explic elevilor pe Ascultă, fac notiţe 4
exemplele anterioare ce
este condiţia de
consistenţă într-o definiţie
recursivă, care este
deosebirea dintre recursie
şi iteraţie şi când este
necesară utilizarea
recursiei
Fixarea noilor • Le propun, lucrând în în perechi Se grupează şi lucrează în 5
cunoştinţe perechi, să cerceteze perechi sau în grupe mici
funcţia lui Ackermann şi de trei persoane.

158
să elaboreze pentru ea un
subprogram recursiv
respectând condiţia de
consistenţă.

• Analizez rezultatele Doi elevi lucrează la 5


elevilor, invit o pereche tablă, ceilalţi, în perechi,
de elevi la tablă să scrie la locurile lor.
subprogramul corect şi le
dau următoarea sarcină:
să calculeze funcţia
____M 2 £ ________________
• Analizez rezultatele
Concluzii. Realizarea Individual, în Analizează rezultatele
elevilor de la tablă şi ale 3
feedback-ului colectiv muncii sale
celorlalţi.
• Anunţ tema de acasă -
întrebări, exerciţii şi
probleme la tema
Anunţarea temei pentru Notează în caiet tema
Recursia din manual şi Individual 2
acasă pentru acasă.
din fişa cu probleme pe
care o au elevii de la
lecţiile anterioare.

Modelul 2

Liceul:
Data:
Clasa: a Xl-a (profilul real)
Obiectul: Informatica
Profesor:
Tipul lecţiei: Lecţie de fixare şi
consolidare
a cunoştinţelor
Durata 45 min

Tema lecţiei: Recursia. Rezolvarea recursivă a problemelor

Obiectivele lecţiei
> Obiective de referinţă:
• Cunoaşterea modului recursiv de organizare a algoritmilor.
• Utilizarea algoritmilor recursivi la rezolvarea problemelor.
> Obiective operaţionale:
• să poată explica modul de alocare a memoriei şi de transmitere a controlului la execuţia algoritmilor recursivi;
• să poată reprezenta prin desen a metodele de alocare a memoriei şi de transmitere a controlului la execuţia
subprogramelor recursive;
• să înţeleagă necesitatea utilizării subprogramelor recursive pentru rezolvarea problemelor din matematică,
fizică, chimie, prelucrarea imaginilor, textelor etc.;
• să poată elabora funcţii şi proceduri recursive;
• să poată transcrie subprograme iterative în subprograme recursive şi invers;
• să poată estima complexitatea şi eficienţa subprogramelor recursive.

Metode de învăţământ:
•Conversaţia, «Metoda euristică, «Demonstrarea, «Conspecte de reper, «Analiza, «Comparaţia, «Problematizarea,
•Observaţia independentă, «Cercetarea în grup, «Algoritmizarea, «Exerciţiul, «învăţarea reciprocă.

Mijloace de învăţământ:
•o clasă de calculatoare; »soft-ul: mediul de programare Turbo Pascal; «manualul; «culegere de teste-grilă; «fişe cu
probleme.

159
Scenariul lecţiei

Formele de Durata,
Etapele lecţiei Activitatea profesorului Activitatea elevilor
învăţare min
* Salut elevii, verific
prezenţa, le propun să-şi
Răspund la apel, îşi
Moment organizatoric pregătească caietele pentru Individual 2
pregătesc cele necesare
lucru şi le împart
culegerile de teste
Anunţarea temei şi • Scriu tema la tablă şi
în colectiv Ascultă, fac notiţe 2
obiectivelor lecţiei anunţ obiectivele lecţiei
• Invit la tablă câte un elev 2-3 elevi trec pe rând la
pentru a demonstra că tablă, ceilalţi participă la 9
problemele din fişă pot fi discuţie, analizează
rezolvate recursiv. îi rog algoritmii colegilor,
să scrie pe tablă doar propun variantele sale
algoritmul, pentru fiecare
din problemele cercetate
acasă, lăsând scrierea
subprogramului pentru
lucru! individual. Provoc
ceilalţi elevi la propunerea
altor variante de rezolvare.
• Cercetez împreună cu Discută, analizează, vin 5
elevii procedura cu apel cu diverse propuneri
recursiv pentru rezolvarea pentru completarea
problemei: ”Să se afişeze diagramei, scriu în caiete
la ecran în ordine inversă
un şir de caractere citite de
la tastatură, ultimul
caracter fiind blank.” Pe
acest exemplu ie explic
elevilor modul în care se
execută subprogramul
recursiv, reprezentând n»
tablă, cu implicarea în colectiv
Fixare şi consolidare
elevilor, starea stivei după Individual
a cunoştinţelor
fiecare apel recursiv. în perechi
• Le propun elevilor să Discută testele în grup şi 9
discute în grupe mici a îşi expun părerile
câte 2-3 persoane testele (delegând pentru aceasta
5.9-5.13 din culegerea de câte un membru al
teste[3]. grupului)
• Le propun elevilor să-şi
expună părerile despre
testele discutate.
• Analizez rezultatele,
răspund la întrebările care
pot apărea
• Repartizez câte 2
probleme din fişe la Elevii elaborează în grup 10
fiecare grup de elevi şi le programele şi rezolvă
propun să le rezolve la problemele pe calculator
calculator în mediul de
programare Turbo Pascal
(fiecare echipă va primi
setul său de probleme).

160
• Monitorizez lucrul
echipelor, intervin, dacă
este nevoie.
• După testarea programelor Analizează programele 4
le propun echipelor să-şi elaborate de grupul vecin
interschimbe locurile două
câte două şi să analizeze
problemele rezolvate de
grupul vecin. .

Concluziile şi • Discut cu elevii rezultatele,


în colectiv
realizarea răspund la întrebări Discută, pun întrebări 3
feedback-ului
Anunţarea temei • Propun probleme pentru Notează în caiet tema
Individual 1
pentru acasă tema de acasă pentru acasă.

Model de lucrare de evaluare

Matricea de specificaţii

Obiective
Conţinuturi Cunoaştere,
Aplicare Creativitate Total
înţelegere
40%
2 itemi 2 itemi 1 item j
Funcţii 5 itemi
10 puncte ÎS puncte 12 puncte
40 punem J
40%
Proceduri
2 itemi 2 itemi 1 item
5 itemi !
10 puncte 18 puncte 12 puncte
4 0 p u n c te J1
20%
1 item 1 item 1 item
Recursivitate 3 itemi
4 puncte 6 puncte 10 puncte
20 puncte
24% 42% 34% 100%
Total 5 itemi 5 itemi 3 itemi 13 itemi
24 puncte 42 puncte 34 puncte 100 puncte

Obiective de evaluare
Elevul trebuie:
• să cunoască subprogramele (funcţiile şi procedurile) şi să fie capabil să le utilizeze;
• să cunoască mecanismele de comunicare prin parametri-valoare, parametri-variabilă şi variabile globale;
• să cunoască subprogramele recursive şi să fie capabil să le utilizeze

Barem de verificare

Item 1 2 3 4 5 6 7 8 9 10 11 12 13 Total

Puncte 3 3 4 7 7 6 9 9 9 9 12 12 10 100

161
Barem de notare

Nota 1 2 3 4 5 6 7 8 9 10
Puncte 0..6 7..13 14..20 21..30 31..42 43..55 56..70 71..84 85..93 94.. 100

Test de evaluare
Varianta I
1. Este adevărată (A) sau falsă (F) următoarea afirmaţie:
Instrucţiunea compusă b e g i n . . e n d inclusă în corpul procedurii trebuie să conţină în mod obligatoriu o atribuire
asupra numelui procedurii.
2. Completaţi propoziţia:
Tipul rezultatului unei funcţii trebuie să fie un tip ...
3. Daţi definiţia recurs iei.
4. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) numărul parametrilor actuali trebuie să coincidă cu numărul parametrilor formali
b) parametrii-valoare trebuie să fie precedaţi de cuvântul-cheie var
c) o procedură poate retuma doar o singură valoare
d) o variabilă globală poate fi redefinită local într-o procedură
5. Fie următoarele declaraţii:
v a r a,b,c: integer; d,e: real; f:char;
f u n c t i o n testţx: integer; y: real;z:char): real;
Care sunt cele două instrucţiuni greşite dintre cele de urmează? Argumentaţi răspunsul.
a) d : = t e s t (a,b , ' a ' )
b) writeln ( f (a,d,f))
c) readln (test (c,d,f)}
d) e : = t e s t ( 5 , 5 . 5 , ' 5 ' )
6. Fie dată următoarea funcţie recursivă:
fu n c tio n F ( n : b y t e ) : in te g e r ;
b s g in
I f n=0 t h e n f : = l
e ls e f:= n * f(n -l)
end;
Scrieţi forma nerecursivă a acestei funcţii.

7. Ce va afişa programul următor?

162
8. Scrieţi enunţul problemei pentru care a fost elaborat următorul program:

program test8;
type natural = O..MaxInt;
var a,b:natural;c:boolean;

procedure p(x,y:natural;var z:boolean);


begin
z:=false;
while x o O do
begin
if x mod 10 =y then z:=true;
x:=x div 10
end;
end ;

BEGIN
write('a=');readln(a);
write('b=');readln(b);
p(a,b,c);writeln(c)
END.

9. Se consideră următoarele declaraţii:


type natural=0..Maxlnt;
function f(x:real;y:natural):real;
var p :real;i ;integer;
begin
p ==i;
for i : = l to y do
pi-p^x;

Ce valoare va avea f (5.0, 5) ? Arătaţi calculele.

10. Fie dat următorul program:

program test10;
type natural=0..Maxlnt;
var x:natural; y:boolean;

procedure p(a:natural; var b:boolean);


var i:natural;
begin
b:=true;
for i :=2 to a div 2 do
if a mod i= 0 then b:=false;
end;

BEGIN
write ţ'x=');readln(x);p(x,y);
writeln(y)
END. *

a) ce realizează programul dat?


b) transcrieri acest program înlocuind procedura cu o funcţie:
11. Se dă un tablou unidimensional A cu n elemente numere reale (n<50). Elaboraţi un program care va determina
elementul minim din acest tablou utilizând în acest scop o funcţie.

163
12. Se dă un număr natural N. Elaboraţi un program care va calcula suma divizorilor acestui număr utilizând în acest
scop o procedură.
13. Elaboraţi un program care va calcula suma

1 1 1
*S(fî) = 1 + — + 4"...+
3 5 In - 1
pentru n dat de la tastatură, utilizând în acest scop o funcţie recursivă.

Varianta a ll-a
1. Este adevărată (A) sau falsă (F) următoarea afirmaţie:
O procedură poate să retumeze mai multe rezultate
2. Completaţi propoziţia:
Corpul unei funcţii este format din declaraţiile locale opţionale şi ...
3. Daţi definiţia subprogramului recursiv.
4. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) numele unei funcţii nu poate apărea într-o instrucţiune de atribuire
b) funcţiile definite de programator se apelează în acelaşi mod ca şi funcţii le-standard ale limbajului Pascal
c) funcţiile sunt subprograme care calculează şi retumează o valoare
d) o funcţie nu poate avea mai mult de doi parametri formali
5. Fie următoarele declaraţii:
var x,y ,z: integer; a: real; b:boolean;
p r o c e d u r a t e s t ( v a r k: i n t e g e r ; 1: r e a l ; m : b o o l e a n ) ;
Care sunt celedouă instrucţiuni greşite dintrecelede urmează? Argumentaţi răspunsul.
a) x : = t e s t (y,a,b);
b) te s t (x,0.5,b);
c) t e s t ( 5 , a , b ) ;
d ) t e s t (z , a , t r u e ) ;
6.Fie datăurmătoarea funcţie recursivă:
fu n c tio n F ( n :n a t u r a l ) : n a t u r a l ;
b e g in
If n=0 t h e n f : = 0
e ls e f := n + f(n -l)
end;
Scrieţi forma nerecursivă a acestei funcţii.
7. Ce va afişa programul următor?

program tes17;
var a, b: integer;

procedure P(x:integer; y:integer);


begin
x :=2*x;
y:=3*y
end;

BEGIN
a:=10; b =20; P(a, b); write (a, b);
P(b, a); writeţa, b)
END.

8. Scrieţi enunţul problemei pentru care a fost elaborat următorul program:

164
program test8;
type natural=0..Maxlnt; var a maturai;

function f(x:natural):boolean;
var b:boolean;i:natural;

begin
b:=true;
for i:=2 to x div 2 do
if x mod i=0 then b:=false;
f :=b
end;

BEGIN
write('a='); readln(a); writeln(f(a))
END.

9. Se consideră următoarele declaraţii:


type natural=0..Maxlnt;
function f (x:natural):natural; ti
var p , i:natural;
begin
p:=l;
for i:=l to x do p:=p*i;
f :=P
end;
Ce valoare va avea f (7) ? Arătaţi calculele.
10. Fie dat următorul program:

p ro g ra m test1C;
t y p e natural - 0-.Maxlnt; v a r a :natural;
f u n c t i o n f(x:natural)maturai;
v a r k:natural;
b e g in
k:=0; w h i l e x<>0 do
b e g in
x:=x div 10; k:=k+l
end;
f :=k
end;
BEGIN
write('a=');readln(a); writeln(f(a))
END.

a) ce realizează programul dat?


b) transcrieţi acest program înlocuind funcţia cu o procedură
11. Se dă un număr natural X. Elaboraţi un program care va calcula produsul divizorilor acestui număr utilizând în acest
scop o funcţie.
12. Se dă un tablou unidimensional B cu n elemente numere reale (n<20). Elaboraţi un program care va determina
elementul maxim din acest tablou utilizând în acest scop o procedură.
13. Elaboraţi un program care va calcula produsul

1 t l
P (n ) = 1
4 9 n
pentru n dat de la tastatură, utilizând în acest scop o funcţie recursivă.

165
2.5.2. Structuri dinamice de date

Planificare tematică orientativă


Număr
Tema
de ore
Structuri dinamice de date
Variabile dinamice. Tipul referinţă. Structuri de date 2
Liste unidirecţionale 2
Prelucrarea listelor unidirecţionale 3
Stiva 3
Cozi 3
Arbori binari 2
Parcurgerea arborilor binari 3
Tipul de date pointer 2
Evaluarea sumativă 2

Total 22

Predare-învăţare 20 ore
Evaluare 2 ore

Obiective;
Variabile dinamice. Tipul referinţă
După studierea temei, elevii vor fi capabili:
- să explice care este diferenţa dintre variabilele statice şi variabilele dinamice;
- să cunoască ce operaţii se pot efectua cu valorile unui tip de date referinţă şi cu variabilele
dinamice-,
- să explice expresia alocarea dinamică a memoriei;
- să elaboreze programe în care se utilizează variabilele dinamice.
Structuri de date
După studierea temei, elevii vor fi capabili:
- să explice termenii: structură de date, structură implicită, structură explicită, structură
statică, structură dinamică, structură omogenă, structură eterogenă, structură recursivă;
- să cunoască diferenţa dintre structurile de date numite mai sus.
Liste unidirecţionale
După studierea temei, elevii vor fi capabili:
- să creeze şi să utilizeze liste unidirecţionale;
- să elaboreze programe destinate prelucrării listelor unidirecţionale.
Stiva
După studierea temei, elevii vor fi capabili să elaboreze programe destinate prelucrării stivelor,
Cozi
După studierea temei, elevii vor fi capabili să elaboreze programe destinate prelucrării cozilor.
Arbori binari
După studierea temei, elevii vor fi capabili:

166
- să programeze algoritmii iterativi şi algoritmii recursivi destinaţi creării şi afişării arborilor
binari;
- să dea exemple de probleme soluţionarea cărora necesită utilizarea arborilor binari;
- să programeze algoritmii de parcurgere a arborilor binari în preordine, în inordine şi
postordine;
- să poată transcrie programele recursive de parcurgere a arborilor binari în programele
nerecursive şi invers.
Tipul de date pointer
După studierea temei, elevii vor fi capabili:
- să elaboreze subprograme destinate gestionării memoriei interne a calculatorului;
- să dea exemple de probleme soluţionarea cărora necesită utilizarea tipului de date pointer.

Recomandări, completări
..................... ..............1____ ________ '

> Variabilele pot fi de două tipuri: statice sau dinamice. In timpul compilării programului
variabilelor statice li se alocă zone bine definite de memorie. Structura acestor variabile, tipul şi
locul lor din memorie nu se pot modifica pe toată durata execuţiei blocului în care au fost definite.
Spre deosebire de cele statice, variabilele dinamice pot fi create şi distruse chiar în timpul
execuţiei programului, astfel eliberându-se memoria ocupată de ele.
> Variabilele dinamice au un tip bine definit, dar ele nu sunt declarate în secţiunea Var şi nu pot fi
accesate direct. Lor li se pune în corespondenţă un tip numit referinţă, despre care se spune că
referă, indică sau pointează variabila dinamică. Referirea se realizează prin memorarea în variabila
de tip referinţă a adresei unde este stocată variabila dinamică. Variabilele de tip referinţă se mai
numesc indicatori de adrese. Mulţimea valorilor acestui tip constă într-im număr nelimitat 6 '
adrese plus o valoare specială numită N il, care nu identifică nici o variabilă.
> în timpul compilării, pentru fiecare variabilă de tip referinţă se alocă câte un spaţiu de memorie
de 4 octeţi (în zona fixă a programului, unde se memorează variabilele statice), care va conţine
adresa de memorie a variabilei dinamice referite.
> Variabilele dinamice se alocă intr-o zonă specială de memorie numită Heap (grămadă,
morman). Spaţiul de memorie ocupat de o variabilă dinamică corespunde tipului variabilei: 1 octet
pentru byte, 2 octeţi pentru integer, 11 octeţi pentru un şir de 10 caractere (string[10]) etc.
Exemplul dat în manual [6, pag. 177] poate fi ilustrat schematic după cum urmează:

167
Fie declaraţiile:
type AdresaInteger=Ainteger;
AdresaChar=Achar;
var i: Adresalnteger;
r: Areal;
c: AdresaChar;

Pentru variabilele de tip referinţă i, r şi c se alocă, în timpul compilării, câte un spaţiu de


memorie de 4 octeţi pentru fiecare (chiar dacă ele vor referi variabile dinamice de diferite tipuri).
în timpul execuţiei programului, la crearea unei variabile dinamice, de exemplu, la apelul procedurii
new (r) în zona Heap se alocă, în cazul dat, 6 octeţi de memorie (variabila dinamică este de tipul
real) la o adresă anumită şi această adresă se retumează în variabila referinţă r.
Dacă vom presupune că adresa din Heap la care „s-au găsit” 6 octeţi de memorie liberă este 2000,
atunci putem reprezenta schematic acest proces în felul următor:

MEMORIA
zona
variabilelor
programul statice zona Heap
r — a_ 'V" ____ a .___ a' “a

MEMORIA
zona
variabilelor
programul statice zona Heap
.. ^ ______ a ___
~ 'Y " _

rA

o
CM

c r i 2000
V

La execuţia instrucţiunii r A: = 2 .0 , la adresa care se ia din variabila r se va scrie


valoarea 2 .0

168
în acelaşi mod se poate reprezenta şi crearea variabilelor dinamice de tipul i n t e g e r şi c h a r din
acest exemplu.
> Avantajele utilizării variabilelor dinamice:
• eliberarea zonei de memorie corespunzătoare unei variabile dinamice prin apelul procedurii
dispose permite folosirea mai eficientă a spaţiului de memorie prin eventuala reutilizare a
sa;
• folosirea unui spaţiu de memorie redus, în cazul utilizării unor structuri complexe de date
(liste, stive, arbori, etc.).
> Funcţia addr şi operatorul unar @ determină adresa unei variabile statice sau dinamice. Ca
exemplu, programul de mai jos va afişa următoarele valori logice: TRUE F A L S E TRUE.

program adrese;
var xcinteger; a,b:pointer; c:Ainteger;
BEGXN
x:=10;
a:=addr(x);b:=@x;
write(a=b, ' ') ;
new(c);
cA:=10;
a:=addr(c); b:=addr(cA);
write(a=b, ' 1);
a:=addr(cA);b:=@cA;
write(a=b);
END.


Probleme rezolvate

Variabile dinamice. Tipul referinţă


♦> Problemă [6, pag. 180, prob. 8]

Elaboraţi un program în care se creează două variabile dinamice de tipul şir de caractere. Atribuiţi valori
variabilelor create şi afişaţi ia ecran rezultatul concatenării şirurilor respective
Rezolvare: ___________________________ ______________________________________________________
program Var_din;
type AdresaSir=Astring;
var r,s:AdresaSir;
BEGIN
new(r ); new(s);
rA.‘= 'Turbo ';
sA Pascal';
write(eoncat ţrA,sA));
END.

Liste unidirecţionale
❖ Problema 1 [6, pag. 186, prob. 5]
De la tastatură se citesc numere întregi diferite de zero. Se cere să se creeze două liste, una a numerelor
negative, iar alta - a numerelor pozitive________ _____________________ ______________________
Rezolvare:______________________________________________________ _______ __________ _____
program CreareListe;
type AdresaCelula=ACelula;
Celula = record
Info:integer;
Urm:AdresaCelula
end;
var Pp,Pn,Vp,Vn,R:AdresaCelula;{in variabila Pp se va păstră

169
adresa de baza a listei cu numere pozitive,
iar in Pn - adresa de baza a listei cu numere negative}
nr:integer;

procedure Creare{var P,V:AdresaCelula);


{procedura va returna adresa de baza si adresa vârfului listei}
begin
new(R);
if P=nil then P :=R;
RA.info:=nr;
RA .Urm:=nil;
if P O R then VA .Urm:=R;
V :=R
end; { Creare }

procedure Afişare(P:AdresaCelula;s:string);
begin
writeln('Lista cu elemente ',s);
if P=nil then Writeln('nu are elemente')
else begin
R:=P;
while ROnil do
begin
write (RA.info,' ');
R:=RA.Urm
end; { while }
end; {else }
end; { Afişare }
BEGIN
Pp:=nil;Pn:=nil;
writeln('Daţi numerele:') ;
readln(nr);
while n r o O do
begin
if nr>0 then Creare(Pp,Vp)
else Creare(Fh,Vn);
readln(nr);
end;
Afişare(Pp,'pozitive');
writeln;
Afişare(Pn,'negative');
END,

Problema 2 [6, pag. 192, prob. 4c)_____________________ ____________________________________________


Se considera unnătoarele tipuri de date:
type AdresaCandidat=ACandidat;
Candidat = record
NumePrenume:string;
NotaMedie:real;
Urm:AdresaCandidat
end;
Elaboraţi un program care creează o listă unidirecţională cu n componente de tipul Candidat (n>2) şi o
descompune în două liste. A doua listă va începe cu numele dat de la tastatură. Se presupune ca acest nume
există în listă şi nu este primul.

170
Rezolvare:
program DivizareLista;
type AdresaCândidat=ACandidat;
Candidat = record
NumePrenume:string;
NotaMedie:real;
Urm:AdresaCandidat
end;
var P,PI,R,V:AdresaCandidat;{in variabila P se va păstră
adresa de baza a listei iniţiale si a primei
liste formate,iar in PI - adresa de baza
a listei a doua}
cheie:string;
procedure Creare; {creeaza lista iniţiala}
var i,n:integer;
begin
writeln('Daţi numărul de candidaţi');readln(n);
P:=ni1;
for i:=l to n do
begin
new(R);
if P=nil then P:=R;
writeln('Daţi nume, prenume candidatul *,i);
readln (RA.NumePrenume);
writeln('Daţi media candidatul ', i);
readln (RA.NotaMedie);
RA.Urm:=nil;
if P O R then VA .Urm:=R;
V :=R
end; { for }
end; { Creare }

procedure Cautare(var Q:AdresaCandidat);


{cauta adresa celulei care va fi ultima in prima lista}
begin
R: =P;
while RA .NumePrenumeOcheie do R:=RA .Urm;
Q:=P;
while QA .Urm<>R do Q:’=QA .Urm
end; { Cautare }

procedure Divizare;
{lista iniţiala este divizata in doua liste}
begin
VA .Urm:=nil;
PI:=R;
end; { Divizare }

procedure Afişare(P:AdresaCandidat;k:byte);
{se afiseaza lista k}
begin
writeln{'Elementele listei ',k);
R:=P;
while ROnil do
begin
writeln (RA.NumePrenume,' ',RA.NotaMedie:0:2);
R:=RA.Urm
end;
end; { Afişare }

BEGIN
Creare;
writeln('Daţi nume, prenume cautat'); readln(cheie);

171
Cautare(V);
Divizare;
Afişare(P,1);
Afişare(PI,2);
END.

Liste bidirecţionale
❖ Problemă [6, pag. 197, prob. 7]

în jurul arbitrului sunt aranjaţi în cerc N jucători. începând cu jucătorul m (miN ), cu raţia k, jucătorii sunt
eliminaţi. Elaboraţi un program care afişează pe ecran ordinea de ieşire din cerc.

Rezolvare:___________________________________________________________________________________
program Jucători;
typé AdresaCelula=ACelula;
Celula = record
info:string;
Urm,PreciAdresaCelula;
end;
var P,V,R:adresaCelula; m,k,n:integer;

procedure Creare;{se creeaza o lista bidirecţionala}


var i:integer;
begin
P:=nil;V:=nil;
for i :=1 to n do
begin
new(R);
writeln('daţi numele jucătorului ',i);
readln(RA.info);
RA .prec:=nil;
RA .Urm:=nil;
if P=nil then begin P :=P>;V :=R end
ela® begin VA.Urm:=R; RA .Prec:=V; V:=R end;
end;
PA.Prec :=V; VA.Urm :=--p;
{se stabilesc legaturile intre vârf
si baza,se obţine o lista inelara}
end; { Creare }
procedure Afişare;
var contor,pas,primul :integer;
begin
R:=P;
primul:=1; {in variabila primul se determina numărul primului
jucător eliminat}
while primulom do
begin inc(primul);R:=RA .Urm end;
writeln('Eliminat ',RA .info);
contor :=1;
{in variabila contor se numără jucătorii eliminaţi}
RA.info:= ' ';
while contor<n do
begin
pas:=0;
{in variabila pas se numără jucătorii ramaşi pina
se ajunge la cel care trebuie sa fie eliminat}
repeat
R:=RA .Urm;
if RA.info<>' ' then inc(pas);
until pas=k;
writeln('Eliminat ',RA.info);
RA .info:= ' ';
inc(contor)

172
end;
end; { A f i ş a r e }

BEGIN
w r i t e l n ( ' d a ţ i n u m ă ru l d e j u c ă t o r i ' ) ; r e a d l n ( n ) ;
w r i t e l n ( ' D a ţ i n u m ă ru l p r i m u l u i j u c ă t o r e l i m i n a t s i r a ţia ');
readln(m ,k);
Creare;
A fişare;
END.

Stiva
❖ Problema |6, pag. 201, prob. 6] ______________________________________________________
Se consideră şiruri finite de caractere formate din parantezele ( , ) , { , } , [ , ] . Un şir este corect numai
atunci când el poate fi construit cu ajutorul următoarelor reguli:
a) şirul vid este corect;
b) dacă A este un şir corect, atunci ( A ), [A] şi {A } sunt şiruri corecte;
c) dacă A şi B sunt şiruri corecte, atunci AB este un şir corect.
De exemplu, şirurile ( ) , [ ] , { } , [ ( ) ] , ( ( ( { [ ] } ) ) ( [ ] ) ) sunt corecte, iar şirurile ( [ , ( ) [ ] { { ,
( [ ) ] nu sunt corecte. Elaboraţi un program care verifică dacă şirul citit de la tastatură este corect.

Rezolvare: ______________________________________________________________
program P a r a n t e z ;
type s t i v a = Ac e l u l a ;
c e lu la = re c o rd
infoichar;
p rec:stiva
end ;
var s i r : s t r i n g ; S , R ; s t i v a ; k , i : b y t e ;
p r o c e d u r a I n t r o d ; {d e p u n e u n c a r a c t e r d i n s i r i n s t i v a }
b e g in
new(R);
RA. i n f o : = s i r [ i ] ;
RA. p r e c : = S ; S : - R ;
end;

p ro c e d u ra E x t r a g ; { e x t r a g e c a r a c t e r u l d in v â r f u l s t i v e i }
b e g in
R: =S;
S : = S A. P r e c ; d i s p o s e (R) ;
end;

procedure A l e g e (c : c h a r ) ;
{ a p e le a z a p r o c e d u r a E x t r a g i n c a z u l c â n d p a r a n t e z a d i n v â r f u l s t i v e i
f o r m e a z ă p e r e c h e cu p a r a n t e z a e x a m i n a t a d i n s i r s i p r o c e d u r a I n t r o d - i n
caz c o n tra r}
begin
if SA. i n f o = c then E x t r a g
else I n t r o d ;
end;

BEGIN
w r i t e l n ( ' D a ţ i ş i r u l de p a r a n t e z e ' ) ;
readln(sir); k := length(sir);
S :=nil;
for i : = l to k do
case s i r [ i ] of
Introd;
' ) ' : Al ege( ' ( ' ) ;
' ] ' : A l e g e (' [ ' ) ;
' }' : Alege( ' {' ) ;
else begin

173
writeln('caracter greşit');
{şirul trebuie sa conţină doar paranteze}
exit
end;
end;
if S=nil then writeln ('Stiva e goala - şirul e corect')
else writeln ('Şirul nu este corect');
END.

Arbori binari
❖ Problemă [6, pag. 212, prob. 4]

Elaboraţi un program care construieşte arborele genealogic propriu pe parcursul a trei sau patru generaţii.
Nodul-rădăcină conţine numele, prenumele şi anul naşterii, iar nodurile descendenteconţin datele respective
despre părinţi.________________________ ________________________________________________

Rezolvare:
Varianta I - se utilizează un algoritm iterativ, nodurile arborelui binar sunt create şi afişate în ordinea apariţiei
lor pe niveluri. Informaţia asociată unui nod (numele, prenumele şi anul naşterii) este citită de la tastatură, absenţa
descendentului este semnalizată prin introducerea unui spaţiu._________________________________________
program Arb_gen_I;
type adrNod=Anod; nod=record
inf:r e c o r d
num_pren:string;
an_nast:integer
end;
st,dr:adrNod
end;
adrCel=Acei; cel=record
inf:AdrNod;
urm:adrCel
and;
var t :adrNod;p,u:adrCtl;
procedure AdcinCoac (0*3 t-iirNod) * ’
var r:adrcel; 1
begin 1
new(r); rA.inf:=Q; rA *urm:=nil;
if p=nil then begin p:=r;u:=r end
else begin uA .urm:=r; u:=r end;
end;{ AddinCoada }
procedure ScotdinCoada(var Q:adrNod);
var r :adrCel;
begin
r:=p; Q:=rA .inf; p:=pA.urm; dispose(r);
end; { ScotdinCoada }
procedure CreareArb;
var r,q:adrNod;s:string;
begin
t:=nil; p:=nil; u:=nil; writeln ('daţi radacina');
write('Nume, prenume: ');readln(s);
if s<>' ' then
begin new(r); rA.inf.num_pren:=s;
write('Anul naşterii: '); readln(rA.inf.an_nast);
t:=r; AddinCoada(t)
end; { then }
while p O nil do
begin ScotdinCoada(r);
writeln('daţi desc st (mama) al ',rA.inf.num_pren);
write('Nume, prenume: ');readln(s);
if s=' ' then rA.st:=nil
else
______________ begin new(Q);rA .st:=Q; QA .inf.num_pren:=s;

174
write('Anul naşterii: ');readln(QA.inf.an_nast);
AddinCoada(Q)
end;{ else }
writeln('daţi dese dr (tata) al ',rA.inf.num_pren);
write('Nume, prenume: ');readln(s);
if s=' ' then rA .dr:=nil
else
begin new(Q); rA .dr:=Q;QA.inf.num_pren:=s;
write(;Anul naşterii: ');readln(QA.inf.an_nast);
AddinCoada(Q)
end;{ else }
end;{ while }
end; { CreareArb }
procedure AfisArb;
var r:adrNod;
begin
if T=nil then writeln('Arbore vid')
else
begin writeln ('arborele genealogic: ');
p:=nil;u:=nil; AddinCoada(t);
while ponil do
begin scotdinCoada(r); writeln;
writeln('persoana ',rA.inf.num_pren,' ',rA .inf.an_nast);
write('cu părinţii: ');
if rA.st=nil then write('mama - nu-i cunosc numele, ')
else
begin write('mama-',rA .stA .inf.num_pren,'
',rA.stA.inf.an_nast,', ');
AddinCoada(rA.st);
end;
if rA.dr=nil then writeln('tata - nu-i cunosc numele')
else
begin writeln('tata- ',rA.drA.inf.num_
pren,'',rA.drA .inf.an_nast);
AddinCoada(rA.dr)
and;{ else }
end; { while }
end;{ else )
end; { AfisArb }
BEGIN
creareArb;
afisArb;
END.

Varianta a Il-a - se utilizează un algoritm recursiv, _________________


program Arb_gen_II;
type adrNod=Anod; nod=record
inf:r e c o r d
num_pren:string;
an_nast:integer
end;
st,dr:adrNod
end;
var t:adrNod;

function Arb : adrNod;


var r:adrNod; s:string;
begin
writeln ('Nume, prenume:');readln(s);
if s=' ' then Arb:=nil
else begin new(r); rA .inf.num_pren:=s;
writeln('Anul naşterii:');
readln(rA.inf.an nast);

175
writeln('daţi dese st (mama) al ', s);
rA.st:=Arb;
writeln{'daţi dese dr (tata) al nod ', s);
rA.dr:=Arb;Arb:=r
end;
end;{ Arb }
procedura AfişArb. (T:adrNod;nivel:integer);
var i:integer;
begin
if Tonii then
begin
AfisArb(TA.dr,nivel+1);
for i:=l to nivel do write(' ');
writeln(TA .inf.num_pren,' ',TA.inf.an_nast);
AfisArb(TA .st,nivel+1)
end
else
begin
for I:=l to nivel do write(' 1).;
writeln('nu-i cunosc numele')
end;
end; { AfisArb }
BEGIN
writeln('Daţi rădăcină ');
T:=Arb; âfisArb(T,0);
END.

Arbori binari de căutare


❖ Problemă [6, pag. 223, prob. 9j_________________________ ___________________________ __________ _
Scrieţi un subprogram care elimină din arborele binar de căutare nodul ce conţine o anumită cheie. De exemplu,
dacă din fişierul de intrare se vor citi datele următoare (numărul de noduri şi cheile lor):
20
11 7 15 5 9 13 3 17 4 12 18 10 1 14 6 20 2 16 19 8
a) va afişa arborele iniţial cu următoarea structură:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

176
c) va cere cheia nodului care urmează să fie eliminat şi va afişa arborele modificat şi rezultatul parcurgerii
arborelui modificat în inordine. B

Dacă va fi dat pentru eliminare, spre exemplu nodul 7, arborele modificat va avea următoarea structură:

1 /2 , 3 ,4 ,5 ,6, 8,9 , 1 0 ,11 ,12,13,14,15,16,17,18,19,20

Iar dacă se va elimina din arborele iniţial nodul 15, se va obţine structura:

Parcurgerea în inordine:
1 , 2 , 3, 4 , 5 , 6 , 7 , 8 , 9 , 1 0 , 1 1 , 1 2 , 1 3 , 1 4 , 1 6 , 1 7 , 1 8 , 1 9 , 2 0

177
Rezolvare:_______________________________________________________________
program Elim_nod;
type arbore = Anod;
nod=record
cheie:integer;
stg,dr:arbore
end;
var T,P;arbore;ch:integer;c :char;f :text;i,n:integer;

procedure Cautare (T:Arbore;ch:integer;var P.Arbore);


begin
if T=nil then P:=nil
else if ch=TA .cheie
then P:=T
else
if ch<TA .cheie
then Cautare (TA .stg, ch, P)
else Cautare (TA .dr,ch,P);
end;{Cautare}

procedure Elimin(T,P:Arbore);
begin
if T=nil then P:=nil
else begin if (PA.stg=nil) and (PA.dr=nil)
then begin
if tA.stg=p then tA.stg:=nil;
if tA .dr=p then tA .dr:=nil
end;
if (PA .stg=nil) or (PA.dr=nil)
than begin
if tA.stg=p then
if PA .stg=nil then tA.stg:=PA.dr
else TA.stg:=PA .stg;
if t".dr-p then
if PA .stg=nil then tA .d r :-PA .dr
else tA .dr:=PA .stg
end;

if PA.cheie<TA .cheie then


elimin (TA.stg,P)
else
elimin (TA.dr,P);
end;
end;{Elimin}

procedure £lim(T,P:Arbore);
var xl,x2,x3:arbore;
begin
if t=nil then P:=nil
else begin
if (TA .dr=P) or (TA .stg=P) then
begin
if TA.dr=P then TA.dr:=PA.stg
else TA .stg:=PA .stg;
x l :=PA .stg; x2:=PA .dr;
repeat
x3:=xlA .dr; xlA .dr:=x2;
xl:=x2A .stg; x2A .stg:=x3;
x2:=x3A .dr; x3A .dr:=xl;
x3:=xlA .stg; xlA .stg:=x2;
xl:=x2A .dr; x2A.dr:=x3;
x2:=x3A .stg; x3A .stg:=xl
until (xl=nil) or(x2=nil) or(x3=nil)

178
end;
if PA .cheie<TA .cheie then elim (TA .stg,P)
else elim (TA.dr,P)
end;
end; {Elim}

procedure Inserare(var T :arbore;ch:integer);


var 0:arbore;
begin
if T=nil then begin new( Q) ;QA .cheie:=ch;
QA .stg:-nil;QA .dr:»nil;T :=Q;
end
else if ch=TA.Cheie then
writeln('Nodul exista deja')
else if ch<TA.Cheie then
Inserare (TA.Stg, ch)
else
Inserare (TA.Dr, ch) ;
end;{Inserare}

procedure AfisArb(T:arbore; nivel:integer);


var i :integer;
begin
if Tonii then begin afisArb (TA .dr, nivel+1);
for i:=l to nivel do write(' ');
writeln(TA.cheie);
afisArb(TA .stg,nivel+1)
end;
end; {AfisArb}

procedure Inordine(T:Arbore);
begin
if T O nil then
begin inordine (TA .stg);
write( TA . cheie,' ');
inordine(TA .dr)
end;
end; {Inordine}

BEGIN
T:=nil;
assign(f,'arbore.txt'); reset(f);
readln(f,n);
for I:=l to n do begin read (f,ch);Inserare(t, ch); end;
writelnţ'Arborele iniţial:');
afisArb(T,0);
writeln('parcurgere inordine arbore intial');
inordine(t);writeln;
writeln('daţi nodul pe care il eliminaţi') ;readln(ch);
cautare(T,ch,P);
if (PA .dronil) and (PA .stgonil )
then elim (T,P)else elimin(T,P);
writeln('Arborele după eliminarea nodului:');
afisArb(T,0);
writeln('parcurgere inordine arbore final');
inordine(t);
END.
pentru evaluare sau autoevaluare
.. .....................

1. Indicaţi care este afirmaţia adevărată dintre ce!e ce urmează:


a) unei variabile de tip referinţă i se alocă în timpul compilării un spaţiu de memorie de 4 octeţi;
b) variabilele dinamice se mai numesc indicatori de adrese;
c) variabilele de tip reper se alocă într-o zonă de memorie numită heap\
d) nici una din afirmaţiile anterioare nu este adevărată.

2. Indicaţi care este afirmaţia adevărată dintre cele ce urmează:


a) numărul de variabile dinamice ce pot fi create în cadrul unui program este nelimitat;
b) orice variabilă de tip referinţă poate fi dereperată;
c) procedura predefinită dispose(r), unde r este o variabilă de tip referinţă, alocă spaţiu de memorie pentru o
variabilă dinamică şi retumează adresa respectivă prin variabila r\
d) nici una din afirmaţiile anterioare nu este adevărată.

3. Se consideră declaraţiile:
ty p e r e f _ i n t = Ai ;
i= in teg er;
var a: r e f _ i n t ;
b : Ai n t e g e r ;
Ce se va afişa după execuţia secvenţei de program:

new(a); new(b);
a A: = 8 ; b A: = a A mod 3;
w r i t e l n ( a A, a A d i v b A) ;

a) 82;
b) 84;
c) declaraţiile «u sunt valide;
d) nici una din afirmaţiile anterioare nu este adevărată

4. Se consideră declaraţiile:
ty p e r e f _ c a r = Ac h a r ;
var a: r e f _ c a r ;
b , c : Ai n t e g e r ;
Ce se va afişa după execuţia secvenţei de program:

n e w ( a ) ; a A:='A';
n e w ( b ) ; b A: =1 0;
c : = b ; n e w ( b ) ; b A: = l ;
w r i t e l n ( b A, s u c c ( a A) , c A );

a) 1B1;
b) 1B 10;
c) 10A10;
d) nici una din afirmaţiile anterioare nu este adevărată

5. Se consideră că există o listă nevidă definită prin declaraţiile:


ty p e l i s t a = Ac e l u l a ;
celula=record
e lev : re c o rd
nume: s t r i n g [ 1 5 ] ;
prenume: s t r i n g [ 1 0 ] ;
media: r e a l
end;
urm: l i s t a
end;
v a r P,R,R1,R2: l i s t a ;

180
şi secvenţa de program:

R 1 : =P;
while R lA.eiev.numeo'Stroescu' do R l:= R lA.urm;

unde P indică adresa de bază a listei. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
Secvenţa de program are ca efect:
a) memorarea în R1 a adresei celulei.ce conţine numele elevului Stroescu numai în cazul că această celulă există;
b) memorarea în R 1 a adresei celulei ce urmează după celula ce conţine numele elevului Stroescu;
c) declanşarea unei erori de execuţie în caz că celula cu numele dat al elevului nu există în listă;
d) excluderea din listă a celulei ce conţine numele elevului Stroescu

6. Fie declaraţiile din testul precedent şi secvenţa de program:

R 1 := P ;
W h ile R l A.u rin < > R 2 do R l:= R lA.u rm ;
R l A. u r m : = R 2 A . u r m ; _____________________________________________

unde P indică adresa de bază a listei. Indicaţi care este afirmaţia adevărată dintre cele ce urmează:
Secvenţa de program are ca efect:
a) excluderea celulei R l;
b) excluderea celulei R2;
c) includerea celulei R 2 ;
d) nici una din afirmaţiile anterioare nu este adevărată.

7. Fie declaraţiile din testul 5 şi procedura:

p ro c e d u ra a fiş a re (R : l i s t a ) ;
b e g in
Xf R o n il than begin
a fiş a re {RA . u r m ) ;
w r i t e l n (R A. e l e v . n u m e , '
R A. e l e v . p r e n u m e )
and
end;
Indicaţi care este afirmaţia adevărată dintre cele ce urmează:
Procedura dată are ca efect:
a) afişarea numelui şi prenumelui ultimului elev din listă;
b) afişarea listei elevilor în ordinea în care a fost creată;
c) afişarea listei elevilor în ordinea inversă celei în care a fost creată;
d) nici una din afirmaţiile anterioare nu este adevărată.

8. Se consideră că există o stivă nevidă definită prin declaraţiile:


ty p e s t i v a = Ac e l u l a ;
celula=record
in fo : strin g ;
p rec: stiv a
end;
var S: stiv a ;

Procedura ce urmează are ca efect extragerea unui element din stivă:


p ro c e d u re E x t r a g e r e ;
var R: s t i v a ;
b e g in
R : =S ;
w rite ln (R A . i n f o ) ;

d isp o se (R );
end; ___________________________
Ce instrucţiune trebuie să fie introdusă în locul punctelor?

181
a) R : = R A . p r e c ;
b) S : = S A . p r e c ;
c) S : =R;
d) nici un răspuns anterior nu este corect.

9. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) un arbore este un tip particular de graf;
b) un nod este un arbore binar numai în cazul când conţine legături către alţi doi arbori binari;
c) nodul care nu are fii se numeşte nod terminal sau frunză;
d) stiva este o listă de tip F I FO.

10. Indicaţi care este afirmaţia adevărată dintre cele ce urmează:


a) un arbore vid conţine doar rădăcina;
b) într-un arbore binar orice nod are nu mai puţin de doi fii;
c) nodul rădăcină nu are ascendent;
d) nici una din afirmaţiile anterioare nu este adevărată.

11. Se consideră că există un arbore binar definit prin declaraţiile:


ty p e a r b = An o d ;
n o d = re c o rd
in fo : s trin g ;
s t: arb ;
d r: An o d
end;
v a r C: arb;
şi procedura ce urmează:

p ro ced u ra tra v e rsa re (C : a rb );


b e g in
i f C O n il then b a g iîi
traversare (CA .st);
•frit.s i n ; C A . i n f o ) ;
traversare ( C A . d r ) ;
&rd,
end ;

I n d i c a ţi c a r e e s t e a f i r m a ţ i a a d e v ă r a t ă d i n t r e c e l e ce u r m e a z ă :
a) p ro c ed u ra re a liz e a z ă tra v e rs a re a în i n o r d in e ;
b) p ro c e d u r a re a liz e a z ă tra v e rs a re a în p r e o r d i n e ;
c) p ro ced u ra realizează trav ersarea în p o sto rd in e ;
d) d e c l a r a ţ i i l e c o n ţ i n u n a s a u m a i m u l t e ero ri.

12. A r b o r e l e b i n a r c o m p l e t r e p r e z e n t a t în c o n t i n u a r e e s t e a s o c i a t e x p r e s i e i :

a) ^ +(d - c)(b + a)\


la

b) {a + b \ c - d ) A
bc

c) a + b c - d + 2 —c;
b
d) n i c i u n r ă s p u n s a n t e r i o r n u e s t e c o r e c t.

182
13. Forma poloneză a expresiei aritmetice căreia i se asociază arborele binar din testul 12 este:
a) a+b*c-d+2*a/b*c;
b) +*+ab-cd/*2a*bc;
c) ab+cd-*2a*bc*/+;
d) nici un răspuns anterior nu este corect.
14. Indicaţi care este afirmaţia adevărată dintre cele ce urmează:
a) pentru listarea informaţiilor dintr-un arbore binar de căutare în ordinea crescătoare a cheilor parcurgem acest
arbore în preordine;
b) un arbore binar de căutare nu poate degenera într-o listă unidirecţională;
c) eficienţa regăsirii informaţiei într-un arbore binar de căutare nu depinde de numărul de niveluri al acestui
arbore;
d) nici una din afirmaţiile anterioare nu este adevărată.
15. Fie un arbore oarecare reprezentat în continuare

Indicaţi care este afirmaţia adevărată dintre cele ce urmează:


a) arborele dat are 5 niveluri şi este de ordinul 5;
b) la parcurgerea arborelui în lăţime nodurile vor fi vizitate în ordinea:
A, B, C, D, E, F, G, H, I, J, K, L, M, N, O;
c) la parcurgerea arborelui în adâncime nodurile vor fi vizitate în ordinea:
A, B, C, D, E, F, G, N, O, H, 1, J, K, L, M;
d) nici una din afirmaţiile anterioare nu este adevărată.
16. Indicaţi care sunt cele două afirmaţii adevărate dintre cele ce urmează:
a) tipul pointer este un tip reper care nu are tip de bază;
b) variabilele de tip pointer pot fi dereperate;
c) variabilele de tip pointer pot fi afişate la ecran;
d) tipul pointer este compatibil cu orice tip de date referinţă.

183
17. Se consideră declaraţiile:
var p: pointer;
i,j: Ainteger;
a,c: Achar;
Ce se va afişa după execuţia secvenţei de program:

n e w ( c ) ; c A: = ' c ' ;
p:=c; new(c); c A = 'p ';
a:=p; new (i); i A =5;
p : = i ; i A: = i A*2; j :=p;
w r i t e l n ( a A, i A, j A, c A ) ;

a) clOlOp;
b) pl05p;
c) cl05p;
d) nici un răspuns anterior nu este corect.

Răspunsuri: Testul 1: a); Testul 2: d); Testul 3: b); Testul 4: b); Testul 5: a) şi c);
Testul 6: b); Testul 7: c); Testul 8: b); Testul 9: a) şi c); Testul 10: c); Testul 11: a);
Testul 12: b); Testul 13:); Testul 14: d); Testul 15: d); Testul 16: a) şi d); Testul 17: a)

Model de proiect didactic

Liceul:
P ata;
Clasa: a Xi-a (profilul real)
Obiect«!' Informatica
Profesor:
Tipul lecţiei: Lecţie de asimilare a cunoştinţelor
D urata: 45 min

Tema lecţiei: Variabile dinamice. Tipul referinţă

Obiectivele lecţiei
> Obiective de referinţă:
• Cunoaşterea structurilor dinamice de date;
• Utilizarea structurilor dinamice de date la rezolvarea problemelor.
> Obiective operaţionale:
• să cunoască care este diferenţa dintre variabilele statice şi variabilele dinamice;
• să cunoască modul de referire a variabilelor dinamice;
• să poată defini tipul de date referinţă;
• să poată preciza mulţimea de valori şi operaţiile admise pentru tipul de date referinţă;
• să cunoască operaţiile de creare şi de distrugere a variabilelor dinamice;
• să poată preciza mulţimea de valori şi operaţiile admise asupra variabilelor dinamice;
• să demonstreze înţelegerea modurilor de alocare statică şi de alocare dinamică a memoriei;
• să dea exemple de probleme soluţionarea cărora necesită utilizarea variabilelor dinamice;
• să elaboreze programe în care se utilizează variabilele dinamice.

Metode de învăţământ:
•Conversaţia, «Metoda euristică, «Demonstrarea, «Conspecte de reper, «Analiza, «Comparaţia, «Problematizarea,
•Observaţia independentă, «Cercetarea în grup, «Algoritmizarea, «Exerciţiul, «învăţarea reciprocă

Mijloace de învăţământ:
•o clasă de calculatoare; «soft-ul: mediul de programare Turbo Pascal; «manualul; «culegerea de teste-grilă; «fişe cu
probleme

184
Scenariul lecţiei
Etapele lecţiei Formele de Durata,
Activitatea profesorului Activitatea elevilor
învăţare min

• Salut elevii, verific


Moment prezenţa, le propun să-şi Răspund la apel, îşi
organizatoric Individual i
pregătească caietele şi pregătesc cele necesare
calculatoarele pentru lucru

Anunţarea temei şi • Scriu tema la tablă şi anunţ în colectiv, Ascultă, fac notiţe
obiectivelor lecţiei 2
obiectivele lecţiei individual

Reactualizarea • Discut cu elevii despre Participă la discuţie, 4


cunoştinţelor, alocarea memoriei pentru răspund la întrebări
priceperilor şi tipurile de date pe care le-
deprinderilor însuşite am studiat până acum.
anterior Prezint la tablă diferite
exemple de declaraţii de
variabile şi-i rog pe elevi să
estimeze spaţiul de
memorie rezervat acestor
variabile
• Le explic elevilor:
diferenţa dintre variabilele 10
statice şi cele dinamice;
necesitatea alocăr ii
Comunicarea noilor
dinamice a memoriei;
cunoştinţe
modul de referire a
variabilelor dinamice;
cum se defineşte tipul de în colectiv,
Ascultă, fac notiţe, pun !
date referinţă; individual
întrebări
care este mulţimea de valori
şi de operaţii admise pentru
tipul de date referinţă;
care este mulţimea de valori
şi de operaţii admise asupra
variabilelor dinamice;
cum se creează şi se distrug
variabilele dinamice;
• Reprezint la tablă schematic
5
zona de memorie rezervată
variabilelor statice şi cea
destinată variabilelor
dinamice şi prin exemple de
declaraţii a variabilelor
dinamice de diferite tipuri
explic modul de alocare a
memoriei în fiecare caz
aparte
• Invit la tablă doi elevi Doi elevi prezintă câte un 4
pentru a prezenta pe rând exemplu la tablă, ceilalţi
câte un exemplu de le analizează şi intervin în
declaraţie, creare, distrugere caz de necesitate
a variabilei dinamice şi în colectiv,
modul de alocare a Individual
memoriei în fiecare caz
• Le propun elevilor să Rezolvă testele, răspund 6
analizeze şi să rezolve în la întrebări

185
Fixarea noilor mod individual testele 6.1-
cunoştinţe 6.4 din culegerea de teste şi
să-şi expună variantele de
rezolvare
10
• Le propun elevilor lucrând în perechi Testează programul din
câte doi mai întâi să testeze manual, elaborează altă
la calculator programul din variantă de program
manualul de Informatică [6,
pag. 179], care
demonstrează cazul de
depăşire a capacităţii
memoriei, apoi să elaboreze
un alt program care va evita
utilizarea instrucţiunii
GOTO
• Analizez programele
Concluzii. Realizarea
elaborate, răspund la Individual Discută, pun întrebări 2
feedback- ului
întrebările elevilor
Anunţarea temei Notează în caiet tema
• Anunţ tema de acasă Individual 1
pentru acasă pentru acasă.

Mode! de lucrare de evaluare

Matricea de specificaţii

Obiective
Cenţi nutri Cunoaştere,
Aplicare Creativitate Total
înţelegere
33%
1 item 2 itemi 1 item
Funcţii 4 itemi
3 puncte 18 puncte 12 puncte
33 puncte
24%
1 item 1 item 1 item
Proceduri 3 itemi
3 puncte 9 puncte 12 puncte
24 puncte
33%
1 item 2 itemi 1 item
Recursivitate 4 itemi
4 puncte 18 puncte 11 puncte
33 puncte
10%
Variabile 1 item
- - 1 item
dinamice 10 puncte
10 puncte

10% 55% 35% 100%


Total 3 itemi 6 itemi 3 itemi 12 itemi
10 puncte 55 puncte 35 puncte 100 puncte

Obiective de evaluare
Elevul trebuie:
• să cunoască subprogramele (inclusiv cele recursive) şi să fie capabil să le utilizeze;
• să cunoască definirea şi operaţiile tipului referinţă; crearea, utilizarea şi distrugerea variabilelor dinamice.

Barem de verificare
Item 1 2 3 4 5 6 7 8 9 10 11 12 Total
Puncte 10 3 4 3 9 9 9 9 9 12 12 11 100

Barem de notare
a
Nota 1 2 J 4 5 6 7 8 9 10
Puncte 0..6 7..13 14..23 24..32 33..48 49..61 62..74 75..87 88..93 94..100
Test de evaluare
Varianta I
1. Se consideră declaraţiile:
type AdrChar=Achar;

var a,b: AdrChar;


c,d:Ainteger;
e,f: byte;
Indicaţi care sunt cele patru instrucţiuni corecte dintre cele de mai jos:
a) new(a);
b) new(cA);
c) dispose(d);
d) c:=d+e;
e) cA:=ord(bA)+e;
f) aA:=’b’;
g) read(d);
h) read(fA);
i) bA:=nil.
2. Este adevărată (A) sau falsă (F) următoarea afirmaţie:
Parametrii actuali corespunzători parametrilor formali variabilă nu trebuie în mod obligatoiu să fie variabile.
3. Completaţi propoziţia:
O declaraţie anticipată include antetul subprogramului şi directiva............
4. Indicaţi una dintre afirmaţiile de mai jos care este adevărată:
a) Definiţiile de funcţii nu pot fi incluse una în alta;
b) Tipul funcţiei poate fi orice tip de date;
c) O procedură poate retuma 2 valori;
d) Numele parametrilor actuali nu poate coincide cu numele parametrilor formali corespunzători
5. Indicaţi care sunt cele două antete de funcţii valide dintre cele de mai jos:
a) Function Fun
(var a:integer; b:real):boolean;
b) Function max
(a;array[1..10j of byte): byte;
c) Function
tablou(n:integer):array [I..5J of char;
d) Function F
(x:integer; var y:real):chai;
6. Se consideră declaraţiile:
Var a,b,c:integer; d,e:real;
Function f
(var x:integer;y:real):real;
Indicaţi care sunt cele două instrucţiuni corecte dintre cele de mai jos:
a) d:=f(2,4);
b) readln(f(c,e));
c) write(f(a,a));
d) e:=f(b,2.4);
e) e:=2*f(d,c);
7. Ce va afişa programul următor?
Program item7;
Var x,y:integer;
Procedure P
(x:integer;var y:integer);
Begin
x:=0; y;=0
end;
BEGIN
x:=l; y:=2;
P(x,y);
writeln(y,x);
END.
a) 10
b) 12
c) 01
d) 21

187
8. Fie descrierea funcţiei Ackermann:

function A
(m,n:integer): integer;
begin
if m=0 then A:=n+1
else if n=0 then A:=A(m-!, 1)
else A:=A(m-l,A(m,n-));
end;
Determinaţi cu ce este egală funcţia A(2,l). Arătaţi calculele.
9. Ce va afişa programul următor?
Program item9;
V ar x,n: integer;
Function calcul
(n:integer): integer;
Begin
If n=0 then calcul:=0
else calcul :=calcul(n-l)+n
end;
BEGIN
x:=9; writeln (x+ l,‘-‘, calcul(x),‘-‘,n);
END.
a) 10-0-10
b) 10-45-0
c) 10-55-0
d) 10-55-10
10. Se dă şirul de caractere S în care se conţin literele a şi b. Elaboraţi un program care va determina care literă se
întâlneşte mai des în şirul dat: a sau b. Utilizaţi o procedură.
11. Se dă tabloul unidimensional A[l.,10] de numere întregi pozitive. Elaboraţi o funcţie care va retuma suma
cifrelor elementului maxim din tabloul A. Scrieţi întreg programul.
12. Elaboraţi un program în care se va calcula recursiv suma:
S(n)=l+ 1*2+1 *2*3+...+1 *2*3 *,.*n,
pentru n dat de la tastatură (n<10)

Varianta a Il-a
1. Se consideră declaraţiile.
Type AdrChar=Achar;
Var a,b: AdrChar;
c,d:Abyte;
e,f:byte;
Indicaţi care sunt cele patru instrucţiuni corecte dintre cele de mai jos:
a) new(d);
b) new(fA);
c) dispose(cA);
d) dispose(eA);
e) dA:=ord(a);
f) aA:=chr(dA);
g) bA:=chr(eA);
h) a:=nil;
i) read(e);
2. Este adevărată (A) sau falsă (F) următoarea afirmaţie:
Parametri-valoare servesc pentru întoarcerea rezultatelor din subprogram în programul principal.
3. Completaţi propoziţia:
Necesitatea utilizării declaraţiei anticipate apare în cazul recursiei.................
4. Indicaţi una dintre afirmaţiile de mai jos care este adevărată:
a) O variabilă globală nu poate fi redefinită local într-o procedură;
b) Parametrii actuali din apelul subprogramului trebuie să coincidă în număr, tip şi poziţie cu parametrii formali din
declaraţia subprogramului;
c) Antetul procedurii trebuie să conţină în mod obligatoriu lista parametrilor formali;
d) Valoarea unei funcţii de tip integer poate fi citită de la tastatură.
5. Indicaţi care sunt cele două antete de funcţii valide dintre cele de mai jos:
a) Function FI (var a:integer; b: real);
b) Function F2 (var a:char;var b:string):byte;

188
c) Function F3(x:integer):0..9;
d) Function F (var F:boolean):boolean;
6. Se consideră declaraţiile:
Var a,b:byte;
c,d: real;
e:integer;
Function f(x:integer; v ar y:real):byte;
Indicaţi care sunt cele două instrucţiuni corecte dintre cele de mai jos:
a) readln(f(a,c));
b) write(f(1000,c));
c) b:=f(e,1000);
d) e:=f(2.5,d);
e) c:=f(e,d)/a; {pentru a diferit de zero}
7. Ce va afişa programul următor?
Program item7;
Var a,b:integer;
Procedure P
(var x:integer; y:integer);
Begin
x:=x+l; y:=10
end;
BEGIN
a:=0; b:=0; P(a,b); writeln(b,a);
END.
a) 10
b) 01
c) 101
d) 110
8. Fie descrierea funcţiei Ackermann:
function A
(m,n: integer): integer;
begin
if m=0 then A:=n+1
else if n=0 then A:=A(m-l,!)
else A:=A(m-l, A(m, n-l));
end;
Determinaţi cu ce este egală funcţia A(2,l). Arătaţi caiculele.
9. Ce va afişa programul următor?
Program item9;
Var x,n: integer;
Function calcul(n:integer): integer;
Begin
If n=0 then calcul:=l
else calcul :=calcul(n-l)+n*n
end;
BEGIN
x:=3; writeln (n, calcul(x), ‘-‘,x);
END.
a) 0-14-3
b) 3-15-0
c) 3-15-3
d) 0-15-3
10. Se dă tabloul unidimensional A[1..10] de numere întregi pozitive. Elaboraţi un program care va determina dacă
elementul maxim din tabloul A este număr prim. Utilizaţi o procedură.
11. Se citesc de la tastatură şirul de caractere S şi caracterul x. Elaboraţi o funcţie care va retuma numărul de apariţii a
caracterului x în şirul S. Dacă caracterul x nu se conţine în şirul dat - afişaţi mesajul corespunzător. Scrieţi întreg
programul.
12. Elaboraţi un program în care se va calcula recursiv suma:
S(n)=l+x+x72!+...+x7n!
pentru x şi n - numere întregi date de la tastatură (n<10)
2.5.3. Metode de elaborare a produselor program

Planificare tematică orientativă


Număr
Tema
de ore
Metode de elaborare a produselor program
Programarea modulară 2
Testarea şi depanarea programelor 2
Elemente de programare structurată 2
Evaluarea sumativă 2

Total 8

Predare-învăţare 6 ore
Evaluare 2 ore

Obiective:
Programarea modulară
După studierea temei, elevii vor fi capabili:
- să descrie forma generală a unităţii de program;
- să elaboreze şi să utilizeze unităţi de program;
- să estimeze complexitatea proceselor de elaborare a programelor cu şi fără aplicarea
programării modulare.
Testarea şi depanarea programelor
După studierea temei, elevii vor fi capabili:
- să selecteze datele de intrare pentru testarea funcţională şi testarea structurală programelor;
- să rezume domeniile de aplicare şi relevanţa rezultatelor testării;
- să explice termenul „verificarea programelor”.
Elemente de programare structurată
După studierea temei, elevii vor fi capabili:
- să formuleze teorema de structură;
- să aplice regulile de bază ale programării structurate;
- să evidenţieze avantajele şi neajunsurile programării structurate în raport cu programarea
convenţională.

Probleme rezolvate

❖ Problema 1 [6, pag. 257, prob. 9]


Şirurile de caractere de lungime n, n<500 pot fi reprezentate în programele Turbo Pascal prin variabile de tipul:
type lungime=0..500;
SirdeCaractere=record
n:lungime;
s :array[1..500] of char
end;
Elaboraţi o unitate de program care conţine funcţiile şi procedurile necesare pentru efectuarea următoarelor
operaţii:
a) citirea şirurilor de la tastatură;

190
b) afişarea şirurilor pe ecran;
c) concatenarea şirurilor;
d) compararea lexicografică;
e) calcularea lungimii unui şir.
Rezolvare:______________________________________________________
Unit Şiruri;
Interface
type lungime=0..500;
SirdeCaractere=record
n:lungime;
s :arrayf1..500] of char
end;
var Sirl,Sir2:SirdeCaractere;
procedure citire (var Sir:SirdeCaractere);
function L(Sir:SirdeCaractere):lungime;
function F(Sirl,Sir2:SirdeCaractere):string;
procedure afişare(Sir:SirdeCaractere);
procedure concatenare(var Sirl;SirdeCaractere;
Sir2:SirdeCaractere);
implementation
procedure citire;
var k,i:0..500;
begin
writeln('Daţi şirul de caractere(pina la intilnirea
caracterului ''#'')');
i:=0; k:=0;
repeat inc(i);inc(k);readln(Sir.s[i]); until Sir.s[i]='#';
Sir.n:=k-1;
end; {citire}
function L;
begin
L:=Sir.n
end; {L}
function F;
var b :boolean;i:1..500;
begin
F :='nu ';
if Sirl.n=Sir2.n then
begin b:=true;i:=1;
while b and (i<=Sirl.n) do
begin
if Sirl.s[i]<>Sir2.s[i] then b:=false;
inc(i)
end;
if b then F:=''
end;
end; {F}

procedure afişare;
var k,i :0..500;
begin
for i:=l to Sir.n do write(Sir.s[i]);
writeln;writeln('Şirul are ',L(Sir),' caractere');
end; {afişare}
procedure concatenare;
var kl, k2, i, k: 0 ..500;
begin
kl:=Sirl.n;k2:=Sir2.n; k:=l;
for i :=kl+l to kl+k2 do begin Sirl.s[i]:=Sir2.s[k];inc(k)
end;
Sirl.n :=kl+k2;
end; {concatenare}
end.
Utilizarea unitului Şiruri:
uses Şiruri;
var Sirl,Sir2:SirdeCaractere;
BEGIN
citire(Sirl);
citire (Sir2);
writeln('Şirul 1: ');
afişare(Sirl);
writeln('Şirul 2: ');
afişare(Sir2);
writeln('Şirurile ',F(Sirl,Sir2),'sunt egale');
concatenare(Sirl,Sir2);
writeln('Şirul concatenat: ');
afişare(Sirl);
END.

Notă: Unitul cu numele Siruri.pas se compilează, după ce se fixează destinaţia compilării pe disc (Destination
Disc din meniul Compile). în urma compilării se creează fişierulŞiruri, tpu

REFER IN ŢE
1. Bălănescu T., Gavrilă Ş., Georgescu H., ş.a. Programarea în limbajele PASCAL şi TURBO
PASCAL / Vol. I / Limbajul PASCAL / Concepte fundamentale, EDITURA TEHNICĂ,
Bucureşti, 1992.
2. Bălănescu T., Gavrilă Ş., Georgescu H., ş.a. Programarea în limbajele PASCAL şi TURBO
PASCAL/ Vol. II / Limbajul TURBO PASCAL, EDITURA TEHNICĂ, Bucureşti, 1992.
3. Dragan G, Teste-grilă la limbajul de programare PASCAL, Editura TISH, 2000.
4. Fătu I. Teste grilă de programare în limbajele PASCAL şi C, Editura didactică şi pedagogică R.
A., Bucureşti, 1995.
5. Gremalschi A. Informatica. Tehnici de programare I Manual pentru clasa a Xl-a, Ştiinţa,
Chişinău, 2003.
6. Gremalschi A., Mocanu Iu., Spinei I. Informatica. Limbajul PASCAL / Manual pentru clasele
IX-XI, Ştiinţa, Chişinău, 1999.
7. Munteanu F. (coord.) Programarea calculatoarelor / Manual pentru licee de informatică /
Clasele X-XII, Editura didactică şi pedagogică R. A., Bucureşti, 1995.
8. Pătruţ B. Algoritmi şi limbaje de programare / Manual de Informatică / Clasa a IX-a, Teora,
1998.

192
Tehnici de programare
2.5.4. Analiza algoritmilor

Planificare tematică orientativă


Număr
Tema
de ore
Analiza algoritmilor
Complexitatea algoritmilor 1
Estimarea necesarului de memorie 1
Măsurarea timpului de execuţie 1
Estimarea timpului cerut de algoritm 2
Complexitatea temporală a algoritmilor 1
Evaluarea sumativă 1

Total 7
Predare-învăţare 6 ore
Evaluare 1 oră

Obiective:
Analiza algoritmilor
După studierea temei, elevii vor fi capabili:
- să explice termenul complexitatea algoritmului,
- să estimeze mărimea memoriei necesare unui algoritm;
- să cunoască indicatorii ce caracterizează complexitatea algoritmilor;
- să explice cum se gestionează memoria internă în cazul unui program PASCAL;
- să cunoască cum pot fi modificate dimensiunile stivei şi ale heap-xtlnv,
- să cunoască cum se clasifică algoritmii în funcţie de complexitatea temporală;
- să estimeze timpul necesar execuţiei unui algoritm în funcţie de numărul de date de intrare;
- să clasifice algoritmii în funcţie de comportarea în timp.
Probleme rezolvate
Cursul "Tehnici de programare” are drept scop însuşirea cunoştinţelor necesare pentru a forma
cultura informaţională şi a dezvolta gândirea algoritmică, in acest curs sunt analizate noţiunile de
bază din teoria algoritmilor, metodele de estimare a necesarului de memorie şi a timpului cerut de
algoritm; sunt examinate tehnicile de programare utilizate frecvent în informatica modernă:
recursivitatea, trierea, tehnica Greedy, metoda reluării, metoda desparte şi stăpâneşte, aplicaţiile
metodei ramifică şi mărgineşte. Fiind strâns legate cu cunoştinţele din alte domenii, temele din
acest curs sunt axate pe metodele de rezolvare a problemelor ce necesită un volum foarte mare de
calcul, evidenţiindu-se rolul esenţial al conceptelor matematice în procesul de apariţie şi dezvoltare
a informaticii.
Cursul Tehnici de programare va contribui la obţinerea următoarelor competenţe: analiza
structurală a problemei, divizarea problemelor complexe în probleme mai simple şi reducerea lor la
cele deja rezolvate, estimarea complexităţii algoritmilor destinaţi soluţionării problemelor propuse,
utilizarea metodelor formale pentru elaborarea algoritmilor şi crearea programelor respective.
Este evident că pentru rezolvarea unei probleme, dacă mai multe persoane folosesc aceeaşi
metodă de proiectare, algoritmii realizaţi pot fi difere. Cu atât mai mult acest lucru este posibil
atunci când metodele sunt diferite.

193
Analizăm unele probleme din cursul şcolar de estimare a necesarului de memorie şi a timpului cerut de algoritm
pentru a selecta în cazul necesităţii algoritmul mai potrivit în condiţiile existente:
Estimarea necesarului de memorie
❖ Problema 1 [2, pag. 10, prob. 6j

Rezolvare:
1) Vd (n) = 2 * 6 *n12 o c t e ţ i
2) începând de la n=80 din cauza insuficienţei segmentului de date al memoriei interne ( Vd (n) ^ 6 4 K o c t e ţ i )
apare mesajul: Too ma n y v a r i a b l e s .
❖ Problema 2 [2, pag. 11, prob. 7]

Rezolvare:
1) Vs(n)= (6+2+4+4 ) * ( л + 1 ) = 1 6 * ( л + 1 ) octeţi
2) începând de la n=8 81 din cauza insuficienţei segmentului stiva al memoriei interne
(V,(n) <16 Kocteţi) apare mesajul: S t a c k o v e r f l o w e r r o r .

194
Probiema 3 [2, pag. 11, prob. 8]

Determinaţi necesarul de memorie alprogramului P148. Pentru care valori ale lui n programul va derula fără
erori?

program PI4.8;
{Dimensiunile heap-ului}
type Vector-arrayfl. .100] of ireal;
var p : AVeetor;
i,n:integer;
BEGIN
writ.e ('n=' ); readln (n );
for i :—1 to n do new(p);
writeln{'Sfârşit');
readln;
END.

Rezolvare:
1) Vi,( n ) =6 ■ 100 •n octeţi
2) începând de lan=503 din cauza insuficienţei segmentului heap almemoriei interne
(Vh (n) £ 655360 o c t e ţ i ) apare mesajul: Heap o v e r f l o w e r r o r .
Măsurarea timpului de execuţie
❖ Problemă [2, pag. 14, prob. 3]
Reprezentaţi grafictimpul de execuţie aprocedurii ce urmează:
procedure N 3 (n:integer);
var i,j,k;integer ?
r ;real;
begin
for i ;=1 to n de
for j :--l to n do
for k.-t to r do
.0 ;

R e z o lv a r e :
program Timp_de_executiel;
uses DOS;
var n:integer;
orei, ore2,minutel,minute2,secundei,secunde2,
sutimii, sutimi2:Word;
:rrtimpl, timp2:real:;

procedura N 3 (n:integer);
var i, j ,k: integer; r :real-;
begin
for i:=l to n do
for j:=1 to n do
for k:=l to n do
r :=1.0;
end;

BEGIN
write{'n=');
readln(n);
GetTime(orel,minutel,secundei,sutimii);
timpi:=3600*orel+60*minutel+l*secundel+0.01 *sutimii;
N 3 (n);
GetTime(cre2,minute2,secunde2,sutimi2};
timp2 :=3 6 0 0 *ore2 +6 0 *minute2 +l*secunde2 +0 .01*sutimi2;

195
writeln('timp de execuţie =',timp2-timpl:5:2) ;
readln;
END.

Rezultatele experimentului computerizat pentru n de la 50 până la 400 sunt reprezentate în tabelul şi graficul ce
urmează:

n 50 100 150 200 250 300 350 400


t (s) 0 , 00 0 , 05 0 ,1 1 0, 27 0, 55 0 ,9 3 1 ,4 9 2 ,2 0

Timpul de execuţie a procedurii


N3

mărirea numărului n

Estimarea timpului cerut de algoritm


❖ Problemă [2, pag, 1*), prob. 3)
Estimaţi numărului operaţiilor elementare Q/n) din procedura ce urmează:

p ro c e d u ra N 2( n ; i n t e g a r ) ;
v a r i , j , t : i n 'r e q e j . ; r : r e a l ;
(1) bepin
(2) f o r i : = l t o n do
(3) f o r j : = l t o n do
(4) f o r k :=1 t o 300 do
(5) r : = 1 .0 ;
end;

Rezolvare:
05= 1 ;
04=0+0+300-1+300+1=601;
03=O+O+ir 04+n+l=6Oln+n+l=6O2n+l ;
02=O+O+n-03+n+l= (602n2+n) +n+l=602n2+2n+l;
Qi=02+l=6O2n2+2n+2 .
Prinurmare, numărul de operaţii elementare
Q(n)=602n2+2n+2,
iartimpul cerut de procedura N2
T ( n ) = [ 602n2+2n+2)A .

196
2.5.5. Tehnici de elaborare a algoritmilor

Planificare tematică orientativă


Număr
Tema
de ore
Tehnici de elaborare a algoritmilor
Iterativitate sau recursivitate 1
Metoda trierii 1
Tehnica Greedy 1
Metoda reluării 1
Metoda desparte şi stăpâneşte 1
Metoda ramifică şi mărgineşte. Aplicaţiile metodei ramifică şi 2
mărgineşte
Algoritmi exacţi şi algoritmi euristici 1
Evaluarea sumativă 1

Total 9

Predare-învăţare 8 ore
Evaluare 1 oră

Obiective:
Iterativitate sau recurshitate
După studierea temei, elevii vor fi capabili:
- să definească domeniile de aplicare a recursiei şi a iteraţiei;
- să evidenţieze avantajele şi neajunsurile recursiei în raport cu iteraţia;
- să estimeze complexitatea programelor recursive şi a programelor iterative;
- să transcrie programele recursive în programele iterative şi invers;
- să cunoască care este diferenţa dintre recursia directă şi recursia indirectă;
- să cunoască ce condiţii trebuie respectate pentru ca definiţia unui algoritm recursiv să fie
corectă;
- să cunoască care este diferenţa dintre definiţiile recursive consistente şi definiţiile recursive
inconsistente.
Metoda trierii. Tehnica Greedy. Metoda reluării (tehnica backtracking). Metoda desparte şi
stăpâneşte (tehnica divide et impera)
După studierea temei, elevii vor fi capabili:
- să explice structura generală a algoritmilor bazaţi pe metoda trierii;
- să cunoască avantajele şi dezavantajele algoritmilor bazaţi pe metoda trierii;
- să explice structura generală a algoritmilor bazaţi pe metoda Greedy;
- să cunoască avantajele şi dezavantajele algoritmilor bazaţi pe tehnica Greedy;
- să explice structura generală a algoritmilor bazaţi pe metoda reluării;
- să explice schema de calcul a algoritmilor bazaţi pe metoda desparte şi stăpâneşte;
- să cunoască avantajele şi dezavantajele metodei desparte şi stăpâneşte;
- să elaboreze programele care realizează metodele trierii, reluării, desparte şi stăpâneşte;
- să estimeze mărimea memoriei şi timpul necesar execuţiei programelor ce realizează
metodele în studiu.

197
Metoda ramifică şi mărgineşte (tehnica branch and bound)
După studierea temei, elevii vor fi capabili:
- să cunoască modul de reprezentare a soluţiei unei probleme în metoda ramifică şi
mărgineşte;
- să estimeze mărimea memoriei şi timpul necesar execuţiei programelor ce realizează metoda
ramifică şi mărgineşte;
- să evidenţieze avantajele şi neajunsurile metodei în studiu;
- să cunoască destinaţia funcţiei de cost şi modul de definiţie a acestei funcţie;
- să explice schema de calcul a metodei ramifică şi mărgineşte.
Metode euristice
După studierea temei, elevii vor fi capabili:
- să cunoască proprietăţile algoritmilor euristici;
- să estimeze mărimea memoriei şi timpul necesar execuţiei programelor în studiu;
- să cunoască diferenţa dintre algoritmii exacţi şi algoritmii euristici.

Elaborarea algoritmului nou pentru rezolvarea unei clase de probleme a constituit mult timp o
formă de manifestare a inteligenţei, punându-se în evidenţă caracterul de creativitate, de artă chiar a
acestei activităţi. Reuşitei standardizării reprezentării algoritmilor i s-a alăturat dorinţa de
standardizare a elaborării algoritmilor. Cu toate succesele obţinute în acest sens, activitatea de
elaborare a algoritmilor beneficiază încă de o doză substanţială de libertate de exprimare a
experienţei şi creativităţii.
In multe situaţii, când suntem puşi în faţa unei probleme pentru care trebuie sa elaborăm un
algoritm de rezolvare a ei, de multe ori suntem în situaţia ?ă “nu ştim cum să începem” [7].
Conform iui Horowitz şi Sahni (Fundamenials o f computer algorithms, Springcr Verlag. 1978) ,
“actul de creare a unui algoritm este o artă, el nu va f i niciodată complet automatizat “. Cu alte
cuvinte, nu va exista niciodată un algoritm pentru scrierea algoritmilor!
Arta de a elabora algoritmi pentru diverse probleme ce se cer a fi rezolvate, se bazează pe
experienţa acumulată anterior prin elaborarea altor algoritmi în rezolvarea unor probleme
asemănătoare.
Ca în orice altă activitate, există totuşi câteva principii care ne pot ajuta în asemenea situaţii.
Aceste principii (metode) generale, dacă sunt bine însuşite, ne pot ajuta în nenumărate situaţii în
care avem de rezolvat o problema, ca să elaborăm algoritmul de rezolvare a acelei probleme. Aceste
metode sunt din ce în ce mai mult în atenţia celor care elaborează probleme cu ajutorul
calculatorului. Sunt bine cunoscute metodele generale de elaborare a algoritmilor ca: metoda
Greedy, metoda Backtracking, metoda Programării dinamice, metoda Branch and Bound, metoda
Divide et impera, etc.
Unele din aceste metode sunt atât de generale încât mulţi le folosesc frecvent ca reguli
elementare de gândire (fără să cunoască fundamentarea lor teoretică ci bazându-se numai pe
intuiţie).
Majoritatea programatorilor care au depăşit faza de iniţiere în programare şi au auzit de existenta
acestor metode generale de elaborare a algoritmilor sau “tehnici de programare” le-au privit cu un
optimism exagerat crezând că ele îi vor scăpa de chinurile elaborării algoritmilor pentru problemele
dificile. Probabil că în scurt timp ei au fost dezamăgiţi constatând că, deşi aceste tehnici le uşurau

198
muncă, nu întotdeauna, pentru o problema dată, este uşor de identificat şi de aplicat “tehnica”
adecvată.
De altfel, dacă arta de a crea un algoritm nu va putea fi niciodată automatizată (Horowitz şi
Sahni), prin urmare, “tehnicile de programare” trebuie privite doar ca nişte metode generale de
elaborare a algoritmilor aplicabile unor clase largi de probleme, astfel încât programatorul să nu mai
fie nevoit să conceapă câte o metodă ad-hoc pentru fiecare problema din clasa respectivă, pe care o
are de rezolvat. El nu trebuie decât să identifice clasa din care face parte acea problemă şi să
particularizeze acea metodă generală de elaborare a algoritmilor, pentru problema concreta pe care
o are de rezolvat.
Analizăm în continuare unele metode de elaborare a algoritmilor.

0 Iteraţie. Recursie
Conceptul de iteraţie folosit în orice limbaj de programare structurată (fie el procedural sau
obiectual), se referă la parcurgerea unui set de elemente (de obicei tipuri dinamice de date - liste,
cozi sau, mai puţin întâlnit arbori). Aceste elemente nu pot fi parcurse printr-un ciclu FOR obişnuit,
fiind necesară implementarea unei proceduri care să parcurgă setul de elemente şi să retumeze pe
rând fiecare element.
Una din cele mai răspândite tehnici de programare este recursia [8]. Recursivitatea, folosita cu
multă eficienţa in matematică, s-a impus in programare, odată cu apariţia unor limbaje de nivel
înalt, ce permit scrierea de module ce se autoapelează. Recursivitatea e strâns legata de iteraţie, dar
dacă iteraţia e execuţia repetată a unei porţiuni de program, până la îndeplinirea unei condiţii (while,
repeat,for din PASCAL), recursivitatea presupune execuţia repetată a unui modul, insa în cursul
execuţiei lui (şi nu la sfârşit, ca in cazul iteraţiei), se verifică o condiţie a cârei nesatisfacere, implică
reluarea execuţiei modulului de la începutul său.
O definiţie recursivă e cea în care un obiect se defineşte prin el însuşi. Definiţia conţine o
condiţie de terminare, indicând modul de părăsire a definiţiei şi o parte ce precizează definirea
recursivă propriu-zisă Adăugăm că un subprogram este recursiv dacă apelul său apare când
subprogramul este activ. Pentru ca partea de început a subprogramului să nu se execute de un număr
infinit de ori este necesar ca apelul să fie legat de îndeplinirea unei anumite condiţii. Ca exemplele
algoritmilor care implementează definiţii reeursive pot fi menţionate: algoritmul lui Euclid de aflare
a c.m.m.d.c., factoriaiul, ridicarea la o putere întreagă (prin înmulţiri repetate), definirea recursivă a
unei expresii aritmetice, curbele reeursive, un mod de a privi permutările, etc.
Recursivitatea reprezintă o soluţie avantajoasă în cazul problemelor complexe care se rezolvă
prin backtracking, în acelea ale căror date sunt definite recursiv sau în problemele ale căror soluţii
pot fi definite recursiv.
Luând în considerare, comportarea dinamică a obiectelor, o repetare a aceleiaşi proceduri
înseamnă o repetare a aceleiaşi secvenţe de poziţii explicite de traiectorie, cu modificarea unuia sau
mai multor parametri.
Structurile de program necesare şi suficiente îin exprimarea recursivităţii sunt procedurile si
subrutinele ce pot fi apelate prin nume. Recursivitatea poate fi directă - un modul P conţine o
referinţa la el însuşi, sau indirecta - un modul P conţine o referinţa la un modul Q ce include o
referinţă la P.
In PASCAL, există două tipuri de parametri formali (ce apar în antetul unei proceduri sau
funcţii): valoare şi variabilă (ultimii au numele precedat de cuvântul cheie var). Apelul recursiv al
unei proceduri (funcţii) face că pentru toţi parametrii-valoare să se creeze copii locale apelului
curent (în stivă), acestea fiind referite şi asupra lor facându-se modificările în timpul execuţiei
curente a procedurii (funcţiei). Când execuţia procedurii (funcţiei) se termină, copiile sunt extrase

199
din stivă, astfel încât modificările operate asupra parametrilor-valoare nu afectează parametrii
efectivi de apel, corespunzători.
De asemenea pentru toate variabilele locale se rezervă spaţiu la fiecare apel recursiv.
în cazul parametrilor-variabilă, nu se creează copii locale, ci operarea se face direct asupra
spaţiului de memorie afectat parametrilor efectivi, de apel.
Verificarea si simularea programelor recursive se face ca în cazul programelor nerecursive,
printr-o demonstraţie formală, sau destind toate cazurile posibile. Aşa, se verifică întâi dacă toate
cazurile particulare (ce se execută când se îndeplineşte condiţia de terminare a apelului recursiv)
funcţionează corect. Se face apoi o verificare formală a procedurii (funcţiei) recursive, pentru restul
cazurilor, presupunând că toate componentele din codul procedurii (funcţiei) funcţionează corect.
Verificarea e deci inductivă. Acesta este un avantaj al programelor recursive, ce permite
demonstrarea corectitudinii lor simplu şi clar.
Exemplificare ţ81: Funcţia recursivă de calcul al factorialului:__________________________________________
fu n ctio n f a c t ( n : i n t e g e r ) : in te g e r ;
begin
i f n=l then fact:=l
e ls e fact:=n*fact(n-l)
end ;

Demonstrarea corectitudinii cuprinde doi paşi:


- pentru n= 1 valoarea 1 ce se atribuie factorialului este corecta;
- pentru ri>1, presupunând corectă valoarea calculată pentru predecesorul lui n de
fact(n-1), prin înmulţirea acesteia cu n se obţine valoarea corecta a factorialului lui n.

Orice program recursiv poate fi transfonnat în unul iterativ, dar algoritmul său poate deveni mai
complicat si mai greu de înţeles. De multe ori, soluţia unei probleme poate ti elaborată mult mai
uşor, mai clar si mai simplu de verificat, printr-un algoritm recursiv. Dar pentru implementare,
poate fi necesară transformarea algoritmului recursiv în unui nerecursiv, în situaţiile:
- soluţia problemei trebuie scrisă intr-un limbaj nerecursiv; un caz particular sunt
compilatoarele ce „traduc” un program recursiv dintr-un limbaj de nivel înalt in cod maşina
(nerecursiv);
- varianta recursivă ar duce la o viteză de execuţie şi spaţiu de memorie prea mari,
transformarea în una nerecursivă, eliminând dezavantajele.
Se va prezenta una din metodele de eliminare a recursivităţtii ce foloseşte o structură de date de
tip stiva.
în scrierea unei variantă nerecursive, trebuie parcurşi toţi paşii implicaţi în varianta recursivă,
prin tehnici nerecursive.
Recursivitatea implică folosirea a cel puţin unei stive. La fiecare apel recursiv sunt depuse în
stivă nişte date, care sunt extrase la revenirea din acel apel. E simplu dacă datele pentru un apel se
organizează într-un record, un apel însemnând introducerea în stivă a unui record, revenirea,
extragerea lui.
Se prezintă eliminarea recursivităţii pentru un program simplu, care citeşte caracterele tastate pe o linie, tipărindu-le
apoi în ordine inversă [8].

200
program var_nerecursiva;
BEGIN
{iniţializează stiva}
while not eoln do
begin
read(car);
push(car)
end;
while not stiva_goala do
begin
pop(car);
write(car)
end
END.

Examinăm unele exemple de algoritmi recursivi: algoritmi de traversare şi inversare a unei structuri [8].
Traversarea şi inversarea unei structuri înseamnă efectuarea unor operaţii oarecare asupra tuturor elementelor unei
structuri în ordine directă, respectiv în ordine inversă. Deşi mai uzuale sunt variantele iterative, caz în care inversarea
echivalează cu doua traversări directe (o salvare în stivă urmată de parcurgerea stivei), variantele recursive sunt mai
elegante şi concise. Se pot aplica structurilor de tip tablou, listă, fişier şi pot fi o soluţie pentru diverse probleme
(transformarea unui întreg dintr-o bază în alta, etc.).
într-o formă generală, algoritmii se pot scrie:
procedure traversare (element:.tip_element); {apelul iniţial}
{al procedurii se face cu primul element al structurii}
begin
prelucrare(element);
i£ element <> ultimul_din_s,tructura then
traversare(element următor)
end;
i
procedure inversare(element:tip element); {apelul iniţial}
{al procedurii, se face cu primul element al structurii}
begin
i£ element <> uitimu l_din_ structura then
inversare (eieiaent_urmator);
prelucrare(elem ent)
end; ___ _____
Este important ca parametrul formal al celor doua proceduri să fie de tip valoare, pentru a nu fi alterat de apelul
recurs iv.
Algoritmii recursivi sunt recomandaţi în special pentru problemele ale căror rezultate sunt
definite prin relaţii de recurentă: analiza sintactică a textelor, prelucrarea structurilor dinamice de
date, procesarea imaginilor etc,
0 Tehnica Greedy
Metoda Greedy se aplică următoarelor tipuri de probleme [10]:
Dintr-o mulţime A de n elemente se cere determinarea unei submulţimi B care să
îndeplinească anumite condiţii pentru a fi acceptată.

Numele metodei vine de la următorul fapt: se alege pe rând câte un element din mulţimea A şi
eventual se introduce în soluţie. Se menţionează faptul că o dată ce un element a fost ales el rămâne
în soluţia finală, iar dacă un element a fost exclus, el nu va mai putea fi reconsiderat pentru
includere în soluţie.
Metoda determină o singură soluţie.
Există două variante de rezolvare a unei probleme cu ajutorul metodei Greedy.
a) Varianta I:

201
Se pleacă de la mulţimea B vidă. Se alege din mulţimea A un element neales în paşii
precedenţi. Se cercetează dacă adăugarea la soluţia parţială B conduce la o soluţie posibilă.
In caz afirmativ se adaugă elementul respectiv la B.
b) Varianta a Il-a:
Se stabileşte de la început ordinea în care trebuie considerate elementele mulţimii A. Apoi se
ia pe rând câte un element în ordinea stabilită şi se verifică dacă prin adăugare la soluţia
parţială B anterior construită, se ajunge la o soluţie posibilă. în caz afirmativ se face
adăugarea.
Exemplu: Determinarea arborelui de acoperire de cost minim prin algoritmul lui Prim.
Algoritmul constă în următoarele:
1) Iniţial se ia arborele ce conţine un singur vârf. S-a demonstrat că nu are importanţă cu care vârf se începe; ca
urmare se ia vârful 1. Mulţimea arcelor este vidă.
2) Se alege arcul de cost minim, care are un vârf în arborele deja construit, iar celălalt vârf nu aparţine arborelui. Se
repetă în total acest pas de n-1 ori.
Pentru evitarea parcurgerii tuturor arcelor grafului la fiecare pas, se ia vectorul v având n componente definit astfel:

dacă vârful i aparţine arborelui deja construit;

dacă vârful i nu aparţine arborelui deja construit, k este vârful arborelui deja construit astfel încât

muchia ( i , k ) este de cost minim.


Iniţial v [ l ] = 0 şi v [ 2 ] = v [ 3 ] = . . . = v [n ] =1, adică iniţial arborele este A = ({ 1 } , 0) .
Prin metoda Greedy să se rezolve, de exemplu, următoarele probleme [9; 10 ]:
1. Se dau m vectori VI , V 2 , . . . Vm, care conţin n l , n 2 , . . .nm elemente, ordonate crescător după o cheie. Se
interclasează vectorii daţi, obţinându-se un vector de lungime n l+ n 2 + . . . +nm elemente, ordonate crescător. Se
ştie că interclasarea a doi vectori care conţin n u respectiv n2 elemente necesită un timp proporţional cu sania
lungimilor lor. Să se determine ordinea optimă în care trebuie efectuată interclasarea tuturor vectorilor daţi.
2. Problema rucsacului Greutatea maximă care poate fi transportată cu un rucsac este G, Dându-se n materiale,
fiecare având greutatea m şi costul C pe unitatea de greutate, să se găsească ce cantitate din fiecare material să fie
introdus în rucsac pentru ca să se obţină câştigul maxim. Se vor deosebi două cazuri:
- un material poate fi luat numai în întregime;
- se poate lua o fracţiune din material.
3. Problema activităţilor. Există o mulţime S = l, 2 , 3 , . . . , n de n activităţi care doresc să folosească o aceeaşi
resursă (de exemplu o sală de clasă). Această resursă poate fi folosită de o singură activitate la un anumit moment
de timp. Fiecare activitate i are un timp de pornire t p i şi un timp de terminare t f i ( t p i < t f i ) . Dacă este
selectată activitatea /, ea se desfăşoară pe durata [ t p . , t f i ) . Spunem că activităţile i şi j sunt compatibile dacă
duratele lor nu se intersectează. Să se selecteze o mulţime maximală de activităţi mutual compatibile.
4. Se dau n numere întregi nenule b u b 2, . . . , b n şi m numere întregi nenule alt a2, . . . , am. Să se determine o
submulţime a mulţimii B={b1, . . , b n] care să maximizeze valoarea expresiei

E = al *x] +a2 * x 2 +... + am*xm

ştiind că n > m ş i c ă x , e{Ă ,,.

5. Să se parcurgă cu ajutorul unui cal o tablă de şah, trecând exact o dată prin fiecare căsuţă a tablei.
Indicaţie: La fiecare pas se alege acea mutare care plasează calul într-o poziţie din care avem cât mai puţine şanse
de continuare.
6. Se dau şirurile Su S2, . . . , Smsortate crescător după lungime fiecare având lungimile Llt L2, , Lm. Se cere
să se interclaseze cele m şiruri cu un număr minim de operaţii. Se ştie că la interclasarea a două şiruri, numărul de
operaţii este egal cu suma elementelor celor două şiruri.
7. O întreprindere primeşte la un moment dat t= 0 spre execuţie n lucrări. Fiecare lucrare necesită acelaşi timp de
execuţie t =1. Pentru executarea lucrării a i-a, i = l , . . , n unitatea respectivă are un beneficiu Ci numai dacă

202
lucrarea a fost executată cu respectarea termenului final de livrare T±. întreprinderea nu poate executa două lucrări
în acelaşi timp. Se cere să se determine numărul de lucrări ce îl poate executa întreprinderea astfel încât beneficiul
să fie maxim.

8. O staţie de spălare a maşinilor trebuie să spele n autovehicule. Se cunoaşte timpul t i în care poate fi spălată
maşina i ( i = l , . . , n) . Să se determine ordinea de spălare a celor n maşini astfel încât timpul de staţionare al
unei maşini în staţie să fie minim.

.— -----------:—
obleme rezolvate
_________ ...

❖ Problema continuă a rucsacului [2, pag. 35, prob. 6]

O persoană are un rucsac cu care pot fi transportate unul sau mai multe obiecte, greutatea sumară a cărora nu
depăşeşte valoarea Gmaji. Pentru fiecare obiect i ( i = l , 2 , . . . , n ) s e cunoaşte greutatea şi câştigul care se
obţine în urma transportului său la destinaţie. Elaboraţi un program care să determine ce obiecte trebuie să
transporte persoana în aşa fel, încât câştigul să fie maxim. în caz de necesitate unele obiecte pot fi separate în
fragmente mai mici.______________________________________________

Notă: Precizarea din ultima propoziţie ne indică că aceasta este problema ce poartă numele de problema continuă a
rucsacului, iar în cazul când obiectele nu pot fi tăiate, avem problema discreta a rucsacului. Aceste două variante se
rezolvă în mod diferit. Varianta continuă a problemei rucsacului este rezolvată mai jos, iar cea discretă se rezolvă cu
ajutorul programării dinamice.
Rezolvare:
Algoritmul este următorul:
• se calculează, pentru fiecare obiect în parte, eficienţa de transport rezultată prin împărţirea câştigului la greutate
(de fapt, acesta reprezintă câştigul obţinut prin transportul unităţii de greutate);
• obiectele se sortează în ordine descrescătoare a eficienţei de transport si se preiau în caicul în această ordine;
• câştigul iniţial va fi 0, iar greutatea rămasă de încărcat va fi greutatea rucsacului;
• atât timp cât nu a fost completată greutatea maximă a rucsacului si nu au fost luate in considerare toate obiectele,
se procedează astfel:
• dintre obiectele neîncârcate se selectează acela cu cea mai ridicată eficienţă de transport şi avem două posibilităţi:
• acesta încape în totalitate în rucsac, deci se scade din greutatea rămasă de încărcat greutatea obiectului la câştig
se cumulează câştigul datorat transportului acestui obiect; se tipăreşte 1, în sensul că întregul obiect a fost
încărcat;
• obiectul nu încape în totalitate în rucsac, caz în care se calculează ce parte din el poate fi transportată, se
cumulează câştigul obţinut cu transportul acestei părţi din obiect, se tipăreşte procentul care s-a încărcat din
obiect, iar greutatea rămasă de încărcat devine 0.
De exemplu:
Greutatea care poate fi transportată cu ajutorul rucsacului este 3. Avem la dispoziţie 3 obiecte. Greutatea şi câştigul
pentru fiecare obiect sunt prezentate în tabel:

câştigul 2 4 6
greutatea 2 1 3
Eficienţa de transport este 1 pentru primul obiect, 4 pentru al doilea si 2 pentru al treilea.
Obiectul 2 se încarcă în întregime în rucsac, obţinând un câştig de 4 şi rămâne o capacitate de transport de două
unităţi de greutate.
Se încarcă 2/3 din obiectul 3 (care este al doilea în ordinea eficienţei de transport) pentru care se obţine câştigul 4.
Câştigul obţinut în total este 8.

program Greedy;
type vectorl=array[1. .10] of real;
vector2=array[1. .10] of integer;
var C,Gr,E:vectori;
obiect:vector2;
n,aux,i:integer;

203
Gmax,castig:real;
b:boolean;

procedure schimb (var a,b:real);


var aux:real;
begin
auX := a;
a :=b ;
b:=aux;
end; {schimb}

BEGIN
write('Greutatea maxima ce poate fi transportata: ');
readln(Gmax);
write('Numărul de obiecte: ') ;
readln(n);
writeln('Daţi câştigul si greutatea fiecărui obiect:');
for i:=l to n do
begin
write('C[*,i,']='); readln(C[i]);
write('Gr[',i,']='); readln(Gr[i]);
obiect[i]:=i;
E [i 3:=C[i]/Gr[i};
{se determina eficienta fiecărui obiect}
end;
{se ordonează obiectele descrescător după eficienta lor}
b:=true;
while b do
begin
b:=false;
for i:=l to n-l do
if E[i]<E[i+l] then begin
schimb(E [i],E[i+1]);
schimb (C [ i] ,.C [i+l] ) ;
schimb(Gr[i],Gr[i+li);
aux:=obiect[i];
obiect [i] :-=obiect [i+l] ;
obiect[i+i]:=aux;
b:=true
end;
end;
câştig:=0;
i:=l;
while (Gmax>0) and (i<=n) do
begin
if Gmax>Gr{i]then
begin
Writeln('Din obiectul ',obiect[i],' se ia ', 1);
Gmax:=Gmax-Gr[i};
câştig:=castig+C[i]
end
else
begin
writeln {'Din obiectul ', obiect[i],' se ia ',
Gmax/Gr[i]:0:2);
câştig:=castig+C[i]*Gmax/Gr[i];
Gmax:=0;
end;
inc(i);
end;
Writeln ('Câştigul maxim obtinut: castig:0:-2) ;
END.

204
|Vj Metoda reluării (backtracking)
Metoda Backtracking („a căutării cu revenire”) se aplică numai atunci când nu există o altă cale
de rezolvare a problemei propuse, deoarece timpul de execuţie este de ordin exponenţial (creşte
exponenţial odată cu dimensiunea datelor de intrare), rezolvarea problemei, chiar pe un calculator
rapid, putând dura foarte mult. Metoda utilizează structura de tip stivă şi poate fi programată şi
iterativ şi recursiv [6].
Metoda Backtracking este o metodă “constructivă”, la fel ca metoda Greedy, dar spre deosebire
de aceasta are proprietatea de a reveni asupra valorilor nealese.
Există mai multe variante ale metodei, de exemplu: elementară, recursivă, generalizată, etc.,
ideea de bază fiind totuşi aceeaşi. Fiecare programator îşi poate scrie propria sa rutina Backtracking,
pe care o poate aplica în rezolvarea problemelor ce impun folosirea acestei metode.
Backtracking se poate traduce ’’drum înapoi”, “cale întoarsă” sau “revenire”, ceea ce sugerează
faptul că orice vector soluţie este construit progresiv, începând cu prima componentă şi mergând
către ultima, cu eventuale reveniri asupra valorilor atribuite anterior (revenirea având loc cu unul
sau, daca este cazul, chiar şi cu mai mulţi paşi înapoi).
Aceasta tehnică se foloseşte în rezolvarea problemelor care îndeplinesc simultan următoarele
condiţii:
- soluţia lor poate fi pusă sub forma unui vector S=xi,x2, . . . , x.„ cu x-_e Ai, x2e
A2r • • / Xn£ Ani
- mulţimile Ai, A2, . . , An sunt mulţimi finite, iar elementele lor se considera că se află intr-o
relaţie de ordine bine stabilită.
Observaţii:
- nu pentru toate problemele, n este cunoscut de la început;
- Xi , x 2l , x n pot fi la rândul lor vectori;
- în multe probleme, mulţimile A i , A2, , Ar coincid.
La întâlnirea unei astfel de probleme, dacă nu cunoaştem această tehnică, suntem tenta,! să
generăm toate elementele produsului cartezian A.xA 2x . . . xAn pentru că apoi să facem o alegere
(metoda forţei brute), dar acest lucru ar lua prea mult timp, algoritmul neavând nici o valoare
practică.
Tehnica Backtracking are la baza un principiu foarte simplu:
- se construieşte soluţia pas cu pas: Xi, x 2, . . . , x„;
- dacă se constată că pentru o valoare aleasă, nu avem cum să ajungem la soluţie, se renunţă la
acea valoare şi se reia căutarea din punctul unde am rămas.
Concret:
A) Se alege primul element Xi, care aparţine lui Ai ;
B) Presupunând generate elementele Xi, x 2, . . . , x k, aparţinând mulţimilor A u A 2r . . . , Ak, se
alege (dacă există) x k+u primul element disponibil din mulţimea A*+1; apar două posibilităţi:
1. Nu s-a găsit un astfel de element, caz în care se reia căutarea considerând generate
elementele x i, x 2, . . . , x*-i, iar aceasta se reia de la următorul element al mulţimii Ak,
rămas netestat;
2. A fost găsit, caz în care se testează dacă acesta îndeplineşte anumite condiţii de continuare,
apărând astfel două posibilităţi:
2.1. Le îndeplineşte, caz în care se testează dacă s-a ajuns la soluţie şi apar din nou două
posibilităţi:

205
2.1.1. S-a ajuns la soluţie, se tipăreşte soluţia şi se reia algoritmul considerând generate
elementele x i, x 2, . . . , x k (se caută în continuare un alt element al mulţimii
Ak+1 rămas netestat)
2.1.2. Nu s-a ajuns la soluţie, caz în care se reia algoritmul considerând generate
elementele x i, x 2, . . . , x k*i şi se caută un prim element x k+2e A k+2.
2.2. Nu Ie îndeplineşte, caz în care se reia algoritmul considerând generate elementele
x i, x 2, . . . , x k, iar elementul x k+i se caută între elementele mulţimii A k+1 rămase
netestate.
Algoritmul se termină atunci când nu mai există nici un element xi e A i , netestat.
Observaţie: Tehnica Backtracking are ca rezultat obţinerea tuturor soluţiilor problemei. în cazul
în care se cere o singură soluţie, se poate forţa oprirea, atunci când a fost găsită (de exemplu, cu
instrucţiunea Halt).
Pentru uşurarea înţelegerii metodei, vom prezenta o rutină Pascal unică, aplicabilă oricărei
probleme, rutina care utilizează noţiunea de stivă.
Rutina va apela proceduri şi funcţii care au întotdeauna acelaşi nume şi aceeaşi parametri şi
care, din punct de vedere al metodei, realizează acelaşi lucru. Sarcina programatorului este de a
scrie explicit, pentru fiecare problemă în parte, procedurile şi funcţiile apelate de rutina
Backtracking. Evident, o astfel de abordare conduce la probleme lungi. Nimeni nu ne opreşte ca,
după înţelegerea metodei, să scriem programe scurte, specifice fiecărei probleme în parte (de
exemplu, scurtăm substanţial textul doar dacă renunţăm la utilizarea procedurilor şi funcţiilor).
Am arătat că orice soluţie se generează sub forma de vector. Vom considera că generarea
soluţiilor se face intr-o stivă. Astfel, x i e A : se va găsi pe primul nivel al stivei, x 2e h 2 pe al doilea
nivel, . . . , Xk£ Ak pe ultimul nivel (k ) al stivei. în acest fel, stiva va arăta ca mai jos:

X2___
Xi

Nivelul k+1 al stivei trebuie iniţializat (pentru a alege, în ordine, elementele mulţimii k+1)
Iniţializarea trebuie făcută cu o valoare aflată (în relaţia de ordine considerată pentru Ak*i) înaintea
tuturor valorilor posibile din mulţimea Sk. De exemplu, pentru generarea permutărilor mulţimii
{1,2, , n ] orice nivel al stivei va lua valori de la 1 la n . Iniţializarea unui nivel (oarecare) se
face cu valoarea 0. Procedura de iniţializare o vom numi I N I T şi va avea doi parametri: k (nivelul
stivei care trebuie iniţializată) şi ST (stiva).
Găsirea următorului element al mulţimii Ak (element care a fost netestat) se face cu ajutorul
procedurii SUCCESOR [ a s , s t , k ) . Parametrul a s fam succesor) este o variabilă booleană. în
situaţia în care am găsit elementul, acesta este pus în stiva şi a s ia valoarea t r u e . în caz contrar
(dacă nu a rămas nici un element netestat) a s ia valoarea f a l s e .
Odată ales un element, trebuie văzut daca acesta îndeplineşte condiţiile de continuare (altfel
spus, daca elementul este valid). Acest test se face cu ajutorul procedurii VALID ( e v , s t , k ) .
Testul dacă s-a ajuns sau nu la soluţia finală se face cu ajutorul funcţiei SOLUŢIE {k) , iar o
soluţie se tipăreşte cu ajutorul procedurii TIPAR.

206
în continuare este prezentată rutina Backtracking, aplicabilă în toate programele Backtracking-.

k:=l; init(1,st);
while k>0 do begin
repeat
succesor(as,st,k);
if as then valid(ev, st, k)
until (not as) or (as and ev);
if as then
if soluţie(k) then tipar
else begin
k:=k+l; init(k,st)
end
else k:=k-l
end;

Observaţie. Problemele rezolvate prin această metodă necesită un timp îndelungat. Din acest
motiv, este bine să utilizăm metoda numai atunci când nu avem la îndemână un algoritm mai
eficient.
Analizăm metoda reluării bazându-ne pe un exemplu:
Problema generării delegaţiilor mixte [6]
Generarea delegaţiilor este o aplicaţie în care intervin combinările unei mulţimi.
In căzui generării delegaţiilor mixte, s-a recurs, pentru simplitate, la forţarea introducerii unui număr strict pozitiv
de femei (in caz contrar mai trebuiau generate combinări ale grupului de bărbaţi si afişate aceste combinări). Oricum,
programul funcţionează şi dacă numărul de bărbaţi din delegaţie este nul.

Dintr-un grup de AIpersoane, dintre care P femei, P>0, trebuie formată o delegaţie de C persoane, dintre care
L femei, l>0. Să se precizeze toate delegaţiile care se pot forma.

Rezolvare: Vom nota femeile cu numerele de la 1 la P, şi bărbaţii de la P + l la N. Pentru rezolvarea problemei


folosim o stivă cu C nivele, urbe nivelele 1 . . . L conţin indicii femeilor din delegaţia curenta, si nivelele L + l . . . C
indicii bărbaţilor. Astfei, s fc [ij poate lua valori între si MAK, unde:
— MAX-p, pentru i< = l;
— MAX-n, pentru i> l.
— s t [ 1 ] poate lua valori între p si n.
Motivul pentru care s t [ i ] se iniţializează cu s t [ i - 1 ] este evitarea duplicării delegaţiilor, prin forţarea ordinii
strict crescătoare în fiecare delegaţie.
Limita până la care se pot majora elementele de pe un nivel este P pentru nivelele 1 . . . L (femeile) si N pentru
nivelele L + l . . . C. De aceea, la urcarea si coborârea pe nivelul L, variabila MAXdevine N, respectiv P.
Conţinutul stivei la nivelul 1: s t [1] nu se iniţializează cu s t [ 1 - 1 ] , ci cu P, pentru ca este primul dintre
bărbaţi si bărbaţii au indicii între P + l si N.
în continuare este prezentat fragmentul programului de rezolvarea problemei date conţinând aplicarea tehnicii
backtracking:

{lanseaza backtracking}
k :=1; st[1]:=0; MAX:=P;
while k>0 do
begin
st[k]:=st[k]+1;
if st[k]<=MAX then
if k=C then PrintSol
else
begin
k:=k+l;
if k<>L+l then st[k]:=st[k-1]
else

207
Propunem încă un punct de vedere la rezolvarea problemelor cu ajutorul algoritmilor cu revenire [8].
Se ştie că metoda se aplică problemelor în care soluţia se poate reprezenta sub forma unui vector x= (xtyx2,...x„)e
S=SixSiX...xS„, unde mulţimile S, sunt finite, S numindu-se spaţiul soluţiilor posibile. în particular, S, sunt identice având
acelaşi număr M de elemente. Pentru fiecare problema concreta sunt date anumite relaţii între componentele vectorului
x, numite condiţii interne.

Determinarea tuturor soluţiilor rezultat se poate face generând toate soluţiile posibile si verificând apoi care satisfac
condiţiile interne. Dar timpul de calcul ar fi foarte mare (dacă mulţimile S, ar avea numai câte 2 elemente, timpul ar fi
proporţional cu 2").
Metoda backtracking urmăreşte evitarea generării tuturor soluţiilor. Elementele vectorului x primesc valori pe rând,
lui X\ i se atribuie valori, doar dacă xipc2,...pc/.i au primit deja, valorile atribuite trebuind să verifice condiţiile de
continuitate referitoare la x\pci,...,xi. Doar apoi se trece la calculul lui xM. în cazul neîndeplinirii condiţiilor de
continuitate, se alege următoarea valoare posibilă pentru x„ dacă S, a fost epuizat, se micşorează i, încercând o altă
alegere pentru xM.
prooedure backtracking(i :integer);
{gaseste valoarea lui xi}
var posibilitate:integer; {pentru toate valorile)
îposibile ale lui xi}
bagin
for posibilitate;“ ' fco M do
begin
if acceptabila then
begin
inregisteaze__pos tal iitatea;
if i < n then backtracking(i+1)
else afiseaza__solutia:
sterge_inregistrarea
end
end
end;

Poate fi spus că metoda backtracking se aplică algoritmilor pentru rezolvarea următoarelor tipuri de probleme:

Fiind date n mulţimi ,S2, , S-, fiecare având un număr n r s i de elemente; se cere găsirea
elementelor vectorului X = ( x 1, x 2, ■. ■, x n) 6 S=SixS2x...S„, astfel încât să fie îndeplinită o anumită
relaţie <p{xu x2, . . . , x n) între elementele sale.

Relaţia <p(x1(x 2, . . . , x n) se numeşte relaţie internă, mulţimea S=SixS2x...S„ se numeşte spaţiul soluţiilor
posibile, iar vectorul X se numeşte soluţia rezultat.
Neîndeplinirea condiţiei cp exprimă faptul că oricum am alege x*t i , x*+2/ . .. ,x„ nu se ajunge la soluţia rezultat.
In caz de neîndeplinire a condiţiei cp'(xi, x 2, . . . , x k) , se alege o nouă valoare pentru x ke Sk şi se reia verificarea
condiţiei cp. Dacă mulţimea de valori xc s-a epuizat, se revine la alegerea altei valori pentru x*_! ş.a.m.d. Această
micşorare a lui k dă numele metodei, ilustrând faptul că atunci când nu se poate avansa se urmăreşte înapoi secvenţa
curentă din soluţia posibilă. între condiţia internă şi cea de continuare există o strânsă legătură. Stabilirea optimă a
condiţiilor de continuare reduce mult numărul de calcule.
Exemplu: Problema damelor de şah

Se cere găsirea tuturor soluţiilor de aşezare pe tabla de şah de n linii şi n coloane a n dame, astfel încât ele să
nu se atace. Se consideră că ele se atacă dacă sunt pe aceeaşi linie, coloană sau diagonală.

208
întrucât pe o linie se găseşte o singură damă, soluţia se prezintă sub formă de v e c t o r x = (x t , x 2, , x „ ),
unde Xi reprezintă coloana pe care se află dama în linia i.
Condiţiile de continuare sunt:
a) două dame nu se pot afla pe aceeaşi coloană, adică: X [ i ] <>X [ j ] pentru i o j ;
b) două dame nu se pot afla pe aceeaşi diagonală, adică: | k - i i <> i X[ k] - X [ j ] | pentru i = l , 2 , . . . , k - \ .
Problema damelor de şah cu rezolvare se reprezintă mai jos.
Pe metoda reluării se bazează şi rezolvarea unor probleme clasice ca: „opt regine”, a „relaţiilor stabile”, colorarea
unei hărţi, tăierea unui fir de lungime L în părţi de lungimi date, etc.
O variantă a acestei metode este cea în care, pentru un x, - vector soluţie , x,+i poate fi ales dintr-un număr M de
posibilităţi:
procedure b a c k l ( i : p o s i b i l i t a t e ) ;
begin
if a c c e p t a b i l a then
begin
În re g is tre a z ă ;
if s o l u t i e _ i n c o m p l e t a then
for k : = l to M do p o s i b i l i t a t e _ k )
else t i p a r e s t e _ s o l u t i a ;
s te rg e _ in re g is tra re a
end
end;

Această variantă se foloseşte la rezolvarea problemelor: „săritura calului”, ieşirea dint-un labirint, etc. Se pretează
atunci când pasul iniţial este definit şi/sau numărul de paşi ai soluţiei nu este cunoscut.
în continuare sunt reprezentate probleme tipice rezolvabile prin tehnica Backtracking [6,10]:

1. Să se genereze combinări de n luate câte k ^recursiv).

2. Să se genereze aranjamente de n luate câte k (n.fCcursivX

3. Fiind dată o haită cu n ţări, se cer toate soluţiile v c: icra; • a acesteia, astfel încât două ţări cu frontiera comună -. ' e
colorate diferit.

4. Se dă o sumă s şi n tipuri de monede având vaioa i 1,<îi ,...,a i(lei. Se cer toate modalităţile de p ir': j sumei x
utilizând aceste monede.

5. Se dă o sumă s şi n tipuri de monede având valori a ] , a 2, . . . , a n lei din fiecare tip putând dispune de numai
k , , k 2, . . . , k n monede. Se cere modalitatea de plată minimală (din punct de vedere al numărului de monede) a sumei s
utilizând aceste monede.

6. Orice număr natural se poate scrie ca o sumă de termeni, fiecare termen fiind un număr natural diferit de zero.
Exemplu: 4=3+1 =2+2=2+1+1=1+1 + 1+1.

Notăm cu l\n ) numărul de modalităţi distincte în care se poate scrie n ca sumă de numere naturale strict pozitive. Pentru
n=4, T(n)=A. Realizaţi un program care să calculeze pentru un n dat ( n < 50) pe T(n).

7. Un grup de n persoane sunt aşezate pe un rând de scaune. între oricare doi vecini izbucnesc conflicte de interese
astfel încât aceştia se reaşează în rând, dar între oricare doi vecini foşti trebuie să existe una sau cel mult două persoane.
Să se realizeze un program care să afişeze toate variantele de reaşezare posibile.

8. Se dă un număr natural par n. Să se determine toate şirurile de n paranteze care se închid corect. Exemplu: N=6 ((())),
(00X000.0(0), (0)0-
9. Dintr-un grup de n persoane, dintre care p femei, trebuie formată o delegaţie de k persoane, din care m femei. Să se
precizeze toate delegaţiile care se pot forma.

10. Se dau n persoane şi acelaşi număr de apartamente. Fiecare persoană îşi indică opţiunea pentru fiecare apartament.
Se cere să se repartizeze apartamentele astfel încât gradul de satisfacere a dorinţelor să fie maxim.

209
11. Să se genereze toate posibilităţile de grupare a n ţări în m grupe la un campionat de fotbal.

12. Configuraţia unui teren este specificată printr-un caroiaj gen tablă de şah de dimensiune «, fiecare careu având o
anumită cotă (înălţime). într-un careu precizat al terenului se plasează o minge. Presupunând că mingea se poate deplasa
într-unul din cele maximum 8 careuri vecine dacă acesta are o cotă strict mai mică, să se genereze toate traseele pe care
le poate urma mingea pentru a părăsi terenul.

13. Se dă o matrice pătratică de dimensiuni n x n. Să se găsească drumul de cost minim de parcurgere a matricii din
colţul din stânga-sus până în colţul din dreapta-jos. Costul unui drum este egal cu suma elementelor căsuţelor prin care
a trecut. Deplasarea se poate face numai pe verticală sau pe orizontală.

14. Să se scrie un program recursiv pentru a determina toate modalităţile de descompunere a unui număr în sumă de k
numere naturale strict pozitive.

15. O fotografie alb-negru este prezentată sub forma unei matrice binare. Ea înfăţişează unul sau mai multe obiecte.
Porţiunile corespunzătoare unui obiect au valoarea 1. Se cere să se determine dacă fotografia reprezintă unul sau mai
multe obiecte. Două puncte fac parte din acelaşi obiect dacă ele sunt vecine pe verticală, orizontală sau pe diagonală.

16. Se dă o matrice binară. Valorile 1 delimitează o suprafaţă închisă în cadrul matricei (elementele aparţinând acestei
suprafeţe sunt marcate cu 0). Se dau, de asemenea, coordonatele x şi y ale unui punct din matrice. Să se coloreze
suprafaţa din care face parte punctul respectiv.

17. Colorarea grafurilor. Fiind dat un graf neorientat G ~(X, L) unde X este mulţimea formată din n noduri, iar L este
mulţimea muchiilor şi un număr de m culori; se cere să se determine toate colorările posibile ale nodurilor grafului
folosind cele m culori, astfel încât oricare două noduri adiacente să fie colorate în mod diferit.

18. Problema ciclului hamiltonian. Se dă un graf conex neorientat G =(X, L) prin matricea costurilor pozitive. Se cere
să se determine ciclul hamiltonian de cost minim (ciclul hamiltonian este un ciclu care trece prin toate nodurile).

19. Fiind dată o matrice A de n x n elemente numere naturale, să se determine cea mai mică sumă de n elemente luate
din linii diferite şi coloane diferite.

20. Fiind date o tablă de şah de dimensiune n x n pătrate şi un cal piasat în pătratul din stânga sus al tablei, să se
aPşeze toate posibilităţile de mutare a calului astfel încât să treacă o singură dată prin fiecare pătrat al tablei.

21. Un labirint este codificat printr-o matrice de n x m elemente ale cărui culoare sunt reprezentate prin elemente
egale cu 1, situate în poziţii consecutive pe o aceeaşi linie sau coloană, celelalte elemente fiind 0. O persoană se găseşte
în poziţia (/, j) din interiorul labirintului. Se cere afişarea tuturor traseelor de ieşire din labirint care nu trec de mai multe
ori prin acelaşi loc.

22. Se consideră o mulţime formată din n elemente numere întregi. Să se genereze toate submulţimile acestei mulţimi
având proprietatea că suma elementelor lor este egală cu S.

23. Se dau două mulţimi de numere întregi A şi B. Să se genereze toate funcţiile f : A —> B ,

Problema colorării drapelelor [6]


Colorarea drapelelor se face cu un set fixat de date (numărul de culori), programul având mai mult un rol
demonstrativ. Se poate înlocui setul fixat de 6 culori cu un tablou format din culori alese de utilizator - cu un efort de
programare minim.
Colorarea drapelelor este o problema derivată din cea a generării aranjamentelor, punând anumite condiţii asupra
soluţiilor rezultate.

Avem la dispoziţie 6 culori: alb, galben, roşu, verde, albastru si negru. Să se precizeze toate drapelele
tricolore care se pot proiecta, ştiind că trebuie respectate următoarele reguli: 1) orice drapel are culoarea din
mijloc galben sau alb; 2) cele trei culori de pe drapel sunt distincte.
Exemple: „alb galben roşu”, „roşu alb galben”______________________________

Rezolvare. Folosim o stiva cu 3 nivele, reprezentând cele trei culori de pe drapel si codificam culorile prin numere:
1 - alb; 2 - galben; 3 - roşu; 4 - verde; 5 - albastru; 6 - negru. Folosim un vector auxiliar f o l de tip boolean:
f o l [i]-TRUE, dacă culoarea i a fost folosita în drapel deja; FALSE, dacă nu a fost folosita.

210
Condiţiile care trebuie îndeplinite pentru aşezarea unei anumite culori c pe un nivel al stivei sunt:
f o l [ c] =FALSE, adică să nu fi folosit deja culoarea respectivă în drapel. Dacă nivelul stivei este 2 (adică culoarea
din mijloc), atunci culoarea trebuie sa fie 2 sau 1 (galben sau alb).

❖ Problema damelor de şah [5, pag. 178]


Problema constă în a aşeza n dame pe o tablă de şah nan, astfel încât damele să nu se atace. O soluţie pentru n = 5
este dată în figura următoare.

211
Vom aşeza, pe rând, câte o damă pe fiecare coloană k, dama de pe coloana k fiind aşezată pe linia x [ k ] . Astfel,
damele nu se vor ataca pe verticală. Mai rămâne ca ele să nu se atace pe orizontală şi pe diagonală. Este de ajuns ca
dama k să nu se atace, astfel, cu nici una din damele dinaintea sa, deci cu damele i , cu i = l , . . . , k - l .
Condiţiile de continuare sunt, deci:

x [ i ] ^ x[k] , V i=l,..., k - l (neatac pe linii (orizontală)) şi


|x[i]-x[k] l ^ k - l , V i=l,..., k - l (neatac pe diagonală).
Rezolvare:________ _____________________________________________________________________________
program ProblemaDamelor;{backtrack}
c o n s t max=1 0 ;
ty p e vector=array[ 1 ..max] of integer;
v a r NrSol : integer;

p ro o e d u re Scrie(n:integer;x:vector);
v a r i:integer;
b e g in
inc(NrSol);
writeln('Soluţia nr.',NrSol);
f o r i : = 1 t o n do
writeln('Dama de pe coloana ',i,' e pe linia ’,x[i]);
writeln;readln
end; {Scrie}

f u n c t i o n PotContinua{x:vector;k:integer):boolean;
v a r atac : boolean;i: integer;
b e g in
atac:=false;i:=1 ;
w h ile
( i<k) and (not atac) do
if (x[i]=x[k] ) or (abs (x [i] -x [k] )“k-.i) then atac:=true
elsa i :=i+1 ;
PotContinua;=not atac
end; {PotContinua} |

procedare Dama(i,n:integer;var x:vector);


var k:integer;
b e g in
k := 1 ;
w h ile k<=n do
b e g in
x[i]:=k;
i f PotContinua(x,i) th e n i f i=n th e n Scrie(n,x)
e l s e Dama(i+1,n,x);
k :=k+l
end
e n d ; {Dama}

v a r AsezareDame: vector;NrDame: integer;


BEGIN
writeln('Problema damelor;');writeln;
writeln; NrSol:=0;NrDame:=5;Dama(1,NrDame,AsezareDame)
END.

❖ Problema Labirint [2, pag. 42, prob. 10|

Se consideră planul unui labirint desenat pe o foaie de hârtie liniată în pătrăţele. Pătrăţelele haşurate reprezintă
obstacolele, iar cele nehaşurate - camerele şi coridoarele labirintului. în memoria calculatorului planul
labirintului este redat prin matricea A =||âl/Jnx m, l ^ n , m<30, unde a i:j= l, dacă pătrăţelul (i , j ) este
haşurat şi a , ; =0 în caz contrar. Călătorul se poate deplasa dintr-un pătrăţel nehaşurat în alt pătrăţel nehaşurat
numai atunci când ele au o latură comună. Elaboraţi un program care găseşte, dacă există un drum din pătrăţelul
B în pătrăţelul C.

212
Rezolvare:
Din fişierul labirint.in se vor citi numerele n, m şi elementele tabloului A, de la tastatură se dau coordonatele
punctelor B şi C. Soluţiile problemei se vor scrie în fişierul labirint.out sub formă de tablouri bidimensionale în
care sunt indicaţi paşii călătorului, dacă nu există soluţii în fişier se scrie mesajul respectiv.
De exemplu, pentru coordonatele (6,4) şi (1,6) ale punctelor B şi C corespunzător şi următorul conţinut al
fişierului labirint.in:
8 10
1 0 1 0 0 0 0 0 0 1
1 0 1 0 1 1 0 1 • 0 1
1 0 1 0 1 0 0 1 0 1
1 0 0 0 0 0 1 1 0 1
1 0 1 0 1 1 1 1 0 1
1 0 1 0 0 0 0 0 0 1
1 0 1 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1 1 1

fişierul labirint.out va conţine:


Soluţia 1
0 0 0 6 7 8 0 0 0 0
0 0 0 5 0 0 0 0 0 0
0 0 0 4 0 0 0 0 0 0
0 0 0 3 0 0 0 0 0 0
0 0 0 2 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
Soluţia 2
0 0 0 0 0 10 9 0 0 0
0 0 0 0 0 0 8 0 0 0
0 0 0 0 0 6 "7 0 0 0
0 0 0 3 4 5 A.1
V 0 0 0
C 0 0 o 0 0 0 0 0 0
0 0 vj 0 0 0 o 0 o
0 0 0 0 0 0 0 o n 0
0 0 0 A 0 0 0 f 0
Soluţia 3
0 0 0 22 23 24 13 12 11 0
0 0 0 21 0 14 0 0 10 0
0 0 0 20 0 16 15 0 9 0
0 0 0 19 18 17 0 0 8 0
0 0 0 0 0 0 0 0 7 0
0 0 0 1 2 3 4 5 6 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
Soluţia 4
0 0 0 0 0 14 13 12 11 0
0 0 0 0 0 0 0 0 10 0
0 0 0 0 0 0 0 0 9 0
0 0 0 0 0 0 0 0 8 0
0 0 0 0 0 0 0 0 7 0
0 0 0 1 2 3 4 5 6 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

program Reluare;
type matrice=array [ 1 ..30,1..30] o f byte;
sir=array [1..4] o f integer;
c o n s t sirl:sir=(-1 ,0 ,1 ,0 );
sir2 :sir= (0 ,1 , 0 ,-1 );{valorile din şirurile sirl şi
sir2 se utilizează pentru
deplasarea in direcţiile
sus, jos, stanga, dreapta}

213
var A,Soluţie:matrice; {in tabloul Soluţie se va indica 0 in
poziţiile prin care nu trece calatorul
sau numărul pasului pe care il face}
i, j,iB, jB, iC, jC,m,n,k:byte; F,FI:text;

procedure ScrieFis; {scrie in fişier soluţia găsită}


var i,j:integer;
begin
inc(k.) ;writeln (f1, 'Soluţia ', k) ;
for i:=l to n do
begin
for j :=1 to m do write(FI,Soluţie[i, j]:3);
writeln(FI)
end;
end; {ScrieFis}

procedure Reluare(i,j,p:byte); {procedura recursiva bazata


pe metoda reluării}
var il,j1:integer; L:byte;
begin
for L:=l to 4 do
begin il:=i+sirl[LJ; j1:=j+sir2[L];
if {il in [1..n]) and (jl in [l..m])
then
if (A[il,j1]=0) and (Soluţie[il,j1]=0)
then begin
Soluţie[i1,j1]:=p;
if (il=iC) and (j1=jC)
then ScrieFis
else Reluare(il,j1,p+1};
Soluţie[il,j1]:=0
end
end
end; {Reluare}

BEGIN
assign(?,'labirint.in'); reset(F);
assign(FI,'labirint.out'); rewrite(FI);
readln(F,n,m);
for i :=1 to n do
begin for j:=l to m do read (F,A[i,j]);
readln(F);
end;
close(F);
for i:=l to n do for j:=l to m do Soluţie[i,j]:=0;
{iniţializarea tabloului Soluţie}
writeln(’daţi coordonatele punctului B :');
readln(iB,jB);
writeln('daţi coordonatele punctului C:');
readln(iC,jC);
SolutiefiB,jB]:=1; {in matricea Soluţie punctul B ya fi
numerotat cu 1 - din acest punct se
face primul pas}
k:=0; {k-numarul de soluţii}
Reluare{IB,jB,2);
if k=0 then write(fl,'N-are soluţii');
close(Fl)
END.

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