Info - XI
Pagina conține materia pentru Informatică, profilul Mate-Info, Clasa a XI-a
Pagina conține materia pentru Informatică, profilul Mate-Info, Clasa a XI-a
2025-2026
Modulul 1
Recapitulare
Capitolul de recapitulare reia conceptele fundamentale despre vectori și matrici, evidențiind modul de declarare, parcurgere și prelucrare a acestora. Sunt prezentate exemple simple de algoritmi pentru operații de bază, utile ca fundament pentru teme mai avansate.
Vectori de Frecvență
Capitolul despre vectori de frecvență prezintă metoda de numărare a aparițiilor elementelor prin folosirea unui tablou auxiliar. Se arată cum se declară și se inițializează vectorul, cum se parcurg datele și se actualizează frecvențele. Exemplele includ șiruri de numere sau caractere, fiind utile pentru identificarea valorilor cele mai frecvente sau pentru compararea colecțiilor de date.
Șiruri de Caractere (Char)
Capitolul despre șiruri de caractere prezintă modul de reprezentare a textelor sub forma unui tablou de tip char, terminat cu caracterul nul '\0'. Se explică declararea și inițializarea șirurilor, modalitățile de citire și parcurgere, precum și accesul la elementele individuale. Sunt oferite exemple de funcții uzuale din biblioteca <cstring>, utile pentru copiere, concatenare, comparare sau căutare în texte.
Pointeri la Caractere
Capitolul despre pointeri la caractere prezintă modul de lucru cu adresele elementelor unui șir de tip char. Un pointer char* poate fi folosit pentru a parcurge șirul prin incrementare, accesând caracterele succesiv până la '\0'. Se explică diferența dintre numele șirului și un pointer explicit, precum și posibilitatea de a calcula distanța dintre doi pointeri din același text. Sunt oferite exemple practice de acces direct la caractere și de folosire a funcțiilor din <cstring> (strchr, strstr, strtok) care returnează pointeri.
Modulul 2
Fișiere Text
Fișierele text în C++ sunt folosite pentru a stoca și prelucra date în afara memoriei programului, permițând salvarea informațiilor chiar și după închiderea aplicației. Ele pot fi citite și scrise ușor, conținând date în format lizibil (numere, caractere, cuvinte). Sunt utile pentru lucrul cu volume mari de date, salvarea rezultatelor unor calcule, configurări sau schimb de informații între programe.
Subprograme
Subprogramele sunt fragmente de cod independente, care pot fi apelate din programul principal sau din alte subprograme. Ele au rolul de a împărți un program mare în părți mai mici și mai ușor de înțeles. Prin folosirea lor, codul devine mai organizat, mai clar și mai ușor de reutilizat. Există două tipuri principale: funcții (care returnează o valoare) și proceduri (care nu returnează valoare). În practică, subprogramele sunt folosite pentru a rezolva sarcini repetitive sau complexe printr-o singură apelare.
Recursivitate & Backtracking
Recursivitatea este o tehnică de programare în care o funcție se apelează pe ea însăși pentru a rezolva o problemă mai simplă. Orice funcție recursivă trebuie să aibă o condiție de oprire pentru a evita apelurile infinite. Backtracking-ul este o metodă de rezolvare care testează sistematic toate posibilitățile unei probleme. Când o soluție parțială nu este corectă, algoritmul revine la pasul anterior și încearcă altă variantă. Recursivitatea și backtracking-ul sunt folosite frecvent pentru probleme cu multe soluții posibile, precum permutările sau combinările.
Modulul 3
Structuri
Structurile sunt tipuri de date compuse care permit gruparea mai multor variabile de tipuri diferite sub un singur nume. Ele sunt folosite pentru a reprezenta entități reale, precum un elev, un produs sau un punct din plan, fiecare având mai multe caracteristici. Accesul la câmpurile unei structuri se face folosind operatorul punct. Structurile ajută la organizarea clară a datelor și la scrierea unor programe mai ușor de înțeles și întreținut. Sunt utilizate frecvent atunci când lucrăm cu date complexe sau colecții de informații legate între ele.
Liste
Listele sunt structuri de date dinamice formate din elemente legate între ele prin pointeri. Fiecare element al unei liste se numește nod și conține o valoare, precum și adresa următorului element. Spre deosebire de vectori, listele permit adăugarea și eliminarea elementelor fără a muta restul datelor din memorie. Parcurgerea unei liste se face secvențial, de la primul nod către ultimul. Listele sunt folosite atunci când dimensiunea datelor se modifică frecvent sau când inserările și ștergerile sunt importante.
Modulul 4
Liste II
Aprofundarea listelor înlănțuite presupune înțelegerea operațiilor fundamentale: crearea nodurilor, inserarea la început sau la sfârșit, ștergerea unui nod și parcurgerea listei. Fiecare operație implică manipularea atentă a pointerilor pentru a păstra legăturile corecte între noduri. Aceste cunoștințe sunt esențiale pentru rezolvarea problemelor în care structura datelor se modifică dinamic pe parcursul execuției programului.
Aprofundarea Cunoștințelor
Liste Circulare
Liste Dublu-Înlănțuite
Recapitulare Generală
Recapitularea generală reunește principalele concepte studiate: vectori, matrici, fișiere text, subprograme, recursivitate, pointeri, șiruri de caractere și structuri de date dinamice. Vectorii și matricile stochează date de același tip accesibile prin indici, iar șirurile de caractere sunt secvențe terminate cu \0. Subprogramele organizează codul în blocuri reutilizabile, recursivitatea rezolvă probleme prin autoapelare, iar pointerii permit manipularea dinamică a memoriei. Fișierele text asigură persistența datelor independent de execuția programului. Structurile dinamice, precum listele înlănțuite, folosesc pointeri pentru a lega nodurile, permițând inserări și ștergeri eficiente fără reorganizarea memoriei.
Fișiere Text
Vectori & Matrici
Șiruri de Caractere
Pointeri la Caractere
Subprograme
Recursivitate
Modulul 5
Teoria Grafurilor
Teoria grafurilor introduce noțiuni fundamentale precum noduri, muchii, grafuri neorientate și orientate, cicluri și arbori. Sunt analizate diferite modalități de reprezentare a grafurilor, precum listele de adiacență și matricile de adiacență. Elevii învață să identifice proprietăți ale grafurilor și să rezolve probleme bazate pe trasee, conectivitate și structuri arborescente. Accentul este pus pe modelarea situațiilor reale prin grafuri și pe dezvoltarea gândirii logice și algoritmice. Aceste cunoștințe constituie baza pentru studiul algoritmilor pe grafuri.
Teorie Generală
Grafuri Neorientate
Grafuri Orientate
Parcurgerea Grafurilor
Arbori
Teoria arborilor introduce noțiuni fundamentale precum noduri, muchii, rădăcină, niveluri, frunze și relații părinte–copil. Sunt analizate modalități de reprezentare a arborilor, inclusiv vectorul de tați și reprezentarea prin liste de fii. Elevii învață să identifice proprietăți ale arborilor și să rezolve probleme legate de structură, parcurgeri și ierarhii. Accentul este pus pe înțelegerea caracterului arborescent ca structură fără cicluri și pe modelarea relațiilor ierarhice. Aceste cunoștințe constituie baza pentru studiul algoritmilor pe arbori și structuri de date mai avansate.
Teorie Generală
Arbori Binari
Parcurgerea Arborilor