Sunteți pe pagina 1din 10

PROIECTUL DE LECIE

Prof. Eugen Popescu


coala: Colegiul tefan Odobleja Craiova
Data: 11.12.2014
ANUL I COALA POSTLICEAL
Clasa: a I Cpl
Vrsta elevilor: 19-20 ani
Numr de elevi: 27
Domeniul: INFORMATIC, Calificarea: ANALIST PROGRAMATOR
Disciplina: MODULUL VIII METODE I TEHNICI CLASICE DE PROGRAMARE
Condiii de desfurare a activitii: laboratorul de informatic
Tipul activitii: formarea i consolidarea de priceperi i deprinderi
Unitatea de nvare: Metode de programare
Coninut: Tehnica de programare Greedy. Aplicaii diverse. (pe baza programei aprobat prin OMECI nr. 5099 / 09.09.2009)
Competena general:
Identificarea datelor care intervin ntr-o problem i aplicarea algoritmilor fundamentali de prelucrare a acestora
Competene specifice:
Analiza problemei n scopul identificrii metodei de programare adecvate pentru rezolvarea problemei
Analizarea comparativ a eficienei diferitelor metode de rezolvare a aceleiai probleme i alegerea celui mai eficient algoritm de rezolvare a unei probleme.

Analizarea unei probleme n scopul identificrii datelor necesare i alegerea modalitilor adecvate de structurare a datelor care intervin ntr-o problem
Aplicarea creativ a metodelor de programare pentru rezolvarea unor probleme intradisciplinare sau interdisciplinare, sau a unor probleme cu aplicabilitate practic

Obiective operaionale:
Cognitive:
- S cunoasc rutina general a tehnicii Greedy;
- S explice condiiile n care se poate aplica tehnica Greedy;
- S aplice corect metoda Greedy pentru problema propus;
- S stabileasc corect condiiile de continuare pentru o aplicaie dat;
- S aleag corect valorile dup un mecanism specific fiecrei probleme n parte;
- S stabileasc n ce condiii se obine o soluie;
- S foloseasc sistemul de depanare pentru a depista eventualele erori de sintax;
- S rezolve corect, prin activitate independent, aplicaiile propuse spre rezolvare.
- S argumenteze valoarea metodei folosite n scrierea programelor;
1

Afectiv atitudinale:
- S aprecieze corect rspunsurile oferite de ceilali elevi ai clasei;
- S se autoevalueze n raport cu obiectivele i cu clasa;
- S fie ateni i s participe activ la lecie;
- S aprecieze rezultatele activitii desfurate;
- S-i dezvolte interesul pentru studiul informaticii prin aplicarea cunotinelor n probleme variate.
Psihomotorii:
- S-i dezvolte gndirea logic, capacitatea de generalizare i problematizare;
- S dovedeasc trinicia noiunilor dobndite la informatic;
- S dovedeasc abiliti n rezolvarea problemelor prin implementarea tehnicii Greedy;
Strategia didactic:
Resurse procedurale: conversaia, explicaia, demonstraia, problematizarea, exerciiul, nvarea prin descoperire.
Resurse materiale: tabla, manualul (Mateescu George Daniel, Moraru Florin Pavel, Informatic pentru liceu i bacalaureat, clasa a X-a, Editura Donaris,
Sibiu, 2008), culegere Popescu Eugen, Sofia Vielaru, Mihaela Codre, Daniel Codre, Mihaela Grindeanu, Marius Nicoli, Ecaterina Boarn- Metode de
programare, structuri dinamice de date i grafuri. Teorie i aplicaii, Editura Else, Craiova, 2006
Forme de organizare: activitate frontal i activitate individual.
Forme de evaluare:
- Evaluare iniial: verificarea prin sondaj, cantitativ i calitativ a temei
- Evaluare formativ: ntrebri, analiza rspunsurilor, observarea sistematic a ateniei, test alctuit din 2 itemi cu alegere multipl (fixarea cunotinelor
i realizarea feed-back).
NR.
CRT.

