Professional Documents
Culture Documents
DIVIDE ET IMPERA
Competențe specifice:
Utilizarea corectă a subprogramelor predefinite și a celor definite de utilizator
Identificarea și rezolvarea algoritmică a problemelor care necesită folosirea metodei
Divide et Impera
Analiza problemei în scopul identificării subproblemelor acesteia
Obiective operaționale:
O1: să interpreteze și să furnizeze rezultatul în cadrul unor itemi obiectivi și semiobiectivi
O2: să analizeze o problemă complexă pentru a-i identifica subproblemele
O2: să aplice cunoștințele referitoare la algoritmii de prelucrare vectorilor
O3: să realizeze programul asociat problemelor propuse prin asamblarea subprogramelor
O4: să-și formeze deprinderile de abstractizare
Strategia didactică:
Metode de învățare: conversație, exercițiul, problematizarea, învățarea prin descoperire
Mijloace de învățare: fișa de lucru
Forma de organizare: frontală, individuală și pe grupe
Principii didactice: principiul participării și învățării active, principiul asigurării
progresului gradat al performanței, principiul conexiunii inverse
Procedee de instruire: învățarea prin descoperire, prin rezolvarea problemelor din cadrul
fișei de lucru; problematizarea prin crearea situațiilor problemă;
conversația de consolidare; explicația
Evaluare: evaluare continuă prin observarea activității elevilor
1
Desfășurarea activității
Activitate desfăşurată de
Momentele Strategii
Evaluare
lecţiei Profesor Elev didactice
• raportează absenţii şi
1. Organizare şi verificarea frecvenţei elevilor; motivele absentării
pregătirea clasei verificarea stării reţelei de calculatoare • raportează eventualele Conversaţia
(1min) defecţiuni tehnice
anunţarea subiectului temei respective;
2. Captarea anunţarea obiectivelor urmărite; elevii ascultă profesorul Conversaţia
atenţiei elevilor anunţarea modului de desfăşurare a activităţii.
(1min)
• Profesorul scrie titlul lecţiei pe tablă: ”Divide et
Impera”.
• Profesorul le solicită elevilor să indice cu • Elevii notează pe o hârtie principalele Conversaţia
ajutorul unei diagrame, principalii termeni care cuvinte cheie care au legătură cu
sunt legați de tehnica “Divide et Impera”. metoda de programare “Divide et
• Cu ajutorul elevilor profesorul va identifica Impera”
termenii corecți, explicând pe scurt rostul • Observare
3. Recapitularea fiecăruia: sistematică
și sistematizarea - “Divide et Impera” vine din
cunoştinţelor latinescul “dezbină și stăpânește” care este și
(45min) principiul de rezolvare al problemelor
- Metoda presupune descompunerea Conversaţia
problemei în 2 sau mai multe subprobleme;
acestea pot fi probleme elementare sau ne-
elementare; problemele elementare se
rezolvă direct, iar cele ne-elementare • Practică
necesită descompunerea în alte subprobleme
- Descompunerea problemei se
realizează în funcție de un anumit criteriu, • Elevii sunt atenți la concluziile
2
Activitate desfăşurată de
Momentele Strategii
Evaluare
lecţiei Profesor Elev didactice
specific problemei profesorului și contribuie la schițarea cât
- Soluția unei probleme care implică mai corectă a diagramei
metoda Divide et Impera se obține prin
recombinarea soluțiilor subproblemelor în
sens invers, recombinare care implică
folosirea unor procese recursive
- O altă caracteristică a metodei este
rapiditatea
• Profesorul le propune elevilor trecerea în revistă • Elevii vor răspunde la întrebarea Conversația
a principalelor probleme făcute la clasă, probleme profesorului, enumerând pe rând
ce se pot realiza cu ajutorul metodei Divide et principalele exemple cerute
Impera: calcularea maximului/minimului
elementelor unui vector, suma elementelor pare
din vector, produsul elementelor prime din vector,
numărarea elementelor prime/palindroame din
vector, căutarea binară, turnurile din hanoi, n!,
sortarea rapidă, sortarea prin interclasare
• După evaluarea răspunsurilor elevilor,
profesorul le propune să își consolideze
cunoștințele dobândite, prin rezolvarea fișei de
lucru anexate
• Primele două exerciții reprezintă exerciții cu • Elevii vor rezolva atât individual Exerciţiul
alegere multiplă problemele, cât și la tablă prin
• Profesorul le atrage elevilor atenția asupra intermediul unui elev
problemelor elementare din cele două exerciții,
probleme ce presupun rezolvare imediată:
1) cazul elementar e: m=n (vectorul e alcătuit Observaţia
dintr-un singur element)
2) cazul elementar e: a=b
- În cazul primei probleme se returnează restul
3
Activitate desfăşurată de
Momentele Strategii
Evaluare
lecţiei Profesor Elev didactice
împărțirii valorii din vector la 2, valoare Explicaţia
aflată pe poziția m, iar în cazul celei de-a doua
probleme se returnează valoarea de pe poziția
a din vectorul în cauză
- Rezultatele obținute la cele două exerciții
sunt: 14, respectiv 33
• Profesorul le propune elevilor spre rezolvare
problema cu numărul 3 din fișa de probleme. • Participă la stabilirea etapelor de
Va insista asupra procesului de descompunere a rezolvare a problemei, găsind soluția
problemei inițiale în subprobleme, pe optimă pentru implementarea
identicarea problemei elementare care trebuie algoritmului Muncă
rezolvată și pe obținerea soluției problemei. individuală
• Ca o concluzie, profesorul le propune elevilor să
se gândească ce se întâmplă dacă vectorul este • Elevii notează în caiete algoritmul de
sortat crescător. rezolvare
4. Evaluarea • Se vor face aprecieri individuale şi colective • Elevii sunt atenţi la aprecieri şi la
(2min) asupra activităţii desfăşurate, elevii care au recomandările făcute de profesor Conversaţia
activat în timpul orei sunt notaţi.
5. Tema pentru • profesorul anunţă tema pentru acasă • Elevii îşi notează tema pe caiete. Conversaţia
acas
ă (1
min.
)
4
CN “Mihai Eminescu” Oradea Divide et Impera
Prof. Amelia Stoian
Fișa de lucru:
1. Alegeți varianta corectă de răspuns pentru următoarele exerciții:
a) #include<iostream.h>
int v[8]={2,4,1,3,11,5,1,3};
int imp(int m, int n)
{
if (m==n) return v[n]%2;
else
return imp(n,(n+m)/2)+imp((n+m)/2+1,m);
}
int main()
{
cout<<imp(0,6);
return 0;
}
1) 3 2) 33 c) 0 d)8
5
CN “Mihai Eminescu” Oradea Divide et Impera
Prof. Amelia Stoian
#include<iostream.h>
int v[100],n,x;
int main()
{
int k=0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
cin>>x;
dei(1,n,k);
cout<<k;
return 0;
}
#include<iostream.h>
int v[100],n,x;
int main()
{
int k=0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
cin>>x;
cout<<dei(1,n);
return 0;
}