Sunteți pe pagina 1din 4

PROIECT DE TEHNOLOGIE DIDACTICA

Data: 13 .10. 2015


Disciplina: Informatic
Clasa: a XI-a E
Profil: matematic-informatic
Profesor: DOBRE SANDINA
Unitatea de nvare: Elaborarea algoritmilor de rezolvare a problemelor
Activitatea de nvare: Metoda Divide et Impera. Maximul dintr-un ir.
Tipul leciei: mixt;
Competene specifice: - Analiza problemei n scopul identificrii metodei de programare adecvate pentru
rezolvarea problemei;
- Aplicarea creativ a metodelor de programare pentru rezolvarea unor probleme
intradisciplinare sau interdisciplinare, sau a unor probleme cu aplicabilitate
practic
Obiectiv general: Aplicarea metodei de programare Divide et Impera pentru rezolvarea unor tipuri
de probleme
Strategii didactice:
Principii didactice:
- principiul participrii active;
- principiul asigurrii progresului gradat al performanei;
- principiul conexiunii inverse.
Metode de nvmnt:
- metode de comunicare oral: expunerea, conversaia, problematizarea;
- metode de aciune: exerciiul;
Procedee de instruire;
- explicaia n etapa de comunicare;
- conversaia euristic n etapa de comunicare;
- nvarea prin descoperire prin rezolvare de probleme ;
- conversaia de consolidare n etapa de fixare a cunotinelor.
Forme de organizare :frontal, individual.
Forme de dirijare a nvrii : dirijat de profesor i independent
Reurse materiale : Mateescu George Daniel, Moraru Florin Pavel, Informatic pentru liceu i
bacalaureat, clasa a XI-a, Editura Donaris, Sibiu, 2008
Metode de evaluare:
- evaluare iniial: ntrebri orale;
- set de aplicaii ;
Desfurarea leciei :
a. moment organizatoric : - pregtirea leciei ;
- pregtirea setului de ntrebri ;
- pregtirea setului de aplicaii ;
- pregtirea temei ;
b. organizarea i pregtirea clasei :- verificarea frecvenei;
- verificarea temei de cas;
c. captarea ateniei: - anunarea subiectului leciei;
- anunarea obiectivelor urmrite;
- anunarea modului de desfurare a activitii
Reactualizarea cunotinelor se va face prin urmtorul set de ntrebri i aplicaii:
Care este principiul metodei de programare Divide et Impera ?
Ce avantaje prezint metoda de programare Divide et Impera ?
Cum se modeleaz metoda de programare Divide et Impera ?
Folosind metoda Divide et Impera realizai o funcie care returneaz suma 2+21+22+...+2n.

1
Comunicarea noilor cunotine:
S se determine elementul maxim dintr-un ir de n numere ntregi, folosind metoda Divide et
Impera.
Se urmrete modelul general i valorile din ir se memoreaz ntr-un vector
(x[0], x[1],...,x[n-1]).
Se descompune problema n dou probleme de acelai tip, se mparte vectorul n doi vectori
aproximativ egali ca numr de elemente; primul vector va conine elementele aflate pn la poziia
de mijloc inclusiv, iar al doilea vector va fi alctuit din elementele de dup poziia de mijloc.
Se determin elementul maxim al fiecruia dintre cei doi subvectori, apoi maximul ntregului
vector va fi cea mai mare dintre cele dou valori maxime.
Dac primul subvector nu s-a redus la un singur element, el trebuie descompus la rndul lui n
dou jumti; la fel i la al doilea vector. Procedeul continu pn se obin numai subvectori cu un
singur element. Maximul unui subvector cu un singur element este chiar elementul respectiv. Un
vector cu un singur element va fi considerat problem elementar.
Se consider c la un anumit pas se prelucreaz subvectorul: (x[p],...,x[q]), ce conine
elementele cuprinse ntre poziiile p i q. Se pornete de la vectorul dat (x[0], x[1],...,x[n-1]), deci
iniial capetele intervalului sunt p=0 i q=1. Poziia de mijloc care determin vectorii descompunerii
este mij=[(p+q)/2], iar subvectorii vor fi x1= (x[p],...,x[mij]) i x2=(x[mij+1],...,x[q]).
Se face exemplificare pe vectorul x=(-1,2,8,-3,1,9,6), avnd n=7 elemente.
Procesul de descompunere ncepe cu vectorul iniial:
x: p=0 1 2 3 4 5 6=q
-1 2 8 -3 1 9 6