VERIGILE / ETAPELE
LECTIEI

Organizarea clasei
pentru lecie

Verificarea temei

Reactualizarea
cunotinelor

CONINUT/ SISTEME DE ACIONARE

DOZARE

Notarea absenelor.
2 minute
Pregtirea elevilor pentru lecie.
Se verific tema att cantitativ ct i calitativ, corectndu-se
eventualele erori;
2 minute
Se va face prin urmtorul set de ntrebri i aplicaii:
10
1. Cnd se folosete tehnica Greedy?
minute
R. Tehnica Greedy poate fi privit ca o particularizare a tehnicii
Backtracking, n care se renun la mecanismul de ntoarcere.
Algoritmii greedy (greedy = lacom) sunt n general simpli i sunt

FORMAII DE LUCRU I
INDICAII METODOLOGICE

OBSERVAII

Toat clasa
Elevii corecteaz
eventualele erori gasite
Activitatea este frontal.
Elevii urmresc explicaiile
profesorului, rspund
individual la ntrebrile din
testul iniial, formuleaz

Elevii
raspund la
ntrebari

NR.
CRT.

VERIGILE / ETAPELE
LECTIEI

CONINUT/ SISTEME DE ACIONARE

folosii la probleme de optimizare, cum ar fi: s se gseasc cea


mai bun ordine de executare a unor lucrri pe calculator, s se
gseasc cel mai scurt drum ntr-un graf etc.

DOZARE

FORMAII DE LUCRU I
INDICAII METODOLOGICE

OBSERVAII

ntrebri pentru unele


nelmuriri.

2. Cum se foloseste aceasta tehnic?


R. Pentru a rezolva problema o anumit problem, un algoritm
greedy construiete soluia pas cu pas. Iniial, mulimea
candidailor selectai este vid. La fiecare pas, ncercm s
adugm acestei mulimi cel mai potrivit element, conform
funciei de selecie. Dac, dup o astfel de adugare, mulimea de
elemente obinut nu mai poate duce la soluie, se elimin ultimul
element adugat; acesta nu va mai fi niciodat considerat. Dac,
dup adugare, mulimea de elemente selectate poate duce la
soluie, ultimul element adugat va rmne de acum ncolo n ea.
De fiecare dat cnd lrgim mulimea elementelor selectate,
verificm dac aceast mulime nu constituie o soluie posibil a
problemei noastre.
3. Algoritmul Greedy duce totdeauna la soluie optim?
R. Nu. Sunt situaii cnd soluia gsit nu este optim. Mai mult,
pentru cele mai multe din probleme nu se cunosc algoritmi Greedy
de rezolvare. Spre deosebire de Backtracking, algoritmul Greedy
nu permite atunci cnd s-a oservat c nu se poate ajunge la soluie
pentru o anumit secven de elemente, revenirea napoi, pe
nivelele anterioare.
Pentru problemele care nu duc la soluia optim este necesar s se
caute soluii, chiar dac nu optime, dar ct mai apropiate de
acestea.
4. S analizm, n paralel, cele dou tehnici, pentru a putea
stabili asemnrile i diferenele existente ntre ele

NR.
CRT.

VERIGILE / ETAPELE
LECTIEI

CONINUT/ SISTEME DE ACIONARE

DOZARE

FORMAII DE LUCRU I
INDICAII METODOLOGICE

OBSERVAII

R.

ambele tehnici ofer soluii sub form de vector;


tehnica Backtracking poate oferi toate soluiile problemei,
n timp ce tehnica Greedy ofer o singur soluie;
tehnica Greedy nu dispune de mecanismul ntoarcerii,
specific tehnicii backtracking.

5. Consecinele n aplicabilitatea lor


