Documente Academic
Documente Profesional
Documente Cultură
PROIECT DIDACTIC
Disciplina: INFORMATICĂ
Clasa: a XI-a, specializarea Matematică – Informatică
Profesor: .Fodor Emese
Unitatea de învăţare: Metode de programare
Timpul alocat: 100 minute
Tema: Aplicații la metoda de programare Divide et Impera
Tipul lecţiei: însuşire de noi cunoştinţe
Locul desfăşurării: Laboratorul de informatică
Competenţe generale:
1. Identificarea datelor care intervin într-o problemă şi aplicarea algoritmilor fundamentali de
prelucrare a acestora
2. Elaborarea algoritmilor de rezolvare a problemelor
3. Aplicarea algoritmilor fundamentali în prelucrarea datelor
4. Implementarea algoritmilor într-un limbaj de programare
Competenţe specifice:
C1. Analiza problemei în scopul identificării metodei de programare adecvate pentru
rezolvarea problemei
C2. Aplicarea creativă a metodelor de programare pentru rezolvarea unor probleme
intradisciplinare sau interdisciplinare, sau a unor probleme cu aplicabilitate practică
C3. Analizarea comparativă a eficienţei diferitelor metode de rezolvare a
aceleiaşi probleme şi alegerea celui mai eficient algoritm de rezolvare a unei probleme
1
Colegiul Tehnologic de Industrie Alimentară Arad
Obiective educaţionale:
Obiective cognitive:
să utilizeze corect noţiunile teoretice însuşite pentru a rezolvarea aplicaţii;
să compare între ele diferite metode rezolvare
Obiective afective:
să argumenteze anumite situaţii create în etapele de dezvoltare a unei aplicaţii;
să manifeste interes faţă de problemele propuse şi dorinţa de învăţare prin
descoperirea proprie a adevărului ştiinţific;
să aprecieze corect soluţiile oferite de ceilalţi colegi.
Obiective psihomotorii:
să-şi dezvolte gândirea logică, flexibilă, creatoare;
să-şi dezvolte atenţia concentrată şi spiritul de observaţie;
să utilizeze corect noţiunile teoretice însuşite.
Strategii didactice:
Principii didactice:
- principiul participării active
- principiul asigurării progresului gradat al performanţei
- principiul conexiunii inverse.
Metode de învăţământ:
- metode de comunicare orală: expunere, conversaţie, problematizare, algoritmizare,
modelare
- metode de acţiune: exerciţiul, învăţare prin descoperire, prin rezolvare de probleme
- problematizarea prin crearea situaţiilor problemă
- conversaţia de consolidare în toate etapele lecţiei
Metode de evaluare:
- evaluare iniţială: întrebări adresate frontal clasei, aplicaţii practice
- set de aplicaţii
Momentele lecţiei:
Moment organizatoric:
o Pregătirea lecţiei:
întocmirea proiectului didactic
pregătirea setului de întrebări
pregătirea setului de aplicaţii
pregătirea temei
o Organizarea şi pregătirea clasei: verificarea frecvenţei
o Captarea atenţiei clasei:
anunţarea subiectului lecției;
anunţarea obiectivelor urmărite;
anunţarea modului de desfăşurare al activităţii
Reactualizarea cunoştinţelor
Se desfăşoară o scurtă conversaţie introductivă, reactualizarea cunoştinţelor făcându-
se apoi treptat, pe măsură ce vor fi întâlnite diverse situaţii.
Evaluarea în etapa de reactualizare se realizează frontal.
Pot fi identificate trei etape în rezolvarea unei probleme folosind Divide et Impera:
1. Divide, descompunera problemei în două (sau mai multe) subprobleme
3
Colegiul Tehnologic de Industrie Alimentară Arad
#include <iostream>
using namespace std;
int v[10],n;
int main( )
4
Colegiul Tehnologic de Industrie Alimentară Arad
{
cin>>n;
for (int i=1; i<=n; i++)
{
cin>>v[i];
}
cout<<max(1,n);
return 0;
}
2. Căutare binară
dacă valoarea x este mai mică decât valoarea componentei testate (cea de pe
poziţia din mijloc), înseamnă că x se poate afla numai pe una din poziţiile
din partea stângă, cu indice între s şi m - 1, se reapelează funcţia cu aceşti
parametri;
dacă valoarea x este mai mare decât valoarea componentei testate (cea de pe
poziţia din mijloc), înseamnă că x se poate afla numai pe una din poziţiile
5
Colegiul Tehnologic de Industrie Alimentară Arad
Întrucât vectorul este sortat, căutarea se va face în continuarea pasului curent, într-o
problemă de dimensiune egală cu jumătatea celei curente. În consecință, complexitatea
acestui algoritm va fi mult mai mică decât cea a unei căutări secvențiale, și anume
O(log2n). Ex: pentru un n=210, căutarea se va finaliza după maxim 10 operații și nu 1024
ca în cazul celălalt!
#include <iostream>
using namespace std;
int v[100], n,x;
6
Colegiul Tehnologic de Industrie Alimentară Arad
cin>>n;
for (int i=1; i<=n; i++)
{
cin>>v[i];
}
cin>>x;
cauta (1,n);
return 0;
}
#include <iostream>
using namespace std;
7
Colegiul Tehnologic de Industrie Alimentară Arad
return 0;
}
int main()
{
int x[25001],n,m,i,a;
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
cin>>m;
for(i=1;i<=m;i++)
{
cin>>a;
if(caut(x,1,n,a))
cout<<1<<" ";
else
cout<<0<<" ";
}
return 0;
}
Activitatea profesorului
Profesorul va propune elevilor recapitularea cunoştinţelor cu ajutorul întrebărilor.
Etapa de comunicare a noilor cunoştinţe va consta într-o combinaţie de aplicaţii
practice şi scurte definiţii.
Pentru fixarea cunoştinţelor, profesorul va propune elevilor un set de probleme ce vor
fi rezolvate cu Divide et Impera.
Activitatea elevilor
Elevii ar trebui să răspundă corect întrebărilor adresate lor de către profesor (oral sau la
tablă, ori pe calculator). Ei vor îndeplini sarcinile de lucru. Vor lua notiţe.
8
Colegiul Tehnologic de Industrie Alimentară Arad
Metoda Divide et Impera ("dezbină și cucerește") constă în împărţirea repetată a unei probleme de dimensiuni
mari în mai multe subprobleme de acelaşi tip, urmată de rezolvarea acestora şi combinarea rezultatelor obţinute pentru a
determina rezultatul corespunzător problemei iniţiale. Pentru fiecare subproblemă procedăm în acelaşi mod, cu excepţia
cazului în care dimensiunea ei este suficient de mică pentru a fi rezolvată direct.
Este evident caracterul recursiv al acestei metode.
Căutare binară: Se consideră vectorul a=(a1, ...,an) ordonat crescător şi o valoare x. Se cere să se determine dacă
x apare printre componentele vectorului.
Ţinând cont de faptul că a este ordonat crescător, îl vom compara pe x cu elementul din "mijlocul" vectorului.
Dacă avem egalitate, algoritmul se încheie; în caz contrar vom lucra fie pe "jumătatea" din stânga, fie pe cea din dreapta în
funcție de valoarea lui x față de mijloc: dacă x este mai mic atunci se va regăsi în partea dreaptă, dacă este mai mare se va
regăsi în partea stângă.
și x= 1 1 1 1 1 1
0 2 3 5 7 8 9 0 2 3 5 7
șirul de valori comparate cu x va fi:
9 1 1
3 0
Vom folosi regula înmulțirii puterilor cu aceiași bază: ab/2 * ab/2 = ab/2+b/2 = ab
De exemplu 2 6 = 23 * 23
26
23 23 =64
2 22 =8
2 2 =4
9
Colegiul Tehnologic de Industrie Alimentară Arad
1. Cerința problemei
Gigel vrea să își cumpere o casă în noul cartier construit la marginea orașului. Grădinile puse la dispoziție de
dezvoltator sunt sub forma unui pătrat de latură 2 n (probabil dezvoltatorul este pasionat de informatică). Ca să paveze
gradina el are la dispoziție dale sub forma:
Pe o suprafață pătratică de 1 m2 dezvoltatorul va planta un pom. Gigel se gândește și știe deja unde o să fie poziționat
pomul în grădină.
Noi trebuie să îl ajutăm pe Gigel să aibă grădina mult visată.
Date de ieșire: În fișierul date.out se vor afișa 2n linii ce conțin, fiecare, 2n numere ce reprezintă numerotarea dalelor
folosite. Locul unde este copacul se va marca cu 0.
2. Exemple
1
111 0 1
1 1 1 1
n=2, deci latura va fi de 22 , i=2, j=3, deci copacul va fi
pe poziția 2 3
2 2 3 3
2 2 3 3
223
2 1 0 3 2 1 3
4 1 1 5
4 1 1 5
4 4 5 5
4 4 5 5
3. Exercițiul 1
După modelul exemplului dat găsiți datele de ieșire pentru date de intrare 2 3 4
Fișa C
1. În care din următoarele povești se folosește metoda Divide et Impera?
a. Făt Frumos vrea să culeagă un măr de aur din grădina a tatalui său. Se duce la acesta să ia cheia de la poarta
grădinii. Tatăl său ii spune că nu sunt cheile la el ți îl trimite la împărăteasă. Împărăteasa îi spune că îi dă cheile
dacă îi aduce, din camera ei ghergheful. Cheile de la cameră sunt la jupâneasă. Făt Frumos se duce la jupâneasă, ia
cheile de la cameră, se întoarce și duce ghergheful împărătesei, ia cheile de la gradină, se întoarce la porțile
grădinei și obține, mulțumit, mărul.
b. Cei șapte pitici prieteni cu Alba ca Zăpada au nevoie de cât mai mult aur ca să îi confecționeze prietenei lor un
colier. Ca să îl obțină trebuie să sape pe o suprafață cât mai mare în mină. Așa că pornesc dintr-un tunel pe care îl
împart în 2, apoi primul tunel îl împart din nou în alte 2 tuneluri, pe care le împart din nou, pe fiecare, în 2 tuneluri
noi. Al doilea tunel, care este format din tunelul inițial, îl împart și pe acesta în 2 și ultimul tunel este din nou
împărțit (acum fiecare pitic sapă în tunelul său). La sfârșitul zilei au ieșit din mină cu destul aur și s-au bucurat
tare.
c. Cenușăreasa are de făcut curat în toata casa. Ea începe de la etaj și face curățenie în prima cameră, apoi a doua
cameră etc până când termină toate camerele de la etaj. După care coboară la parter și face curățenie în prima
cameră, apoi a doua cameră etc până când termină toate camerele de la parter.
2. Care din următoarele afirmații despre metoda Divide et Impera sunt adevărate și care sunt false?
a. Pentru a calcula suma elementelor pare dintr-un vector nu se poate folosi această metodă
b. Se bazează pe tehnica recursivității
c. Pentru a calcula maximul elementelor unui vector folosind această metodă se ia fiecare element în parte, de la
primul la ultimul și se verifică dacă este cel mai mare
3. Andreea are un șir de mărgele pe care sunt puse: o mărgea în formă de romb, o mărgea în formă de pătrat,
o mărgea în formă de triunghi, o mărgea în formă de romb, o mărgea în formă de pătrat, o mărgea în
formă de triunghi etc. Ea taie șirul în două, ia margeaua din mijloc și dă deoparte prima jumătate din șir,
apoi repetă operația de încă 2 ori, rămânând o singură mărgică pe care, bineînțeles, o ia. Știind că de
fiecare dată obține un nou șir cu număr impar de mărgele, care sunt mărgelele luate și în ce ordine?
a)
b)
c)
Barem
1. b
2. fals; adevărat; fals
3. a
FIŞĂ DE LUCRU
DIVIDE ET IMPERA
1. Produsul a n numere
11
Colegiul Tehnologic de Industrie Alimentară Arad
6. Numere pozitive
12