Fise Informatica - Liceu
Problemă, Algoritm, Program 1
1. Obiectivele lecției: 2. Conținutul lecției: Ce este o problemă? Ce este un algoritm? Legătura dintre algoritm și program 3. Exemple practice: Exemplu 1: Algoritm pentru calcularea sumei a două numere Problema: Calculează suma a două numere introduse de utilizator. Algoritm: Pseudocod: Intrare: numar1, numar2 Calcul: suma = numar1 + numar2 Ieșire: Afișează suma Cod...
Principiile programării structurate 2
1. Obiectivele lecției: 2. Conținutul lecției: Ce este programarea structurată? Principiile programării structurate: Legătura cu limbajul C++: C++ este un limbaj care permite scrierea programelor structurate folosind structuri de control și modularizare. 3. Exemple practice: Exemplu 1: Secvența Problema: Calcularea ariei unui dreptunghi. Cod în C++: #include <iostream> using namespace std; int main() { ...
Structurile Fundamentale ale Algoritmului 3
1. Obiectivele lecției: 2. Conținutul lecției: Ce sunt structurile fundamentale ale algoritmului? 3. Structurile fundamentale explicate: 1. Secvența #include <iostream> using namespace std; int main() { int a = 5, b = 10, suma; // Secvența suma = a + b; cout << „Suma este: ” << suma << endl; ...
Structura Liniară 4
1. Obiectivele lecției: 2. Conținutul lecției: Ce este structura liniară? Importanța structurii liniare: 3. Exemple practice: Exemplu 1: Calcularea perimetrului unui dreptunghi Problema: Calculează perimetrul unui dreptunghi având lungimea și lățimea date. Algoritm: Cod în C++: #include <iostream> using namespace std; int main() { double lungime, latime, perimetru; cout << „Introdu lungimea dreptunghiului:...
Structura Alternativă 5
1. Obiectivele lecției: 2. Conținutul lecției: Ce este structura alternativă? Tipuri de structuri alternative: if (condiție) { // Cod de executat dacă condiția este adevărată } if (condiție) { // Cod de executat dacă condiția este adevărată } else { // Cod de executat dacă condiția este falsă } switch (variabilă) {...
Structura Repetitivă 6
1. Obiectivele lecției: 2. Conținutul lecției: Ce este structura repetitivă? Tipuri de structuri repetitive: while (condiție) { // Cod executat cât timp condiția este adevărată } do { // Cod executat cel puțin o dată } while (condiție); for (inițializare; condiție; actualizare) { // Cod executat } 3. Exemple practice: Exemplu 1:...
Algoritmi Elementari – Determinarea Minimului/Maximului 7
1. Obiectivele lecției: 2. Conținutul lecției: Ce reprezintă determinarea minimului și maximului? 3. Algoritmul general: Pseudocod pentru minim: Intrare: Lista de n numere Inițializează minim = primul element al listei Pentru fiecare element din listă: Dacă elementul curent < minim: minim = elementul curent Ieșire: Afișează minim Pseudocod pentru maxim: Intrare: Lista de...
Algoritmi Elementari – Algoritmi pentru Interschimbare 8
1. Obiectivele lecției: 2. Conținutul lecției: Ce reprezintă interschimbarea? 3. Metode de interschimbare: Metoda 1: Cu variabilă auxiliară temp = a a = b b = temp #include <iostream> using namespace std; int main() { int a, b, temp; cout << „Introdu valoarea lui a: „; cin >> a; cout <<...
Algoritmi Elementari – Calcularea C.M.M.D.C. (Cel Mai Mare Divizor Comun) 9
1. Obiectivele lecției: 2. Conținutul lecției: Ce este C.M.M.D.C.? 3. Metode de calculare a C.M.M.D.C.: Metoda 1: Scăderile repetate Intrare: a, b Cât timp a ≠ b: Dacă a > b: a = a – b Altfel: b = b – a Ieșire: a (sau b) #include <iostream> using namespace std;...
Algoritmi Elementari – Extragerea Cifrelor unui Număr 10
1. Obiectivele lecției: 2. Conținutul lecției: Ce reprezintă extragerea cifrelor unui număr? 3. Metoda generală: Principiul de bază: cifra = numar % 10. numar = numar / 10. Pseudocod: Intrare: numar Cât timp numar ≠ 0: cifra = numar % 10 numar = numar / 10 Afișează cifra 4. Exemple practice: Exemplu...
Algoritmi Elementari – Testarea unui Număr Prim 11
1. Obiectivele lecției: 2. Conținutul lecției: Ce este un număr prim? 3. Algoritmul general: Principiul de bază: Pseudocod pentru testarea unui număr prim: Intrare: n Dacă n < 2, atunci Nu este prim Pentru i de la 2 la √n: Dacă n % i == 0, atunci Nu este prim Este prim...
Algoritmi Elementari – Generarea Șirurilor Recurente 12
1. Obiectivele lecției: 2. Conținutul lecției: Ce este un șir recurent? 3. Exemple de șiruri recurente și algoritmi: Exemplu 1: Generarea șirului Fibonacci #include <iostream> using namespace std; int main() { int n; cout << „Introdu numarul de termeni din sirul Fibonacci: „; cin >> n; int f0 = 0, f1...
Algoritmi de Sortare – Sortarea prin Metoda Bulelor 13
1. Obiectivele lecției: 2. Conținutul lecției: Ce este sortarea prin metoda bulelor? Pasii metodei: Pseudocod: Intrare: Lista de n elemente Pentru i de la 0 la n-1: Pentru j de la 0 la n-i-2: Dacă lista[j] > lista[j+1], atunci Interschimbă lista[j] cu lista[j+1] Ieșire: Lista sortată 3. Cod în C++: #include <iostream>...
Algoritmi de Sortare – Sortarea prin Inserție 14
1. Obiectivele lecției: 2. Conținutul lecției: Ce este sortarea prin inserție? Cum funcționează? Pseudocod: Intrare: Lista de n elemente Pentru i de la 1 la n-1: Elementul curent = lista[i] j = i – 1 Cât timp j >= 0 și lista[j] > Elementul curent: lista[j + 1] = lista[j] ...
Algoritmi de Sortare – Sortarea prin Selecția Minimului 15
1. Obiectivele lecției: 2. Conținutul lecției: Ce este sortarea prin selecția minimului? Cum funcționează? Pseudocod: Intrare: Lista de n elemente Pentru i de la 0 la n-1: minIndex = i Pentru j de la i+1 la n-1: Dacă lista[j] < lista[minIndex], atunci minIndex = j Interschimbă lista[i] cu lista[minIndex] Ieșire:...
Algoritmi de Sortare – Sortarea prin Numărare (Counting Sort) 16
1. Obiectivele lecției: 2. Conținutul lecției: Ce este sortarea prin numărare? Cum funcționează? Pseudocod: Intrare: Lista de n elemente, valoare_maximă Creează un tablou count de dimensiune valoare_maximă + 1 Initializează count[i] = 0 pentru toate valorile i Pentru fiecare element x din lista: Increment count[x] Reconstruiește lista sortată: Pentru i de la 0...
Algoritmul de Interclasare (Merge Sort) 17
1. Obiectivele lecției: 2. Conținutul lecției: Ce este interclasarea? Algoritmul Merge Sort: Pseudocod pentru Merge Sort: Funcție mergeSort(lista): Dacă dimensiunea listei <= 1: Returnează lista Împarte lista în două subliste: stânga și dreapta stânga_sortată = mergeSort(stânga) dreapta_sortată = mergeSort(dreapta) Returnează merge(stânga_sortată, dreapta_sortată) Funcție merge(stânga, dreapta): Creează o listă...
Algoritmi de Căutare – Căutarea Secvențială 18
1. Obiectivele lecției: 2. Conținutul lecției: Ce este căutarea secvențială? Cum funcționează? Pseudocod: Intrare: vector, dimensiune, valoare_cautata Pentru i de la 0 la dimensiune – 1: Dacă vector[i] == valoare_cautata: Returnează i Returnează -1 (valoarea nu a fost găsită) 3. Cod în C++: Exemplu de bază: #include <iostream> using namespace std; int cautareSecventiala(int...
Algoritmi de Căutare – Căutarea Binara 19
1. Obiectivele lecției: 2. Conținutul lecției: Ce este căutarea binară? Cum funcționează? Pseudocod: Intrare: vector sortat, dimensiune, valoare_cautata Inițializează left = 0, right = dimensiune – 1 Cât timp left <= right: Calculează mid = (left + right) / 2 Dacă vector[mid] == valoare_cautata: Returnează mid Dacă vector[mid] < valoare_cautata: ...
Analiza Complexității unui Algoritm 20
1. Obiectivele lecției: 2. Conținutul lecției: Ce este complexitatea unui algoritm? Tipuri de complexitate: Notări comune: 3. Analiza complexității temporale: Pasul 1: Identificarea operațiilor critice Operațiile critice sunt cele care determină timpul total de execuție al algoritmului, cum ar fi comparațiile, atribuțiile sau iterațiile. Pasul 2: Determinarea numărului de operații în funcție de intrare Complexități...
Limbajul C++ – Elemente de bază ale limbajului de programare C++ 21
1. Obiectivele lecției: 2. Conținutul lecției: Ce este C++? Structura de bază a unui program C++ #include <iostream> using namespace std; int main() { cout << „Salut, lume!” << endl; // Afișare mesaj pe ecran return 0; } Explicație: Elementele de bază ale limbajului C++ 1. Comentarii // Acesta este un comentariu pe...
Limbajul C++ – Tipurile de Date 22
1. Obiectivele lecției: 2. Conținutul lecției: Ce sunt tipurile de date? Tipuri fundamentale în C++ 1. Tipuri numerice Tip Descriere Dimensiune tipică (în bytes) Valoare implicită Exemple int Număr întreg 4 0 int x = 5; float Număr real (precizie simplă) 4 0.0 float y = 3.14; double Număr real (precizie dublă) 8 0.0 double...
Inserarea unei valori într-un vector în C++ 23
1. Obiectivele lecției: 2. Conținutul lecției: Ce este un vector? Inserarea unei valori într-un vector 1. Principiu: 2. Pași pentru inserare: Pseudocod: Intrare: vector, dimensiune, pozitie, valoare Dacă pozitie < 0 sau pozitie > dimensiune: Afișează eroare Altfel: Pentru i = dimensiune – 1 la pozitie: vector[i + 1] = vector[i] ...
Problema Ștergerii unui Element din Vector în C++ 24
1. Obiectivele lecției: 2. Conținutul lecției: Ce înseamnă ștergerea unui element dintr-un vector? Ștergerea unui element într-un vector 1. Principiu: 2. Pași pentru ștergere: Pseudocod: Intrare: vector, dimensiune, pozitie Dacă pozitie < 0 sau pozitie >= dimensiune: Afișează eroare Altfel: Pentru i = pozitie la dimensiune – 2: vector[i] = vector[i +...
Problema Permutării Circulare la Stânga într-un Vector în C++ 25
1. Obiectivele lecției: 2. Conținutul lecției: Ce este permutarea circulară la stânga? Pașii algoritmului pentru permutare circulară la stânga Pseudocod: Intrare: vector, dimensiune Stochează vector[0] în temp Pentru i = 1 la dimensiune – 1: vector[i – 1] = vector[i] vector[dimensiune – 1] = temp Ieșire: vector permutat 3. Cod în C++ Exemplu 1:...
Problema Permutării Circulare la Dreapta într-un Vector în C++ 26
1. Obiectivele lecției: 2. Conținutul lecției: Ce este permutarea circulară la dreapta? Pașii algoritmului pentru permutare circulară la dreapta Pseudocod: Intrare: vector, dimensiune Stochează vector[dimensiune – 1] în temp Pentru i = dimensiune – 2 la 0: vector[i + 1] = vector[i] vector[0] = temp Ieșire: vector permutat 3. Cod în C++ Exemplu 1:...
Tablouri Bidimensionale (Matrice) în C++ 27
1. Obiectivele lecției: 2. Conținutul lecției: Ce este un tablou bidimensional? Declararea și inițializarea unei matrice tip_de_date nume[rânduri][coloane]; int mat[2][3] = { {1, 2, 3}, {4, 5, 6} }; int mat[2][3] = {0}; // Toate elementele sunt 0. mat[i][j]; // Accesarea elementului de la rândul i și coloana j. Traversarea unei matrice Pentru...
Ștergerea unei linii și a unei coloane dintr-o matrice în C++ 28
1. Obiectivele lecției: 2. Conținutul lecției: Conceptul de ștergere a unei linii și a unei coloane Pașii algoritmului: Pentru ștergerea unei linii: Pentru ștergerea unei coloane: Pseudocod: Ștergere linie: Pentru i de la linie la nr_rânduri – 2: Pentru j de la 0 la nr_coloane – 1: matrice[i][j] = matrice[i + 1][j] nr_rânduri–...
Parcurgerea unei Matrice în Spirală în C++ 29
1. Obiectivele lecției: 2. Conținutul lecției: Ce înseamnă parcurgerea în spirală? Algoritmul de parcurgere în spirală Pseudocod: sus = 0, jos = n – 1 stânga = 0, dreapta = m – 1 Cât timp sus <= jos și stânga <= dreapta: – Parcurge linia `sus` de la `stânga` la `dreapta`, apoi `sus++` ...
Afișarea Elementelor unei Matrice în Funcție de Diagonala Principală 30
1. Obiectivele lecției: 2. Conținutul lecției: Ce este diagonala principală a unei matrice? Algoritmul pentru identificarea poziției elementelor 3. Cod în C++ Exemplu 1: Afișarea elementelor pe diagonala principală #include <iostream> using namespace std; void afisareDiagonalaPrincipala(int mat[][4], int dim) { cout << „Elementele de pe diagonala principala sunt: „; for (int i =...
Afișarea Elementelor unei Matrice în Funcție de Diagonala Secundară 31
1. Obiectivele lecției: 2. Conținutul lecției: Ce este diagonala secundară a unei matrice? Algoritmul pentru identificarea poziției elementelor 3. Cod în C++ Exemplu 1: Afișarea elementelor pe diagonala secundară #include <iostream> using namespace std; void afisareDiagonalaSecundara(int mat[][4], int dim) { cout << „Elementele de pe diagonala secundara sunt: „; for (int i =...
Afișarea Elementelor unei Matrice în Funcție de Zone 32
1. Obiectivele lecției: 2. Conținutul lecției: Definirea zonelor în matrice O matrice pătratică de dimensiune n×nn poate fi împărțită în mai multe zone, în funcție de pozițiile relative ale elementelor față de diagonalele principale și secundare: Algoritmul pentru identificarea elementelor în funcție de zone 3. Cod în C++ Exemplu: Afișarea elementelor în funcție de zone...