R. Consecina 1.
Este necesar ca cel care elaboreaz un algoritm Greedy s tie
faptul c, procednd n modul ales de el, ajunge la rezultatul dorit.
Pentru fiecare problem n parte, dupa ce se indentific un
algoritm, este obligatoriu s se demonstreze c acesta conduce la
soluia optim. Demonstraia faptului c se ajunge la soluia
optim este specific fiecrei probleme n parte.
Consecina 2.
Tehnica Greedy conduce la timp de calcul polinomial.
Motivul care conduce la acest timp de calcul, ine de mecanismul
tehnicii.S presupunem c mulimea din care se face alegerea are n
elemente i c soluia are tot n elemente (caz maxim). Se fac n
alegeri, la fiecare alegere se fac n teste, rezult un algoritm cu timp
O(n2).
6. Descrierea n pseudocod al algoritmului de rezolvare este
R.
function greedy(C)
{C este multimea candidatilor}
S {S este multimea in care construim solutia}
while not solutie(S) and C do
x un element din C care maximizeaza/minimizeaza select(x)
4

NR.
CRT.

VERIGILE / ETAPELE
LECTIEI

DOZARE

FORMAII DE LUCRU I
INDICAII METODOLOGICE

Scriu pe tabl titlul leciei i dictez enunul aplicaiei.


Avem la dispoziie unrucsac cu care se poate transporta o greutate
maxim G. Trebuie s alegem din n obiecte pentru care se cunoate
greutatea g i profitul p care se obine prin transportul obiectului i
2 minute
cu rucsacul.
S se determine obiectele care trebuiesc alese pentru transport
astfel nct profitul obinut s fie maxim, iar greutatea total a
acestora s nu depeasc G tiind c putem lua orice parte dintrun obiect.

Captarea ateniei i trezirea


interesului pentru lecie. Va
fi studiat o aplicaie
asemantoare celor de la ora
de teorie.

CONINUT/ SISTEME DE ACIONARE

OBSERVAII

C C \ {x}
if corect(S {x})
then S S {x}
if solutie(S)
then return S
else return nu exista solutie
7. Avantajul tehnicii Greedy este:
R. Avantajul timpului polinomial, conduce la necesitatea utilizrii
tehnicii Greedy. Din alt punct de vedere, nu tuturor problemelor li
se pot aplica algoritmi de acest tip. Ce este de fcut?
Pentru problemele pentru care nu se cunosc algoritmi care necesit
timp polinomial, se caut soluii, chiar dac nu optime, dar
apropiate de acestea, dar care au fost obinute n timp util. Multe
din aceste soluii sunt obinute cu Greedy.
Astfel de algoritmi se numesc algoritmi euristici.

Enunul aplicaiei

Elevii scriu
n caiete
titlul leciei
i enunul
aplicaiei

NR.
CRT.

VERIGILE / ETAPELE
LECTIEI

Comunicarea
cunotinelor i
discutarea modului de
rezolvare a aplicaiei

CONINUT/ SISTEME DE ACIONARE

DOZARE

Tabla este reprezentat sub forma unei matrici ptratice, cu n linii


25
i n coloane.
minute
Iniial matricea are toate elementele nule, iar poziiile arse vor avea
valoare -1 (se vor citi de la tastaura completand n matrice cu -1).
Calul se afl n poziia (xc, yc) iar regele n poziia (xr, yr) i calul
va trebui s deplaseze pe tabla astfel nct sa ajunga la rege, deci,
vom ajunge la o soluie dac calul poate ajunge la rege. Variabila k
va reine numrul mutrii.
Pentru a determina poziiile n care se poate muta calul, vom
utiliza doi vectori iniializai dx i dy, care memoreaz deplasrile
calului fa de poziia curent.

FORMAII DE LUCRU I
INDICAII METODOLOGICE

Frontal i individual.
Elevii vor urmri
prezentarea.
Elevii rspund la
ntrebri, ies la tabl,
formuleaz ei nii
ntrebri.
Profesorul va monitoriza
activitatea frontal i
individual.

