You are on page 1of 7

Unitatea de învățământ:

Profesor:Șandru Oana
Disciplina: Informatică
Clasa: a –XI –a, profil matematică - informatică
Nr. ore /săptămână: 4 oră
An şcolar:
Unitatea de învăţare: Recursivitate
Tema: Recursivitate
Durata: 50 min
Tipul lecţiei: Formarea şi consolidarea de deprinderi şi priceperi
Locul de desfăşurare: Laboratorul de informatică

Nivelul iniţial al clasei:


-elevii şi-au însuşit toate noţiunile teoretice legate de utilizarea recursivitati;
-elevii utilizează şi operează corect cu recursivitatea, scriu programele sursă, le
rulează şi depanează;

Obiectiv principal: Însuşirea şi înţelegerea noţiunii de recursivitate. Rezolvarea


corectă a exerciţiilor şi realizarea corectă a programelor.

Competenţe generale:
1. Dezvoltarea deprinderilor moderne de utilizator.
2. Cunoaşterea modului de utilizare a instrumentelor informatice.
3. Dezvoltarea deprinderilor de a lucra individual şi în echipă.
4. Elaborarea şi aplicarea unor algoritmi pentru a rezolva probleme specifice.
5. Înţelegerea impactului tehnologiilor informatice în societate, precum şi a
conexiunilor dintre informatică şi alte obiecte de studiu.

Obiective afective:
-să argumenteze corect alegerea unei variante;
-să aprecieze corect soluţiile oferite de ceilalţi membrii ai grupei;
-să se autoevalueze în raport cu obiectivele şi cu clasa;

Obiective psihomotorii:
-să utilizeze corect noţiunile teoretice însuşite;
-să implementeze algoritmi recursivi utilizând limbajul C++
Obiective operaţionale:
O1: Să-şi însuşească modul de funcţionare a recursivităţii directe şi să simuleze
pentru diverse exemple.
O2: Să-şi însuşească mecanismul recursivităţii şi să identifice condiţia de ieşire
din autoapeluri.
O3: Să analizeze corect fiecare problemă şi să dezvolte gândirea algoritmică,
logică, flexibilă, creatoare.
O4: Să selecteze variantele corecte şi să argumenteze alegerea unei anumite
forme în realizarea aplicaţiei.
O5: Să deducă avantajele şi dezavantajele recursivităţii pornind de la exemplele
studiate.

Strategii didactice

Principii didactice:
-principiul participării şi învăţă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;
-metode de acţiune: exerciţiul, învăţare prin descoperire;

Procedee de instruire:
-explicaţia în etapa de comunicare;
-învăţarea prin descoperire, prin rezolvare de probleme;
-problematizarea prin crearea situaţiilor problemă;
-conversaţia de consolidare în etapa de fixare a cunoştinţelor;

Forme de organizare: frontală şi individuală;

Forme de dirijarea a învăţării: dirijată de profesor sau independentă;

2
Resurse materiale:
-material bibliografic:
-Mioara Gheorghe, Constanţa Năstase, Monica Tătărâm – Manual pentru
clasa a- XI-a, Editura Corint, Bucureşti, 2005;
-Tudor Sorin, Manual pentru clasa a –IX-a, Editura L&S Infomat,
Bucureşti, 2000;
-Carmen Petre, Daniela Popa, Ştefania Crăciunoiu, Camelia Iliescu,
Metodica predării informaticii şi tehnologiei informaţiei, Editura Arves,
Craiova, 2002;
-Carmen Mincă, Caiet de laborator, clasa a X-a, profilul real,
Editura L&S Infomat, Bucureşti, 2006;

Metode de evaluare:
-evaluare iniţială: întrebări orale;
-set de aplicaţii;
-test de evaluare

Desfăşurarea lecţiei
Moment organizatoric:
Pregătirea lecţiei:
-întocmirea proiectului didactic;
-pregătirea setului de întrebări;
-pregătirea setului de aplicaţii;
-pregătirea temei;

Organizarea şi pregătirea clasei:


-verificarea frecvenţei;

Captarea atenţiei clasei:


-anunţarea subiectului pentru tema respectivă;
-anunţarea obiectivelor urmărite;
-anunţarea modului de desfăşurare a activităţii;

3
Verificarea temei şi reactualizarea cunoştinţelor elevilor:

Se realizează un set de întrebări pentru reactualizarea cunoştinţelor teoretice.


1. Ce este recursivitatea?
2. Care este avantajul folosirii unui algoritm recursiv în locul algoritmului
nerecursiv echivalent?
3. Ce se salvează pe stiva sistemului în urma apelului unui subprogram recursiv?
4. De câte feluri este recursivitatea?
5. Când este eficientă soluţia recursivă?
6. Există pentru orice algoritm recursiv unul iterativ care rezolvă aceeaşi
problemă?

Răspunsurile au fost:
1. Recursivitatea este o tehnică de programare de o importanţă deosebită.
2. Avantajul folosirii algoritmului recursiv este o formulare mai concisă.
3. Pe stivă se salvează adresa de revenire, variabilele locale şi parametrii
transmişi prin valoare.
4. Recursivitatea poate fi: directă sau indirectă.
5. Soluţia recursivă este eficientă numai dacă numărul de apeluri nu este mare.
6. Da.

Se verifică tema de acasă:


Problema

Un tren de marfă poate avea cel mult 20 vagoane. Fiecare vagon poate
transporta o încărcătură de maxim 5000 kg. Realizaţi un program pentru
rezolvarea următoarelor cerinţe:
a) introducerea şi afişarea încărcăturii fiecărui vagon;
b) afişarea vagoanelor încărcate la întreaga capacitate;
c) afişarea vagoanelor cu cea mai mică încărcătură.

Programul C++ este următorul:

4
#include<iostream>
using namespace std;
main()
{
int v[20],n,i,min;
cout<<"numar de vagoane"; cin>>n;
for(i=0;i<n;i++)
{
cout<<"v["<<i+1<<"]=";
cin>>v[i];
}
for(i=0;i<n;i++)
cout<<v[i]<<endl;
for(i=0;i<n;i++)
if(v[i]==5000)
cout<<"vagonul max "<<i+1<<endl;
min=v[0];
for(i=1;i<n;i++)
if(v[i]<min)
min=v[i];
for(i=0;i<n;i++)
if(v[i]==min)
cout<<"vagonul min "<<i+1<<endl;
}

În continuare propun spre rezolvare următoarea problemă:

Scrieţi un program care să citească un număr natural nenul n, un şir cu n numere


reale, şi care să insereze între oricare doi termeni consecutive ai şirului, media
aritmatică a acestora. Să se afişeze noul şir format.

Exemplu:
Dacă n=5 şi şirul este v=(-1, 3.4, 5, 7.6, 9), se va afişa noul şir cu termenii : -1
1.2 3.4 4.2 5 6.3 7.6 8.3 9 .

Programul C++ este :

5
#include<iostream>
using namespace std;
main()
{
float v[100],x,m;
int n,i,j=1;
cout<<"dati n=";
cin>>n;
cout<<"dati v[1]=";
cin>>v[1];
for (i=2;i<=n;i++)
{
cout<<"x=";
cin>>x;
m=(v[j]+x)/2;
v[++j]=m;
v[++j]=x;
}
for (i=1;i<=j;i++)
cout<<v[i]<<" ";
}

Test de evaluare

1. Avantajele folosirii unui algoritm recursiv în locul algoritmului nerecursiv, sunt:


 formulare mai concisă şi mai scurtă.
 economie a spaţiului de memorie necesar rulării.
 viteza mai mare de execuţie.
 Posibilitatea de a depista mai uşor erorile şi de a depana mai uşor
programul.

2. Ce se salvează pe stivă în urma apelului unui subprogram recursiv?


 Adresa de revenire, variabilele locale şi parametrii transmişi prin referinţă
(adresă).
 Adresa de revenire şi variabilele locale.
 Adresa de revenire, variabilele locale şi parametrii transmişi prin valoare.
 Variabilele locale şi parametrii transmişi prin valoare.

Tema pentru acasă:

6
Problema 1
Scrieţi un program pentru introducerea şi afişarea caracter cu caracter a
codului numeric personal.

Problema 2
Se cunoaşte temperatura înregistrată zilnic la staţia meteo locală, timp
de n zile. Scrieţi un program care să determine temperatura maximă,
temperatura minimă şi zilele în care a fost atinsă temperatura medie.
Construiţi datele de test pentru verificarea programului.

You might also like