2. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
Cuprins:
1. Terminologie
2. Structură generală
2.1. Obiective didactice
2.2. Conţinut
2.3. Recomandări de structurare şi predare
3. Obiecte de coţinut - detaliere
3.1. M1 Principiul stivei. Revenirea din recursivitate (1)
3.2. M2 Revenirea din recursivitate (2)
3.3. M3 Ordinea de execuţie a funcţiilor recursive
3.4. M4 Formule recursive
3.5. M5 Recursivitate indirectă
3.6. M6 Test grilă pentru evaluarea cunoştinţelor
4. Bibliografie
-2-
3. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
1. Terminologie
Butoane instructaj – – sunt amplasate în partea din dreapta-
sus a ecranului şi, atunci când sunt accesate, prezintă pas cu pas,
într-o fereastră de detaliu, instrucţiuni despre folosirea unei
aplicaţii.
Butoane start animaţie / trecere la pasul următor – – se
regăsesc în cadrul animaţiilor şi al aplicaţiilor ce conţin mai mulţi
paşi. Prin apăsarea lor se începe rularea animaţiei, respectiv se
trece la următorul pas al aplicaţiei.
Butoane de reiniţializare a animaţiei / aplicaţiei - - Prin
apăsarea lor se reiniţializează animaţia, respectiv aplicaţia.
Butoane de navigare între soluţii - - se regăsesc în cadrul
aplicaţiilor ce conţin prezentarea unor algoritmi care trebuie să
afişeze toate soluţiile unei probleme date. Prin apăsarea lor este
întreruptă animaţia, reluarea facându-se prin apăsarea butonului
start animaţie.
Texte de reper – – reprezintă simboluri grafice
prezente intr-un text care, atunci când sunt accesate, prezintă
ferestre de detaliu, în care este explicată o anumită noţiune.
Ferestre detaliu – sunt ferestre care oferă informaţii suplimentare
despre o anumită noţiune. Exemplu :
Butoane pentru închis ferestre - – sunt amplasate în
dreapta ferestrelor de detaliu iar apăsarea lor duce la închiderea
ferestrei.
-3-
4. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
2. Structura generală
În acest capitol sunt prezentate detaliat obiectivele didactice care
pot fi atinse cu ajutorul acestor lecţii. De asemenea sunt prezentate
succint conţinuturile materialului şi câteva sugestii pentru folosirea
lecţii.
2.1. Obiective didactice
Obiectiv Detaliere
Obiective de referinţă
R1 Să transpună o problemă în termeni recursivi.
R2 Să aplice algoritmii recursivi.
R3 Să analizeze modul diferit de funcţionare, prin comparaţie, a
variantelor iterativa şi recursivă.
Obiective operaţionale
OP1 să-şi însuşească modul corect de declarare şi apelare a
funcţiilor recursive;
OP2 să-şi însuşească mecanismul recursivităţii şi să identifice
condiţia de ieşire din autoapeluri;
OP3 să descopere eficienţa recursivităţii în funcţie de numărul
autoapelurilor (adâncimea autoapelurilor)
OP4 să-şi însuşească modul de funcţionare a recursivităţii indirecte;
OP5 să deducă avantajele şi dezavantajele recursivităţii pornind de
la exemplele studiate
OP6 să analizeze corect fiecare problemă şi să dezvolte gândirea
algoritmică, logică, flexibilă creatoare
OP7 să selecteze variantele corecte şi să argumenteze alegerea unei
anumite forme în realizara aplicaţiei
-4-
5. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
2.2 Conţinut
Se prezintă lista obiectelor de conţinut (notate cu M) şi
caracteristicile lor generale.
M1 – Recursivitate prin exemple - Exemplul 1
Obiective didactice OP1, OP2
Timp de predare 15 min
Tip de interacţiune cu • metode de comunicare orală :
elevii expunere, conversaţie, problematizare ;
• metode de acţiune: exerciţiul, învăţarea
prin descoperire;
• proceedee de instruire: explicatia în
etapa de comunicare; învăţarea prin
descoperire dirijată, inductivă,
experimentală;
Descriere • exemplificarea declarării şi apelării functiei
recursive
• explicarea mecanismului recursivităţii prin
utilizarea stivei
Cuvinte cheie recursivitate directă, apel, autoapel, stivă
M2 – Recursivitate prin exemple - Exemplul 2
Obiective didactice OP1,OP2
Timp de predare 15 min
Tip de interacţiune cu • metode de comunicare orală :
elevii expunere, conversaţie, algoritmizare ;
• metode de acţiune: exerciţiul, învăţarea
prin descoperire;
• proceedee de instruire: explicatia în
etapa de comunicare; învăţarea prin
descoperire dirijată, inductivă,
experimentală;
Descriere • exemplificarea declarării, apelării şi
autoapelării funcţiei recursive
• explicarea mecanismului recursivităţii
directe
Cuvinte cheie recursivitate directă, apel, autoapel
-5-
6. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
M3 – Recursivitate prin exemple - Exemplul 3
Obiective didactice OP1, OP2, OP3, OP6
Timp de predare 15 min
Tip de interacţiune cu • metode de comunicare orală :
elevii expunere, conversaţie, problematizare;
• metode de acţiune: exerciţiul, învăţarea
prin descoperire;
• proceedee de instruire: explicatia în
etapa de comunicare; învăţarea prin
descoperire dirijată, inductivă,
experimentală; conversaţia de consolidare
în etaapa de fixare a cunoştinţelor
Descriere • explicarea mecanismului recursivităţii
directe
• explicarea eficienţei algoritmului recursiv
pornind de la adâncimea recursivităţii
Cuvinte cheie recursivitate directă, apel, autoapel,
adâncimea recursivităţii
M4 – Recursivitate prin exemple - Exemplul 4
Obiective didactice OP2, OP3, OP5, OP6
Timp de predare 15 min
Tip de interacţiune cu • metode de comunicare orală :
elevii expunere, conversaţie, algoritmizare;
• metode de acţiune: exerciţiul, învăţarea
prin descoperire;
• proceedee de instruire: explicaţia în
etapa de comunicare; exemplificarea;
învăţarea prin descoperire dirijată,
inductivă, experimentală;
Descriere • transpunerea unei probleme în termeni
recursivi
• explicarea avantajelor / dezavantajelor
algoritmului recursiv
Cuvinte cheie recursivitate directă, apel, autoapel, formule
recursive
-6-
7. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
M5 – Recursivitate prin exemple - Exemplul 5
Obiective didactice OP2, OP3, OP4, OP5
Timp de predare 15 min
Tip de interacţiune cu • metode de comunicare orală :
elevii expunere, conversaţie, problematizare;
• metode de acţiune: exerciţiul, învăţarea
prin descoperire;
• proceedee de instruire: explicaţia în
etapa de comunicare; exemplificarea;
învăţarea prin descoperire dirijată,
inductivă, experimentală;
Descriere • explicarea recursivităţii indirecte
• exemplificarea declarării, apelării şi
autoapelării funcţiilor definite recursiv
indirect
Cuvinte cheie recursivitate indirectă, apel, autoapel, formule
recursive
M6 – Test grilă de evaluare a cunoştinţelor
Obiective didactice OP2, OP6, OP7
Timp de predare 12 min
Tip de interacţiune cu evaluare în formă scrisă prin intermediul
elevii calculatorului
Descriere test grilă cu itemi de tip asociere (pereche)
Cuvinte cheie funcţii recursive
-7-
8. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
2.2. Recomandări de structurare şi predare
1. Planul unităţii de învăţare Timp: 1 oră
Obiect de conţinut Timp (min)
M1 15
M3 15
M4 15
2. Planul unităţii de învăţare Timp: 1 ore
Obiect de conţinut Timp (min)
M2 15
M5 15
M6 12 min test + 8 min
comentarii
-8-
9. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
3. Obiecte de coţinut - detaliere
În continuare vom prezenta în detaliu modul de utilizare a
elementelor din ferestrele lecţiei. (navigare, elemente specifice,
funcţionarea aplicaţiilor, etc.). Subliniem că navigarea elementară
se face cu ajutorul butoanelor descrise în Cap. 1 – Terminologie, al
acestui manual. Nu ne vom referi la acestea decât spicuitiv.
3.1. Principiul stivei. Revenirea din recursivitate (1)
În acest obiect de conţinut este propus spre observaţie un exemplu
de program în care se foloseşte tehnica recursivităţii. Acesta
returnează un şir de n = 3 numere , în ordine descrescătoare. Se
doreşte în special urmărirea procesului de revenire din recursivitate.
În partea dreaptă a ecranului este făcută o analogie cu introducerea
şi extragerea bilelor dintr-un cilindru transparent. În acest cilindru
se pot introduce bile printr-un singur capăt, ordinea scoaterii lor
este inversă fată de ordinea introducerii .
Bilele care se află la un moment-dat în cilindru corespund paşilor ce
sunt executaţi în program.
În partea stângă este afişat programul sursă ce rezolvă problema
propusă. Săgeata roşie împreună cu dreptunghiul roşu marchează
linia şi instrucţiunea curentă.
Dreptunghiul marchează
instrucţiunea curentă
Săgeata marchează linia
de program curentă
-9-
10. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
3.2. Revenirea din recursivitate (2)
În acest obiect de conţinut este prezentat un program ce rezolvă o
funcţie matematică pe ramuri. Se urmăreşte, ca şi la obiectul
anterior, observarea modului de revenire din recursivitate.
Rezolvarea este particularizată pentru i = 4, valoarea de la care se
porneşte în recursivitate.
În partea dreaptă a ecranului este făcută o analogie cu umplerea
unor găletuşe cu nisip, cu observaţia că modul de umplere al
acestora (celei de mai sus i se adaugă la conţinutul care îi revine şi
conţinutul găletuşei de mai jos) este în concordanţă cu execuţia pas
cu pas a codului programului afişat în partea stângă a ecranului.
În partea stângă este afişată funcţia şi programul sursă care
întoarce rezultatul .Săgeata roşie împreună cu dreptunghiul roşu
marchează linia şi instrucţiunea curentă.
Săgeata marchează linia Dreptunghiul marchează
de program curentă instrucţiunea curentă
Programul sursă se parcurge pas cu pas, folosind butoanele de
navigare .
- 10 -
11. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
3.3. Ordinea de execuţie a funcţiilor recursive
Prin intermediul acestui obiect de conţinut se urmăreşte înţelegerea
de către utilizator a ordinii de execuţie al funcţiilor recusive.
Este dat un program şi se cere să se afle rezultatul final tipărit de
acesta. Utilizatorul trebuie să completeze cu rezultate intermediare
schema execuţiei programului şi să aleagă, după ce este completat
tot arborele de execuţie, rezultatul final tipărit la terminarea
programului.
Poziţie liberă unde
trebuie adăugată o
pereche
Schema execuţiei
programului
Pereche intermediară ce
trebuie poziţionată
Perechile de numere intermediare pentru care se execută funcţia din
program sunt poziţionate deja pe transpunerea grafică a ordinii de
execuţie a programului, mai puţin câteva. Aceste câteva perechi
trebuie poziţionate corect în schemă. Poziţionarea se face apăsând
cu mouse-ul pe una dintre acestea şi eliberând-o deasupra poziţiei
libere dorite.
Odată afişate toate perechile, va trebui ales rezultatul final. Acest
lucru se face apăsând cu mouse-ul pe una din căsuţele cu rezultate
posibile şi trăgând acea căsuţă deasupra căsuţei libere.
Căsuţa liberă Căsuţe cu rezultate
posibile
- 11 -
12. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
La fel ca şi în cazul completării perechilor de numere intermediare,
răspunsul ales de utilizator este verificat, şi corectitudinea acestuia
este semnalată prin intermediul unei mânuţe.
Semnalizarea unui Semnalizarea unui
răspuns corect răspuns greşit
3.4. Formule recursive
Acest obiect de conţinut prezintă două variante de programe pentru
rezolvarea recursivă a produsului a două numere ( fără a folosirea
înmulţirii directe ).
Odată apăsat butonul se va începe execuţia programului,
utilizatorul având posibilitatea, în orice moment, să oprească
programul din execuţie pentru a se lămuri asupra valorilor
intermediare de la acel pas.
Varianta 1 de program Tabel de detaliu
Utilizatorul poate urmări execuţia programelor şi valorile
parametrilor intermediari, precum şi lanţul de revenire din
recursivitate prin intermediul tabelelor de detaliu poziţionate în
dreapta fiecărei variante de program.
Programul este executat instrucţiune cu instrucţiune.Săgeata roşie
împreună cu dreptunghiul roşu marchează linia şi instrucţiunea
curentă.
Săgeata marchează linia Dreptunghiul marchează
de program curentă instrucţiunea curentă
- 12 -
13. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
3.5. Recursivitate indirectă
În acest obiect de conţinut este propus spre observaţie un exemplu
de program în care se foloseşte recursivitatea indirectă. Acest
program returnează rezultatele calculului a două şiruri an şi bn ,
definite recursiv, pentru a = 4, b = 9, n = 2 valori iniţiale.
Utilizatorul opate urmării pas cu pas execuţia programului, în partea
stângă a ecranului putând observa care este ordinea de execuţie a
funcţiilor, coborârea şi revenirea din recursivitate, precum şi
rezultatele intermediare şi cel final.
Rezultatul dat de
funcţia “părinte” la
momentul execuţiei
sale
Rezultatul funcţiei
ce se execută
Locul unde va fi plasat
rezultatul funcţiei
“părinte” ce urmează a
fi executată.
Funcţie “fiu” ce este se
execută în acel moment
Funcţie “părinte” ce se
execută în acel moment
Programul este executat instrucţiune cu instrucţiune.Săgeata roşie
împreună cu dreptunghiul roşu marchează linia şi instrucţiunea
curentă.
Dreptunghiul marchează
instrucţiunea curentă
Săgeata marchează linia
de program curentă
Programul sursă se parcurge pas cu pas, folosind butoanele de
navigare .
- 13 -
14. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
3.6. Test grilă pentru evaluarea cunoştinţelor
Acest modul conţine un test grilă cu răspunsuri de tip “complement
simplu”, adică doar o variantă de răspuns corectă.
Pentru a trece de la o problemă la alta poziţionaţi mouse-ul pe
numărul problemei dorite. Bifarea răspunsurilor se face prin
apăsarea cu mouse-ul pe căsuţa corespunzătoare raspunsului dorit.
Se poate reveni asupra răspunsului la oricare dintre întrebări, atâta
timp cât nu s-a răspuns la toate.
După bifarea răspunsurilor pentru fiecare problemă, în dreapta
butoanelor cu numărul problemelor vor apărea indicatori de validare
a răspunsului :
pentru răspuns corect şi pentru răspuns greşit,
iar în partea din dreapta jos a testului va fi afişat răspunsul corect
pentru fiecare întrebare în parte.
- 14 -
15. Recursivitatea prin exemple - Manualul profesorului Clasa a X-a
4. Bibliografie
• Bucur Carmen, Bucur Doina, Pintea Adrian, Salaţiu,
Cristina, Stanca Florentina, Vaida Dana; Informatica –
Culegere de probleme pentru liceu, Editura U.T. Pres, Cluj-
Napoca, 2002
• Cerchez Emanuela, Şerban Marinel; Informatica –
Manual pentru clasa a X-a, Editura Polirom, 2000
• Livovschi L., Georgescu H., Sinteza şi Analiza
algoritmilor, Editura Ştiinţifică şi Enciclopedică, Bucureşti,
1986
• Sorin Tudor; Manual de informatica-clasa a X-a, varianta
C++, Editura L&S Infomat, 2000
• Knuth D. E; Tratat de programarea calculatoarelor
Algoritmi fundamentali, Editura Tehnică, 1974
- 15 -