- se calculeaz mij=[(p+q)/2]=[(0+6)/2]=3
- vectorul x1 este cuprins ntre poziiile p i mij, mij devine noul q
p=0 1 2 3=q
-1 2 8 -3

- vectorul x2 este cuprins ntre poziiile mij +1 i q, iar mij+1 devine noul p

p= 4 5 6=q
1 9 6

Fiecare vector se descompune la rndul su n mod similar.


Pentru x1, mij=[(0+3)/2]=1, i se obin subvectorii:
x11 x12
p=0 1 =q p=2 3 =q

-1 2 8 -3
Pentru x2, mij=6 i se obin subvectorii:

x21 x22
p=4 5 =q p=6 =q

1 9 6
Urmtoarele descompuneri ale vectorilor conduc la probleme elementare:
x11 x111: -1 i x112: 2
x12 x121: 8 i x122: -3
x21 x211: 1 i x212: 9
x22 este 6, problem elementar.
Determinarea maximului se face combinnd problemele astfel:
- valoarea maxim a lui x11 este maximul dintre x111 i x112, adic 2;
- valoarea maxim a lui x12 este maximul dintre x121 i x122, adic 8;
- valoarea maxim a lui x21 este maximul dintre x211 i x212, adic 9;
- valoarea maxim a lui x22 este 6;
2
n continuare:
- maximul dintre x11 i x12 este 8, adic maximul lui x1 este 8;
- maximul dintre x21 i x22 este 9, adic maximul lui x2 este 9;
- maximul dintre maximul lui x1 i maximul lui x2 este 9.
Se definete o funcie recursiv care returneaz valoarea maxim a subvectorului
(x[p],...x[q]) :
- dac subvectorul conine un singur element, adic p=q, atunci acel element va fi maximul
i va fi returnat de ctre funcie;
- n caz contrar:
se determin poziia de mijloc;
se determin valoarea maxim a subvectorului (x[p],,x[mij]), max1;
se determin valoarea maxim a subvectorului (x[mij+1],,x[q]), max2;
se recombin cele dou probleme, maximul din tot vectorul, max, va fi
cea mai mare dintre cele dou valori maxime:max1 i max2.
int div_imp(int p, intq)
{int mij, max1, max2;
if(p==q)
return x[p];
else
{mij=(p+q)/2;
max1=div_imp(p,mij);
max2=div_imp(mij+1,q);
if(max1>max2)
return max1;
else
return max2;
}
}
Fia de lucru
S se editeze n limbajul C++ algoritmul studiat (inclusiv declaratiile necesare rezolvarii
acestuia)
S se completeze tabelul de variaie urmtor pentru un vector ales,cu maxim 8 elemente, apoi
s se verifice cu rezultatele obinute prin rularea programului pentru aceleai valori.
S se ruleze programul i n varianta pas cu pas (step over).

vector Valorile din vector p q mij max


x
x1
x11
x111
x112
x12
x121
x122
x2
x21
x211
x212
x22
x221
x222

Tem pentru acas:


Problemele 1,2/pag310
Aplicaie- pag.311, - Mateescu George Daniel, Moraru Florin Pavel, Informatic pentru liceu i
bacalaureat, clasa a XI-a, Editura Donaris, Sibiu, 2008

3
Fia de lucru
S se editeze n limbajul C++ algoritmul studiat (inclusiv declaratiile necesare rezolvarii
acestuia)
S se completeze tabelul de variaie urmtor pentru un vector ales,cu maxim 8 elemente, apoi
s se verifice cu rezultatele obinute prin rularea programului pentru aceleai valori.
S se ruleze programul i n varianta pas cu pas (step over).

vector Valorile din vector p q mij max


x
x1
x11
x111
x112
x12
x121
x122
x2
x21
x211
x212
x22
x221
x222

Fia de lucru
S se editeze n limbajul C++ algoritmul studiat (inclusiv declaratiile necesare rezolvarii
acestuia)
S se completeze tabelul de variaie urmtor pentru un vector ales,cu maxim 8 elemente, apoi
s se verifice cu rezultatele obinute prin rularea programului pentru aceleai valori.
S se ruleze programul i n varianta pas cu pas (step over).

vector Valorile din vector p q mij max


x
x1
x11
x111
x112
x12
x121
x122
x2
x21
x211
x212
x22
x221
x222

S-ar putea să vă placă și