Principiile didactice reprezinta normele generale care orienteaza onceperea, organizarea si desfasurarea procesului de predare/ învatare. Principiile didactice au: caracter logic, caracter obiectiv, caracter lgoritmic, caracter dinamic, caracter sistematic
Pentru o buna organizare si desfasurare a procesului de învatamânt, profesorul trebuie sa respecte si sa aplice corect macar urmatoarele principii didactice clasice :
Principiul intuitiei
Acest principiu exprima necesitatea studierii obiectelor, fenomenelor, proceselor cu ajutorul simturilor, tinându-sc cont de importanta realizarii unitatii dintre senzorial si rational.
Principiul legarii teoriei de practica
Factorii implicati sunt: dificultatea notiunilor teoretice, mijloacele tehnice, de cunostintele anterioare, nivelul clasei si abilitatea si experienta cadrului didactic. Constientizarea necesitatii utilizarii performante a unor tehnici folosite frecvent astazi în viata cotidiana este esentiala..
Principiul însusirii constiente si active a cunostintelor
Procesul de instruire se faca organizat, prin fixarea unor scopuri, finalitati si termene precise. Se urmareste trecerea de la intentie la gândirea abstracta, de la treapta senzoriala la treapta rationala si favorizarea formarii de noi structuri informationale. Se va pune accentul pe metodele active de învatare, pe asigurarea participarii permanente si constiente a elevilor la desfasurarea lectiilor, pe stimularea muncii creatoare si independente.
Principiul sistematizarii si continuitatii cunostintelor
Noile informatii relevante vor fi legate de cele deja introduse si vor prefigura informatiile ulterioare (respectându-se programa scolara). Pentru a dezvolta continuu gândirea logica a elevilor, pentru a încuraja participarea lor activa, pentru a le crea deprinderi de sistematizare si generalizare a celor învatate, profesorul trebuie sa-si foloseasca la maximum disponibilitatile creatoare si talentul pedagogic în pregatirea expunerilor. Activitatea individuala constienta a elevului ar trebui sa fie esentiala. Cunostintele nu se pot asimila în salturi, iar deprinderile neexersate se pierd (în special în informatica, unde rata de perisabilitate a acestora este foarte ridicata).
Principiul accesibilitatii cunostintelor
O tema este accesibila atunci când corespunde particularitatilor psihologice de vârsta ale elevilor carora le este adresata, este o continuare fireasca a celor acumulate anterior si corespunde capacitatii lor reale de munca. De asemenea, demersul instructiv-educativ trebuie adaptat conditiilor concrete ale clasei, stabilindu-se un raport optim între efortul solicitat elevului si ajutorul care i se acorda în procesul de învatare. Respectarea particularitatilor psihologice de vârsta nu înseamna a scuti elevii de efortul intelectual necesar dezvoltarii gândirii abstracte.
Principiul însusirii temeinice a cunostintelor
Acest principiu reclama cerinta fixarii materialului de specialitate studiat, astfel încât elevii sa-1 poata reproduce si utiliza creator atât în rezolvarea temelor scolare curente, cât si în activitatea practica viitoare. Expunerile trebuie facute intuitiv, accentuându-se esentialul si evitându-se supraîncarcarea. Fixarea cunostintelor nu trebuie realizata printr-o repetare succinta a celor expuse, ci trebuie sa se bazeze pe o receptare logica, rationala, cu ajutorul careia sa se poata identifica esentialul. O asemenea însusire temeinica poate fi obtinuta prin diverse modalitati de recapitulare: curenta, de sistematizare si sinteza, de preîntâmpinare a uitarii celor deja învatate, de asigurare a fixarii în memorie a sistemului de cunostinte fundamentale.
Principiul individualizarii si diferentierii învatarii.
Exprima necesitatea adaptarii strategici instructiv-educativc atât la particularitatile psihofiziologice ale fiecarui elev în parte, cât si la particularitatile (relativ comune) ale unei grupe omogene de elevi, în vederea dezvoltarii lor ca personalitate si profesionalism. Individualizarea învatarii se refera la valorificarea cât mai buna a posibilitatilor sieforturilor individuale, atât pentru persoanele înzestrate, cât si pentru cele mai putin înzestrate. Diferentierea învatarii exprima însa necesitatea de a adapta continutul strategiilor educationale in functie de particularitatile comportamentului individual (sau de grup) al elevilor (cum ar fi promovarea aptitudinilor specifice pentru anumite materii). Aceasta diferentiere va raspunde atât satisfacerii nevoilor destinate tratarii unor particularitati psihologice individuale, cât si satisfacerii unor cerinte sociale privind pregatirea si utilitatea existentei unor specialisti.
Exemplu
Pentru ilustrarea aplicarii tuturor principiilor, problema colorarii hartii este un exemplu suficient de edificator si de complex, putând fi folosit si pentru:
• prezentarea unor notiuni informatice generale : cuvânt, limbaj formal; graf; stiva (lista, coada);
• întelegerea metodelor backtracking.;
• întelegere automata în sens iterativ (parte a constructiei compilatoarelor) ;
• întelegerea unor tehnici de prelucrare a imaginilor;
• introducerea câtorva consideratii de corectitudine si complexitate a algoritmilor;
• introducerea câtorva concepte de programare nestandard, cum ar fi programarea functionala.
Enuntul problemei.
Fiind dată o hartă cu n tări, se cer toate modalităţile de colorare a hărţii, utilizând cel mult m culori, astfel încât două ţări cu frontieră comună să fie colorare diferit. Este demonstrat faptul că sunt suficiente numai 4 culori ca orice hartă să poată fi colorată.
Pentru rezolvare se vor folosi:
k: variabilă întreagă, care reprezintă o ţară
x: vector cu componente întregi cu proprietatea xk reprezintă culoarea ţării cu numărul k deoarece sunt n ţări şi m culori, k={1,…,n} şi xk={1,…,m}
x=(x1,x2,…,xn) unde xk apartine multimii {1,…,n}.
Pentru reprezentarea hartii in program se va folosi matricea de adiacenta definita astfel:
– a[i][j]=1 daca tara i se invecineaza cu tara j;
– a[i][j]=0 daca tara i nu se invecineaza cu tara j;
–
Concluzie:
Ţara k şi ţara i sunt vecine, dacă (a[i][k]=1) sau (a[k][i]=1)
Ţara k şi ţara i au aceeaşi culoare dacă x[k]=x[i]
Comentarii la funcţia valid:
Trebuie verificat dacă ţara k şi ţara i ce sunt ţări vecine au culori diferite, adică dacă A[k][i]=1 pentru x[k] diferit de x[i], pentru i=1…k-1.
Algoritm pentru problema colorarii hartii
Pas 1. Se introduc datele de intrare ( nr. de ţări si matricea vecinilor)
Pas 2. Se initializează nivelul k al stivei
Pas 3. Cât timp există nivele în stivă executăm paşii următori.
Pas 4. Căutăm un succesor pe nivelul k al stivei până când gasim unul care nu depăşeşte numărul maxim de culori, apoi verificăm dacă este valid (îndeplineşte condiţiile ca elementul gasit în stivă să fie diferit de celelalte elemente şi în plus ţara i să nu fie vecină cu ţara k).
Pas 5. Dacă s-a găsit un astfel de element şi dacă este o soluţie a problemei se tipăreşte, iar în caz contrar se trece la nivelul următor al stivei şi se initializează stiva.
Pas 6. În cazul în care nu s-a găsit nici o soluţie pe nivelul k, coborâm la nivelul anterior să căutăm şi alte soluţii valide.
Implementare problemei este furnizată programului cu ajutorul unei matrice A cu n linii si in coloane unde A(i,j) = 1, dacă ţara i se învecinează cu ţara j şi valoarea 0 în caz contrar. Matricea A este simetrică. Pentru rezolvarea problemei se utilizează stiva x, unde nivelul k al stivei simbolizează ţara k, iar x[k] culoarea ataşată ţării k. Stiva are înălţimea n (numărul de ţări) şi pe fiecare nivel ia valori între 1 şi 4.
#include
#include
typedef int sir[100];
sir x;
int m,i,k,n,j;
int as,ev;
int a[100][100];
void succ(sir x, int k, int &as){
if(x[k]<n)
{ as=1;
x[k]=x[k]+1; }
else as=0;
}
void valid(sir x, int k, int &ev){
ev =1;
for(i=1;i<=k-1;i++)
if((a[k][i]==1)&&(x[k]==x[i]))
ev=0;
}
void afis(sir x,int k)
{
int i;
for(i=1;i<=k;i++)
cout<<x[i]<<” “;
cout<<endl;
}
Se verifică dacă ai,k=1 atunci
Xk diferit de xi, unde i=1,…k-1
int main(void)
{
cout<<“Dati numarul de tari:”;
cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cin>>a[i][j];
a[j][i]=a[i][j];
}
k=1;
x[k]=0;
while(k>0)
{ do {
succ(x,k,as);
if(as) valid(x,k,ev);
}
while(as&&!ev);
if(as)
if(k==n) afis(x,k);
else
{ k=k+1; x[k]=0; }
else k=k-1; }
}
4.2. Metode de evaluare: Exemplificari
Obiectivele majore ale disciplinei Informatică sunt:
– dezvoltarea gândirii prin formarea gândirii algoritmice,
– organizarea datelor prin înţelegerea şi utilizarea sistematică a structurilor de date şi
– dobândirea abilităţilor de construire aplicaţiilor pornind de la cerinţe concrete de prelucrare.
4.3. Competentele generale ale disciplinei de studiu Informatică
a. Identificarea conexiunilor dintre informatică şi societate.
Elevul trebuie să fie capabil să sesizeze şi să aprecieze contribuţia informaticii la viaţa socială şi să promoveze cu responsabilitate dezvoltarea instrumentelor informatice.
Forme de evaluare :Evaluare orală , Eseu si Referat
b. Identificarea datelor care intervin într-o problemă şi a relaţiilor dintre acestea
Elevul trebuie să fie capabil să identifice, să clasifice, să structureze, să coreleze şi să utilizeze datele.
Forme de evaluare : Probă scrisă , Evaluare orală ,Proiect (prezentare) , Harta . conceptuală , Tehnica 3-2-1 şi R.A.I.
c. Elaborarea algoritmilor de rezolvare a problemelor
Elevul trebuie să urmărească algoritmul de rezolvare a unei probleme, să descrie o metodă algoritmică de rezolvare, să reprezinte o strategie de rezolvare într-o manieră ştiinţifică şi expresivă (pseudocod) şi să coreleze o situaţie practică de prelucrare cu unul dintre algoritmii cunoscuţi.
Forme de evaluare : Teste scrise (itemi obiectivi şi semiobiectivi) , Rezolvare de probleme , Portofoliu de problem, Proiect de modelare , Hărţi conceptuale , 3-2-1 şi R.A.I.
d. Aplicarea algoritmilor fundamentali în prelucrarea datelor
Elevul trebuie să cunoască particularităţile de prelucrare a diferitelor tipuri de structuri de date pentru a fi capabil să modeleze complet rezolvarea unei probleme simple, prin alegerea structurilor de date şi a instrumentelor de prelucrare adecvate.
Forme de evaluare : Teste scrise (itemi obiectivi şi semiobiectivi). Rezolvare de probleme , Portofoliu de probleme , Proiect de prezentare animată/interactivă a prelucrărilor pe structuri speciale (stiva, heap etc.) , 3-2-1 şi R.A.I.
e. Implementarea algoritmilor într-un limbaj de programare
Elevul trebuie să se familiarizeze cu instrumentele de programare şi cele de dezvoltare pentru a fi capabil să realizeze un produs program care să aibă toate atributele unei aplicaţii.
Forme de evaluare : Teste scrise (itemi obiectivi şi semiobiectivi), Fişe de activitate practică, Portofoliu de programe , Investigaţia , Referatul de prezentare a unui mediu sau a unei aplicaţii noi şi Proiectul
4.4. Instrumente de evaluare a competenţelor la disciplina de studiu Informatică
Pentru o înţelegere mai bună a acestei problematici vom opera cu următoarea definiţie de lucru a itemului: Item = <întrebare> + + <răspunsul aşteptat>
Teoria şi practica evaluării evidenţiază mai multe citerii pe baza cărora pot fi clasificaţi itemii. Unul dintre criteriile cel mai des utilizate este acela al gradului de obiectivitate oferit în corectare. În funcţie de acest criteriu, itemii pot fi clasificaţi în trei mari categorii:
• Itemii obiectivi asigură un grad de obiectivitate ridicat în măsurarea rezultatelor şcolare şi testează un număr mare de elemente de conţinut într-un interval de timp relativ scurt. Răspunsul aşteptat este bine determinat, ca şi modalitatea de notare a acestuia.
• Itemii semiobiectivi permit ca răspunsul aşteptat să nu fie totdeauna unic determinat, modalitatea de corectare şi notare inducând uneori mici diferenţe de la un corector la altul. Aceştia testează o gamă mai variată de capacităţi intelectuale, oferind în acelaşi timp posibilitatea de a utiliza şi materiale auxiliare în rezolvarea sarcinilor de lucru propuse.
• Itemii subiectivi (cu răspuns deschis) solicită un răspuns amplu, permiţând valorificarea capacităţilor creative ale elevilor. Aceştia sunt relativ uşor de construit, principala problemă constituind-o modul de elaborare a schemei de notare astfel încât să se poată obţine unitate şi uniformitate la nivelul corectării. ( Itemi de tip eseu si Rezolvare de probleme )
4.5. Metode complementare de evaluare
Metodele complementare de evaluare reprezintă instrumente suplimentare, nestandardizate, de evaluare dispunând de forme specifice cum ar fi: investigaţia, referatul, portofoliul, proiectul, observarea sistematică a activităţii elevului şi autoevaluarea.
Metodele complementare de evaluare permit o evaluare individualizată (observare sistematică), au capacitatea de a educa spiritul de echipă prin activităţi de grup (investigaţii, proiecte) și au un caracter profund integrator realizat prin interdisciplinaritate, educare şi instruire multilaterală.
a) Investigaţia
b) Referatul şi proiectul
c) Portofoliul
Potofoliul reprezintă o metodă complexă de evaluare în care un rezultat al evaluării este elaborat pe baza aplicării unui ansamblu variat de probe şi instrumente de evaluare.
Prin multitudinea de forme şi momente în care se desfăşoară testarea elevului, rezultatul final “converge” către valoarea reală a acestuia, sesizând elementele de progres sau regres, ilustrând preocuparea pentru lămurirea neclarităţilor, oferind o imagine de ansamblu asupra nivelului cunoştinţelor, gradului de formare a abilităţilor şi gradului de raportare atitudinală pe care acesta o are faţă de tema evaluată. Portofoliul este realizat pe o periadă mai îndelungată, de la un semestru, un an, până la un ciclu de învăţământ.
Conţinutul unui portofoliu este reprezentat de rezultatele la: lucrări scrise sau practice, teme pentru acasă, investigaţii, referate şi proiecte, observarea sistematică la clasă, autoevaluarea elevului, chestionare de atitudini etc.
Alegerea elementelor ce formează portofoliul este realizată de către profesor (astfel încât acestea să ofere informaţii concludente privind pregătirea, evoluţia, atitudinea elevului) sau chiar de către elev (pe considerente de performanţă, preferinţe etc.)
Structurarea evaluării sub forma de portofoliu se dovedeşte deosebit de utilă, atât pentru profesor, cât şi pentru elev.
Pentru a realiza o evaluare pe bază de potofoliu, profesorul:
• va comunica elevilor intenţia de a realiza un portofoliu, adaptând instrumentele de evaluare ce constituie “centrul de greutate” ale portofoliului la specificul disciplinei;
• va alege componentele ce formează portofoliul, dând şi elevului posibilitatea de a adăuga piese pe care le consideră relevante pentru activitatea sa;
• va evalua separat fiecare piesă a portofoliului în momentul realizării ei, dar va asigura şi un sistem de criterii pe baza cărora să realizeze evaluarea globală şi finală a portofoliului;
• va pune în evidenţă evoluţia elevului, particularităţile de exprimare şi de raportare a acestuia la aria vizată;
• va integra rezultatul evaluării portofoliului în sistemul general de notare.
Exemplu
Tematica: Grafuri (portofoliu realizat pe parcursul semestrului I, clasa a XI-a)
Competențe:
• descrierea în limbaj natural a algoritmilor de verificare a proprietăţii de graf ;
• aplicarea unor metode de verificare pentru grafuri date;
• reprezentarea unor algoritmi de verificare prin calculul gradelor vârfurilor (graf complet, graf regulat), prin parcugere (graf conex, tare conex) ;
• descrierea unei metode pentru verificare proprietăţii de lanţ/ciclu/graf hamiltonian, de ciclu/graf eulerian;
• utilizarea corectă a termenilor specifici;
• descrierea unei metode de obţinere a unui arbore parţial;
• descrierea uneia sau mai multor metode pentru drumuri optime;
• aplicarea unor metode de prelucrare pentru grafuri date;
• reprezentarea unor secvenţe specifice de prelucrare.
Conţinutul portofoliului:
• teste şi lucrări scrise;
• teme de activitate independentă scrisă;
• programe implementate independent ( parcurgerea grafurilor, determinarea componentelor conexe) sau în grupe de doi elevi;
• referat prezentat sau participare la un proiect;
• fișe de evaluare a elevului;
• fişa de observare a profesorului privind implicarea în activităţi şi discuţii;
• studiu de caz (grafuri ponderate);
• fişa de autoevaluare a elevului.
4.6. Criterii de evaluare
• Proiectarea algoritmilor fundamentali (reprezentare, parcurgere, conexitate, optimalitate 4×0.5 puncte
• Realizarea câte unui tip de reprezentare pentru grafuri (matrice de adiacență, liste de vecini) 2×0.5 puncte
• Utilizarea metodelor de parcurgere a grafurilor (adâncime, lățime) 2×1 punct
• Realizarea, cu resurse proprii, a cel puţin două dintre programele prezentate 2x1punct
• Observare unui progres sau atingerea standardului maxim de competenţă 1 punct
• Manifestarea unei atitudini constructive în activitatea de grup 0.5 puncte
• Capacitatea de autoevaluare 0.5 puncte
• Din oficiu 1 punct
d) Observarea sistematică a activităţii şi comportamentului elevilor
e) Hărţile conceptuale
f) Metoda R. A. I.
Evaluarea competenţelor specifice.
Principalele calităţi ale unui instrument de evaluare sunt: validitatea, fidelitatea, obiectivitatea şi aplicabilitatea.
Exemple de probe de evaluare predictivă
Profesorul trebuie :
– să determine precis nivelul de atingere a obiectivelor materiei anterior parcurse de elev;
– să elaboreze, să aplice şi să examineze detaliat rezultatele unui test predictiv;
– să stabileasca programe compensatorii.
a) Evaluare predictivă la început de ciclu liceal
b) Probă de ameliorare și progres
c) Evaluare predictivă la începutul ciclului superior al liceului
Exemple de probe de evaluare continuă
a) Evaluare orală
b) Evaluare scrisă
Lucrările scrise reprezintă metoda (și chiar forma)fundamental de evaluare a nivelului de pregătire al elevilor. Între variantele sub care se prezintă fac parte:
• testele sumative, probele de control de la sfârșitul unei activități didactice mai mari (unitate de învățare); acestea sunt anunțate din timp, se pot întinde pe durata unei ore, sunt direcționate prin sublinierea inițială a obiectivelor propuse;
• testele formative rezolvate pe parcursul uneia sau mai multor lecții
• lucrări efectuate ca activitate independentă în clasă (efectuarea unui set de exerciții, rezolvarea sau compunerea unor probleme)
Itemi obiectivi cu alegere multiplă
Itemi semiobiectivi cu răspuns scurt
Itemi subiectivi (rezolvare de probleme)
Exemplu
Clasa: a XI-a
Timp de lucru: 50 min
Competențe specifice: Identificarea proprietăților grafurilor neorientate
Competențe de evaluat:
Verificarea unor proprietăţi ale grafurilor
Implementarea unor algoritmi specifici de prelucrare a grafurilor
Implementarea algoritmilor de verificare a unor proprietăţi ale grafurilor
1. Următorii patru itemi se referă la graful din figura următoare.
a) Care sunt nodurile de grad par?
b) Care este numărul de muchii ce trebuiesc adăugate în graf pentru a obține un graf complet?
c) Care este numărul de muchii ale celui mai lung lanţ, format din noduri distincte, ce are ca extremităţi nodurile 1 şi 3?
d) Care este numărul minim de muchii ce pot fi eliminate din graf astfel încât graful parțial obținut să fie eulerian?
2. Care este numărul de grafuri neorientate de ordin n, cu mulțimea nodurilor {1, 2, 3, … ,n} ? Justificați.
3. Care este numărul maxim de noduri de grad 3 într-un graf neorientat cu 5 noduri?
a. 4 b. 5 c.3 d.2
4. Scrieți secvența de program care, pornind de la matricea de adiacență asociată unui graf neorientat de ordin n:
a) afișează listele de adiacență
b) afișează toate ciclurile elementare de lungime 3
Barem de corectare și notare:
Item Raspuns corect punctaj observatii
1a 1,2,3 1p
1b 3 1p M(K5)|=5*4/2=10, |M(G)|=7
1c 4 1p lanțul 1-2-4-5-3
1d 1 1p muchia 2-4
2 n(n-1)/2
2 2p se acordă 1p pentru formulă corectă și 1p pentru demonstrație
3 a)4
1p
4a pentru rezolvare corectă
-parcurgere matrice
-identificare vecini
-afișarea listelor de adiacență 1p
0.25
0.25
0.50
4b pentru rezolvare corectă
– parcurgere matrice
– identificare ciclu elementar de lungime 3
-afișarea tuturor ciclurilor elementare de lungime 3 1p
0.25
0.25
0.50
din oficiu : 1p
Descriptori de performanţă pe niveluri de realizare a sarcinii.
nota 5-6
nota 7-8
Nota 9-10
• cunoaște noțiunile de graf neorientat, nod, muchie, graf complet, lanț
• reprezintă graful cu ajutorul matricei de adiacență
• identifică vecinii unui nod
• calculează gradul unui nod
• cunoaște noțiunile de graf parțial, subgraf, ciclu
• calculează numărul de muchii pentru un graf neorientat cu n noduri
• construiește matricea de adiacență asociată unui graf
• cunoaște noțiunile de graf eulerian, hamiltonian
• calculează numărul de grafuri neorientate cu n noduri
• determină ciclurile unui graf
• modifică un graf astfel încât să fie îndeplite condiții de maxim/ minim
c) Evaluare practică
Exemple de evaluare sumativă :Clasa a XII-a Evaluare finală/su mativă – Examen de bacalaureat
Evaluare digitală -concluzii
Evaluarea digitală permite realizarea unui contact mai strâns cu elevii, un control mai temeinic și mai operativ, constituindu-se într-o tehnică complementară celei clasice.
Rețeaua de calculatoare permite stabilirea unui dialog permanent cu elevii: se prezintă informații, se verifică asimilarea cunoștințelor, se propun exerciții, după cum se dorește ca dominantă transmiterea de cunoștințe, verificarea sau formarea de priceperi și deprinderi.
Când are rolul de a verifica cunoștințele, calculatorul afișează mai întâi întrebarea care apare proiectată pe ecran și la care cel examinat trebuie să răspundă. Dispozitivul memorează răspunsul dat și timpul de gândire. În funcție de modul în care este proiectat testul, se poate alege obținerea unui feedback imediat (după fiecare întrebare) sau la sfârșitul testului.
Evaluarea digitală permite realizarea unei rețele complexe de instruire, existând posibilitatea controlului simultan al unui număr mare de elevi, care utilizează terminale conectate la un server, de unde se poate urmări și dirija procesul de evaluare.
Utilizarea computerelor în procesul de evaluare contribuie la o însușire a cunoștințelor mai rapidă și mai temeinică, deoarece receptivitatea pe cale vizuală este mai mare decât pe cale auditivă.
Totodată, utilizarea calculatoarelor reprezintă o metodă eficientă de activizare a elevilor, antrenându-i în studiul individual, în ritm propriu. În aprecierea cunoștințelor, calculatorul prezintă avantajele obiectivității și insensibilității la reacții afective legate de notare.
CAPITOLUL 5. CULEGERE DE PROBLEME
5.1. Parcurgerea în lăţime a grafurilor – BFS
Considerăm un graf neorientat care se dă prin n = numărul de vârfuri şi
a = matricea de adiacenţă (matrice pătrată, simetrică). Datele de intrare se citesc din fişierul text “graf.in”. De pe ultima linie a acestui fişier se citeşte un vârf x care este vârful de pornire pentru algoritmul BFS.
Se vor afişa în fişierul text “bfs.out”:
– pe prima linie cele k vârfuri care sunt în aceeaşi componentă conexă cu x (inclusiv x)
– pe următoarele k-1 linii drumul minim de la x la fiecare vârf din componenta conexă a lui x, precum şi lungimea acestui drum.
Exemplu:
graf.in bfs.out
8
0 1 1 1 0 0 0 0
1 0 1 0 1 0 0 0
1 1 0 1 0 0 0 0
1 0 1 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 1
0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0
1 1 2 3 4 5
drumul minim la : 2 : 1 2 are lungimea 1
drumul minim la : 3 : 1 3 are lungimea 1
drumul minim la : 4 : 1 4 are lungimea 1
drumul minim la : 5 : 1 2 5 are lungimea 2
Coada va fi implementată cu ajutorul unui vector c; p este indicele primului element al cozii şi u indicele ultimului element al cozii.
Vectorii pred, d, viz au semnificaţia din algoritm.
// programul 5.1
# include
using namespace std; // presupunem că n<100
int n, x, d[100], pred[100];
bool a[100][100], viz[100]; // variabile globale
ifstream f(“graf.in”);
ofstream g(“bfs.out”);
void drum (int x) {
if (x!=s) drum( pred[x]);
g<<x<<’ ’; }
int main()
{ int i, j, p,u,c[100];