PROIECT DIDACTIC
Disciplina: Informatică
Clasa: a X-a
Student: Duca Rareș
Unitatea de învăţare: Tipuri structurate de date. Tipul tablou.
Tema: Tablouri unidimensionale (vectori)
Tipul lecţiei: Fixare şi consolidare (Mixtă)
Locul de desfăşurare: Laboratorul de informatică
Nivelul iniţial al clasei:
Elevii şi-au însuşit toate noţiunile teoretice despre structura unui program în C+
+;
Elevii şi-au însuşit noţiunile despre instrucţiunile de selecţie şi repetitive;
Elevii şi-au însuşit cunoştinţele despre tablourile unidimensionale (definiţie,
indice, componentă, declarare, nr. maxim de elemente, nr. efectiv de elemente,
parcurgerea, citirea şi afişarea).
Obiective cadru: realizarea de programe atractive şi utile prin utilizarea tipului vector
(tablou unidimensional).
Obiective referinţă: să utilizeze tipul tablou unidimensional în programe specifice.
Obiective educaţionale:
Obiective cognitive:
Elevii vor şti:
Să dovedească trăinicia noţiunilor dobândite la disciplina respectivă, la lecţia
curentă;
Să folosească corect tipul tablou unidimensional.
Obiective afective:
Elevii vor şti:
Să aleagă corect programele care se pot rezolva prin utilizarea tipului tablou
unidimensional;
Să aprecieze corect soluţiile oferite de colegi;
Să se implice cu plăcere şi interes la toate etapele lecţiei;
Să se bucure de rezultatele muncii depuse.
1
Obiective psihomotorii:
Să utilizeze corect noţiunile teoretice însuşite anterior;
Să-şi formeze deprinderi de lucru specifice temei de studiu;
Să-şi dezvolte gândirea logică, capacitatea de generalizare şi problematizare.
Obiective operaţionale:
Elevii vor ști:
Să declare corect o variabilă de tipul tablou unidimensional;
Să parcurgă, citească sau să afişeze corect variabilele de tip tablou
unidimensional.
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 rezolvarea de aplicaţii;
- conversaţia de consolidare în etapa de fixare a cunoştinţelor.
Forme de organizare: frontală şi individuală.
Forme de dirijare a învăţării: dirijată de profesor.
Resurse materiale:
Material bibliografic:
- Mariana Miloșescu – Informatică, manual pentru clasa a X-a, Editura Didactică și
Pedagogică, 2016;
- Fişe de lucru.
Metode de evaluare:
- evaluare iniţială: întrebări orale;
- set de aplicaţii.
Desfăşurarea lecţiei:
Moment organizatoric:
2
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.
Reactualizarea cunoştinţelor:
Întrebare Răspuns aşteptat
1. Ce este un tablou unidimensional? Un şir de elemente de acelaşi tip, în care contează
ordinea elementelor.
2. Dacă notăm cu v variabila vector, Prin v[i] înţelegem elementul de pe poziţia i în vector.
ce înţelegem prin v[i]?
3. Cum se mai numeşte poziţia unui Poziţia unui element se mai numeşte şi indicele
element? Dar elementele vectorului elementului, iar elementele se mai numesc şi
cum se mai numesc? componentele vectorului.
4. Cum se declară un vector? tip_componente nume_tablou[nr_max_elemente];
6. Ce este nr. maxim de elemente? Nr. maxim de elemente – cel mai mare număr de
Dar nr. real (efectiv)? elemente care s-ar putea memora în vectorul respectiv.
Nr. real – nr. elementelor efectiv folosite, care diferă de
la o execuţie la alta.
7. Ce întelegem prin parcurgerea unui Prin parcurgerea unui vector înţelegem vizitarea
vector? element cu element şi prelucrarea acestora.
8. Care este secvenţa C++ care for (i = 0; i < n; i++)/* dacă indexarea pornește de la 1
parcurge un vector v? vom scrie expresia de inițializare i = 1, iar expresia de
continuare devine i <= n; */
prelucreaza elementul v[i];
9. În câte etape se realizează citirea 1. Se citeşte numărul efectiv de elemente.
unui vector? 2. Se citesc elementele vectorului pe rând.
10. Care este secvenţa C++ care for (i = 0; i < n; i++)
citeşte un vector v?
3
cin >> v[i];
11. Care este secvenţa C++ care for (i = 0; i < n; i++)
afişează un vector v? cout << v[i] << ' ';
Observație importantă:
Dacă variabila contor, i, nu a fost declarată global, atunci se va declara local:
for (int i = 0; i < n; i++) sau for (int i = 1; i <= n; i++)
Fixarea şi consolidarea cunoştinţelor:
Se verifică tema pentru acasă:
1. Se dă un vector cu n componente întregi. Afişaţi media aritmetică a componentelor
vectorului.
Ex: pentru n=4 şi vectorul cu componentele: 7, 2, 5, 1 se va afişa Ma=3.75.
Se propun spre rezolvare următoarele probleme:
1. Se citeşte de la tastatură un vector cu n componente întregi. Se cere să se calculeze
suma componentelor negative, produsul componentelor pozitive şi numărul
componentelor nule.
Ex: pt n=7 şi vectorul cu componentele: 4, 0, 3, 0, -1, -3, 2 se va afişa: s=-4, nr=2, p=24.
#include <iostream>
Rezolvare așteptată:
Rezolvare cu citirea elementelor și Rezolvare cu prelucrarea componentelor la
prelucrarea lor ulterioară: citire:
#include <iostream> #include <iostream>
using namespace std; using namespace std;
int main() int main()
{ {
int v[101], n, s=0, p=1, nr; int v[101], n, s=0, p=1, nr;
cin >> n; cin >> n;
for (int i = 0; i < n; i++) for (int i = 0; i < n; i++)
cin >> v[i]; {
for (int i = 0; i < n; i++) cin >> v[i];
if (v[i] < 0) s += v[i]; if (v[i] < 0) s += v[i];
else else
if (v[i] > 0) p *=v[i]; if (v[i] > 0) p *=v[i];
else nr ++; else nr ++;
}
cout << s << ' ' << nr << ' ' << p ; cout << s << ' ' << nr << ' ' << p ;
4
return 0; return 0;
} }
2. Se citeşte de la tastatură un vector cu n componente întregi. Afişaţi maximul
elementelor din vector.
Ex: pentru n=4 şi vectorul cu componentele: 7, 2, 5, 1 se va afişa M=7
Rezolvare cu citirea elementelor și Rezolvare cu prelucrarea componentelor la
prelucrarea lor ulterioară: citire:
#include <iostream> #include <iostream>
using namespace std; using namespace std;
int main() int main()
{ {
int v[101], n, max=0; int v[101], n, max=0;
cin >> n; cin >> n;
for (int i = 0; i < n; i++) for (int i = 0; i < n; i++)
cin >> v[i]; { cin >> v[i];
for (int i = 0; i < n; i++) if (v[i] > max) max = v[i];
if (v[i] > max) max = v[i]; }
cout << max; cout << max;
return 0; return 0;
} }