OBSERVAII

Elevii scriu
n caietele de
notie,
deoarece
coninutul
explicaiilor
nu se
regsete n
manual

Avem:

5
(x-1,
y-2)

6
(x-2,
y-1)
poziia
curent
(x, y)

4
(x+1,
y-2)

Deci:

7
(x-2,
y+1)

3
(x+2,
y-1)

2
(x+2,
y+1)

8
(x-1,
y+2)
1
(x+1,
y+2)

dx=(1, 2, 2, 1, -1, -2, -2, -1);


dy=(2, 1, -1, -2, -2, -1, 1, 2);

Condiiile de continuare ( pentru punctul curent (x, y) ):

a[x,y=0 (ptrat liber);


x>=1 i x<=n; y>=1 i y<=n (deplasarea calului n interiorul
tablei)

NR.
CRT.

VERIGILE / ETAPELE
LECTIEI

CONINUT/ SISTEME DE ACIONARE

DOZARE

FORMAII DE LUCRU I
INDICAII METODOLOGICE

OBSERVAII

n program vom folosi urmtoarele funcii i proceduri:

sol(x,y) - funcie care decide dac s-a ajuns la o soluie


(x=xr and y=yr);
cont(x, y) - funcie care verific condiiile de continuare;
afisare - procedur care afieaz o soluie i determin
numrul de soluii.

Programul Pascal este:

program cal_rege;
const
dx:array[1..8] of integer=(1,2,2,1,-1,-2,-2,-1);
dy:array[1..8] of integer=(2,1,-1,-2,-2,-1,1,2);
var a:array[-1..22,-1..22] of integer;
n,m,j,i,nrsol:integer;
xc,yc,xr,yr,xa,ya:integer;
function cont(x,y:integer):boolean;
begin
cont:=true;
if (x<1) or (x>n) then cont:=false;
{prsete tabla pe x}
if (y<1) or (y>n) then cont:=false;
{prsete tabla pe y}
if a[x,y]<>0 then cont:=false;
{ptratul este ocupat}
end;
procedure afisare;
var i,j:integer;
begin
nrsol:=nrsol+1;
writeln('solutia ' ,nrsol);
for i:=1 to n do begin
for j:=1 to n do
write(a[i,j]:2,' ');
writeln;
end;

NR.
CRT.

VERIGILE / ETAPELE
LECTIEI

CONINUT/ SISTEME DE ACIONARE

DOZARE

FORMAII DE LUCRU I
INDICAII METODOLOGICE

OBSERVAII

readln;
end;
function sol(x,y:integer):boolean;
begin
sol:=(x=xr) and (y=yr);
end;
procedure backplan(x,y,k:integer);
var i,xx,yy:integer;
begin
if sol(x,y) then afisare
else for i:=1 to 8 do begin
xx:=x+dx[i];
yy:=y+dy[i];
if cont(xx,yy) then begin
a[xx,yy]:=k;
backplan(xx,yy,k+1);
a[xx,yy]:=0;
end;
end;
end;
BEGIN
write('Dimensiunea tablei: n='); readln(n);
for i:=1 to n do
for j:=1 to n do a[i,j]:=0;
writeln('Nr. de zone arse:'); readln(m);
for i:=1 to m do begin
write('Xa='); readln(xa);
write('Ya='); readln(ya);
a[i,j]:=-1;
end;
writeln('Coordonatele calului:');
write('Xc='); readln(xc);
write('Yc='); readln(yc);
writeln('Coordonatele Regelui:');
write('Xr='); readln(xr);
write('Yr='); readln(yr);
nrsol:=0; {nr numrul de soluii afiate}

NR.
CRT.

VERIGILE / ETAPELE
LECTIEI

CONINUT/ SISTEME DE ACIONARE

DOZARE

FORMAII DE LUCRU I
INDICAII METODOLOGICE

OBSERVAII

a[xc,yc]:=1;
{poziia de plecare a calului i prima mutare}
backplan(xc,yc,2);
if nrsol=0 then writeln(Nu sunt solutii);
end.

Se tasteaza programul. Se ruleza programul.


Se corecteaz eventualele erori.

Fixarea cunotinelor i
realizarea feed-back-ului

Notarea

Se scriu la tabla secvenele din program care nu au fost rezolvate


de catre toi elevii.
Se face o scurta recapitulare a principalelor noiuni :
1. Care sunt structurile de date_
10
2. Precizai care sunt condiiile de continuitate la aplicaia minute
studiata.
3. Cum se citesc date iniiale?
4. Cum se determina deplasarea calului?

Profesorul va monitoriza
modul de rezolvare a
aplicaiei.

Pe baza activitii elevilor se dau note.

Notele se trec n catalog, se


fac aprecieri verbale asupra
nivelului clasei

2 minute

Dac se
constat c nu
au fost
nelese unele
noiuni, se
reia
explicaia,
solicitnd
clasa.

Culegere, pag. 32, ex. 2.

Tema pentru acas

Un soldat avnd la dispoziie un detector de mine trebuie s


parcurg un teren minat, avnd forma unei table dreptunghiulare
1 minute
nxm. n fiecare ptrat poate fi plasat o min. Soldatul pornete
dintr-un col i trebuie s ajung n colul opus. S se determine
traseul cel mai scurt n care soldatul poate parcurge terenul.

Frontal i individual.

Elevi
noteaz tema
pentru acas.

Fi de lucru
1.
2.
3.
4.
5.
6.
7.
8.
9.

Cnd se folosete metoda Backtracking?


Cte soluii ofer aceast metod?
De cte feluri este metoda Backtracking?
Cnd se folosete metoda Backtracking n plan?
Precizai care sunt condiiile de continuitate la Backtracking n plan.
Care este rutina backtracking generalizat?
Ce rol are fiecare subprogram apelat de ctre rutina backtracking?
Care sunt avantajele metodei?
Care este dezavantajul metodei?

Un cal i un rege se afl pe o tabl de dimensiune nxn. Unele cmpuri sunt arse, poziiile lor fiind
cunoscute. Calul nu poate clca pe cmpuri arse, iar orice micare a calului face ca respectivul cmp s
devin ars. S se afle dac exist o succesiune de mutri permise, prin care calul s ajung la rege.
Un soldat avnd la dispoziie un detector de mine trebuie s parcurg un teren minat, avnd forma unei
table dreptunghiulare nxm. n fiecare ptrat poate fi plasat o min. Soldatul pornete dintr-un col i
trebuie s ajung n colul opus. S se determine traseul cel mai scurt n care soldatul poate parcurge
terenul.

Fi de lucru
1.
2.
3.
4.
5.
6.
7.
8.
9.

Cnd se folosete metoda Backtracking?


Cte soluii ofer aceast metod?
De cte feluri este metoda Backtracking?
Cnd se folosete metoda Backtracking n plan?
Precizai care sunt condiiile de continuitate la Backtracking n plan.
Care este rutina backtracking generalizat?
Ce rol are fiecare subprogram apelat de ctre rutina backtracking?
Care sunt avantajele metodei?
Care este dezavantajul metodei?

Un cal i un rege se afl pe o tabl de dimensiune nxn. Unele cmpuri sunt arse, poziiile lor fiind
cunoscute. Calul nu poate clca pe cmpuri arse, iar orice micare a calului face ca respectivul cmp s
devin ars. S se afle dac exist o succesiune de mutri permise, prin care calul s ajung la rege.
Un soldat avnd la dispoziie un detector de mine trebuie s parcurg un teren minat, avnd forma unei
table dreptunghiulare nxm. n fiecare ptrat poate fi plasat o min. Soldatul pornete dintr-un col i
trebuie s ajung n colul opus. S se determine traseul cel mai scurt n care soldatul poate parcurge
terenul.

10