Sunteți pe pagina 1din 9

Proiect didactic

Data:
Clasa:
Disciplina: Informatica.
Profesorul: Svetlana Pârvan
Tipul lecţiei: Lecţia de comunicare / însuşire de noi cunoştinţe.
Durata: 90 min.
Unitatea de învăţare: Structuri dinamice de date.
Lecţia:Arbori binari.
Competențe specifice:
 Aplicarea metodelor de algoritmizare, de formalizare, de analiză, de sinteză şi de
programare pentru soluţionarea problemelor legate de prelucrarea automatizată a
informaţiei.
 Translarea algoritmilor frecvent utilizaţi într-un limbaj de programare de nivel înalt.
Subcompetențe:
 Identifiarea problemelor, a căror soluţionare necesită utilizarea structurilor dinamice de
date.
 Utilizarea structurilor dinamice de date pentru soluţionarea problemelor întîlnite în
activitatea cotidiană.
 Implementarea şi gestionarea structurilor dinamice de date frecvent utilizate.
 Gestionarea memoriei interne a calculatorului.
Obiectivele operaţionale:
O1 – crearea arborilor binari;
O2 – parcurgerea arborilorbinari;
O3– modifiarea structuriiarborilor binari.
Metode şi procedee didactice:
 Conversaţia euristică;  Clustering ;
 Explicaţia;  Exerciţiul.
Mijloace de învăţare:
 Conspect de reper;  Tabla, creta;
 Caietul;  Calculatorul.
Bibliografie:
1. Gremalschi Anatol, Mocanu Iurie, Spinei Ion, Manual IX-XI, Editura Ştiinţa, Chişinău, 2000.
2. Gr. Vasilache, L. Gremalschi, Ghe. Gîrneţ, Curriculumul disciplinei,Grupul Editorial litera,
Chişinău, 2000.
Demersul didactic:
Strategia didactică
Secvențele lecției/
Tehnologia realizării şi conţinuturi vizate Metode și Forme de Resurse
Dozarea timpului
procedee organizare procedurale
Stabilesc climatul adecvat pentru desfăşurarea activităţii didactice Conversație Frontal Registrul;
Momentul
Vericarea se realizează cu ajutorul aplicației MyTest, prin Test de evaluare Individual Calculatorul –
organizatoric /
intermediul căreia elevii obțin prin rețea un test pe care îl rezolvă aplicația
3 min
MyTest;
Evocare Algoritmul utilizării Conversație; Frontal Tabla, creta.
12 min a) Se formulează subiectul (relevant şi actual pentru studenţi) şi se Metoda
înscrie în mijlocul clustering-ului presupus. Clustering
b) Se acumulează şi se înscriu informaţiile lansate de studenţi, în
variante cît mai laconice: cuvinte sau îmbinări de cuvinte.
c) Pe măsură ce se înscriu cuvintele, se trasează linii între ideile care se
leagă în vreun fel.
d) Se înscriu toate formulele verbale, pînă la epuizarea ideilor sau pînă la
expirarea timpului.
e) Se examinează alte posibilităţi de marcare a conexiunilor între idei,
noţiuni, termeni.
Realizarea sensului 1. Terminologia. Conversație; Frontal; Tabla, creta.
43 min Descriere terminologiei utilizate în structura dinamică arbori binari. Lucrul cu Manualul
Elevii lucrează în perechi selectînd din manual cuvintele cheie ce se manualul în perech
referă la structura dinamică arbori binari.
2. crearea arborilor binari; Calculatorul –
Utilizînd aplicația NetsupportSchool, profesorul, demonstrează elevilor Demonstrați, Individual aplicația
metoda iterativă și cea recursivă de creare și afișare a structurii dinamice Explicația NetsupportScho
arbori binari. ol, caiete
3. Parcurgerea arborilor binari:
Este realizată de către elevi prin metoda Mosaic:
Clasa este divizată în trei grupe egale conform lunilor de naștere:
(I grupă – ianuarie-aprilie; II grupă – mai –august; III grupă -spetembrie- Metoda Suportul
decembrie). MOSAIC Lucrul în grup teoretic, caiete
Grupe vor analiza suportul teoretic propus,și vor elabora procedurile de Coli de hîîrtie
parcurgere a arborilor binari:
I grupă – preordine;
II grupă – postordine;
III grupă – inordine;
Reflecţie Este propus un program pentru a efectua modificări în el,pentru Exercițiul individual Calculatorul
15 min eliminarea erorilor. Mediul TP
Extindere Este propusă problemă pentru rezolvare – problema 9 pag. 66. Exercițiul individual Calculatorul
15 min Mediul TP
Tema pentru acasă p. 2.8, 2.9 problema:7, pag.61
2 min
Conspect de reper:Arbori binari.
Dacă ne-am uitat la un arbore genealogic, sau la o ierarhie de echipă într-o firmă, am
observat informațiile aranjate într-un arbore. Un arbore este compus dintr-o colecţie de noduri, unde
fiecare nod are asociată o anumită informaţie şi o colecţie de copii (descendenți).
Copiii unui nod sunt acele noduri care urmează imediat sub nodul însăşi.
Părintele unui nod este acel nod care se află imediat deasupra.
Rădăcina unui arbore este acel nod unic, care nu are nici unpărinte.
Exemplu de ierarhie de echipă într-o firmă:

Manager

Manager Manager Manager


de vînzăr de personal de oficiu

Contabil secretara Lucrator


Toți arborii au următoarele proprietăți :
 Există o singură rădăcină
 Toate nodurile, cu excepția rădăcinii, au exact un singur părinte
 Nu există cicluri

Arbori Binari
Arborii binari sunt un tip aparte de arbori, în care fiecare nod are maxim 2 copii. Pentru un nod
dat, într-un arbore binar, vom avea copilul din stânga, şi copilul din dreapta.
Exemplu de arbori binari:
Definiţie: Un arbore binar este o mulţime finită de noduri care este fie vidă, fie reprezintă un
arbore ordonat în care fiecare nod are cel multdoidescendenţi (stângşidrept).
Un nod fără descendenţi se numeşte nod terminal sau frunză. Un arbore binar în care fiecare nod
care nu este terminal are exact doi descendenţi se numeşte arbore binar complet.
Un arbore binarcompletcare are nnoduriterminale, toate situate peacelaşinivel, are în total 2n-
1noduri.
 Reprezentareastandardpresupunememorareapointerilorpentrupărinte,
pentrudescendentulstângşidescendentuldrept al fiecărui nod din arbore. Dacărădăcină(T) =
NIL (sau NULL) ⇒arboreleeste vid. Rădăcină se aflăpenivelul 0 al arborelui.
 Reprezentareaprin vector de TAŢI şi eventual prin vector de DESCENDENŢI. Vectorul
TATĂprecizeazăpentrufiecarevârfinodul TATĂ[i], care reprezintăpărintelesăuîn arbore
(rădăcinasubarborelui de care aparţine). Vectorul DESCENDENŢI indicăprinvaloarea -1 sau
+1 dacăvârfuliestedescendentulstângsaudrept al părinteluisău TATĂ[i].
PentrurădăcinaarboreluiTATĂ[rădăcină]=0 şi DESCENDENŢI[rădăcină]=0.
Arbori cu rădăcinăcu numărnelimitat de ramuri
Schema reprezentăriiarborilorbinaripoate fi extinsălaoriceclasădearboriîn care numărul de
descendenţiaifiecărui nod nu depăşeşte o constantăk(din motive de alocareşireprezentare).
Dacănumăruldescendenţilorestemărginit de o constantămareşimajoritateanodurilor au un număr
mic de descendenţi se vairosimultămemorie.
Reprezentarea descendent-stâng, frate-drept- schemă"inteligentă" pentrufolosireaarborilorbinari la
reprezentareaarborilor cu numărarbitrar de descendenţi.
- Utilizeazăun spaţiu de O(n) pentruorice arbore cu rădăcinăşi cu nnoduri.
- Fiecare nod conţineun pointer sprepărinte p.
- Nu existădecâtdoipointerispredescendenţi: fiu-stâng[x] referăcelmai din stânga descendent
al nodului x şifrate-drepţ[x] referăfratelelui x, celmaiapropiatspredreapta.
Dacănodul xnu are descendenţiatuncifiu-stâng[x] = NIL, iardacănodulxestecelmai din dreapta
descendent al părinteluisăuatuncifrate-drept[x] = NIL.
Parcurgereaarborilorbinari:
Exercitiul 1.
Fie arborele binar din figura următoare. Realizați parcurgerea în preordine, inordie și postordine a
acestuia.

2 3

4 5

6 7

ProgramulArbRecilustreazaceletreimoduri de parcurgereprezentate (procedurileRSD, SRD, SDR)


precumsigenerareaunui arbore (proceduraGener_Arb), aflareaînaltimiiunui arbore (proceduraInaltime)
siaflareanumarului de noduridintr-un arbore (proceduraNumarNod).
ProgramArbRec;
type
...pstruct=^struct;
...struct=record
...util:integer;
...st,dr:pstruct
end;
var
...rad,p:pstruct;
...ch:char;
...x,m:integer;

procedureGener_Arb(var p:pstruct);
begin
...write('x=');readln(x);
...if x<>0 then
...begin
......new(p);
......p^.util:=x;
......Gener_Arb(p^.st);
......Gener_Arb(p^.dr)
...end
...else
......p:=nil
end;

procedureRSD(p:pstruct);
{preordine}
begin
...if p<>nilthen
...begin
......write(p^.util:2);
......RSD(p^.st);
......RSD(p^.dr)
...end
end;

procedureSRD(p:pstruct);
{inordine}
begin
...if p<>nilthen
...begin
......SRD(p^.st);
......write(p^.util:2);
......SRD(p^.dr)
...end
end;

procedureSDR(p:pstruct);
{postordine}
begin
...if p<>nilthen
...begin
......SDR(p^.st);
......SDR(p^.dr);
......write(p^.util:2)
...end
end;

functionNumarNod(p:pstruct):byte;
begin
...if p=nilthen
......NumarNod:=0
...else
......NumarNod:=1+NumarNod(p^.st)+NumarNod(p^.dr)
end;

functionInaltime(p:pstruct):byte;
var
...ist,idr:byte;
begin
...if p=nilthen
......Inaltime:=0
...else
...begin
......ist:=Inaltime(p^.st);
......idr:=Inaltime(p^.dr);
......if ist>idrthen
.........Inaltime:=ist+1
......else
.........Inaltime:=idr+1
...end
end;

begin {program principal}


...repeat
......writeln('G.Generare arbore binar');
......writeln('1.Parcurgere in preordine (RSD)');
......writeln('2.Parcurgere in inordine (SRD)');
......writeln('3.Parcurgere in postordine(SDR)');
......writeln('4.Numar noduri arbore');
......writeln('5.Inaltime arbore');
......writeln('S.Sfirsit program');
......write('Optiuneadvs. varog:');readln(ch);
...caseupcase(ch) of
......'G':Gener_Arb(rad);
......'1':RSD(rad);
......'2':SRD(rad);
......'3':SDR(rad);
......'4':begin
.........m:=NumarNod(rad); writeln('Arborele are ',m,' noduri')
.........end;
......'5':begin
.........m:=Inaltime(rad); writeln('Arborele are inaltimea ',m)
.........end
......end;
......readln
...untilchin ['s','S']
end{ArbRec}.