Contact și feedback

Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.


Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.


Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.

Shortcuturi

Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.

Generale

Meniu shortcuturi?
Căutare probleme sau utilizatori/
Navigare printre rezultatele căutării↑, ↓
Meniu de contact și feedbackCTRL + Shift + F
Ieșire din meniuriEsc

Editor probleme

Setări editorCTRL + Shift + S
Schimbare stil editorCTRL + Shift + E
Șabloane de codCTRL + Shift + 1/2/3
Golire editorCTRL + Shift + 4

Materia pentru olimpiada de informatică - tot ce trebuie să știi

Această pagină conține programa olimpiadei de informatică. Deși această listă nu este oficială (deoarece ministerul nu precizează exact ce se poate da la olimpiadă), îți oferim o listă cu posibile subiecte ce se pot da și care s-au dat în anii anteriori, atât pentru gimnaziu (clasele V-VIII) cât și pentru liceu (clasele IX-XI, clasa a XII-a având aceeași materie ca la clasa a XI-a). Această listă se aplică atât pentru olimpiade, cât și pentru majoritatea concursurilor de nivel județean, interjudețean sau național.

Lista aceasta este actualizată regulat, iar la Bibliografie poți găsi mai multe resurse care au ajutat la redactarea listei.

Nu în ultimul rând, pentru fiecare subiect în parte poți găsi resurse care să te ajute să aprofundezi materia. Succes!

Programa olimpiadei la informatică pentru clasa a V-a

Clasa a V-a reprezintă primul an în studiul informaticii și în studiul conceptelor matematice. În acest sens, materia cuprinde noțiuni introductive în informatică, precum și concepte ușoare de logică și matematică.

Citire și afișare de la tastatură și din fișier

  • Citirea numerelor de la tastatură;
  • Citirea numerelor din fișier (mai multe detalii în această lecție);

Variabile și tipuri de date

  • Cunoașterea tipurilor simple de date (mai multe detalii în această lecție):
    • numere întregi (int, long long);
    • numere reale (float, double);
    • caractere (char);
    • boolean (bool);
  • Operatori și expresii cu variabile:
    • operații cu numere;
    • atribuiri;
    • concepte precum paritate sau radicalul unui număr;

Alte noțiuni elementare de programare

Algoritmi esențiali în programare

  • Cifrele unui număr (lecție):
    • extragerea cifrelor unui număr;
    • operații cu cifrele unui număr: suma cifrelor, cifra maximă sau minimă, numărul de cifre, oglinditul unui număr, noțiunea de palindrom;
    • compunerea unui număr cu cifre;
  • Divizibilitate (lecție):

Vectori (tablouri unidimensionale)

Matrice (tablouri bidimensionale)

Problemele cu matrice sunt rare și nu conțin noțiuni avansate.

  • Declararea și parcurgerea unei matrice (lecție);
  • Citirea și afișarea unei matrice (lecție);

Programa olimpiadei de informatică pentru clasa a VI-a

Programa clasei a VI-a cuprinde materia clasei a V-a, la care se adaugă anumite noțiuni în plus.

Materia clasei a V-a

Toate noțiunile cuprinse la materia clasei a V-a.

Cunoașterea noțiunilor intermediare din informatică

  • Complexitatea unui algoritm (lecție):
    • analiza unui algoritm din punct de vedere al timpului și al memoriei folosite;
    • notația O mare (big O notation).
  • Tipuri de date simple:
    • tipurile învățate și în clasa a V-a: bool, char, int, long long, float, double;
    • variantele unsigned (fără semn) ale anumitor tipuri de date: unsigned int, unsigned long long, unsigned char (lecție);
    • variantele short (scurt) ale anumitor tipuri de date: short int, unsigned short int (lecție);
    • conversii între tipurile de date;

Algoritmi esențiali

  • Baze de numerație:
    • baza 2, baza 4, baza 8 și baza 16;
    • convertirea unui număr din baza 10 în baza 2 (lecție) sau în altă bază;
    • convertirea unui număr din baza 2 în baza 10 (lecție);
  • Exponențiere rapidă: ridicare la putere în timp logaritmic (lecție);

Vectori

Matrice

  • Declarare și parcurgere (lecție);
  • Citire și afișare (lecție);
  • Matrice pătratice: diagonala principală și secundară (lecție);
  • Alte parcurgeri asemănătoare;

Subprograme (funcții)

  • Funcții care returnează un anumit tip de date (lecție);
  • Funcții de tipul void (lecție);

Programa olimpiadei de informatică pentru clasa a VII-a

Programa clasei a VII-a constă în aprofundarea noțiunilor de informatică învățate și abordare anumitor probleme ce țin mai mult de logică și de matematică decât de teorie a informaticii.

Materia claselor a V-a și a VI-a

Trebuie cunoscute noțiunile învățate în clasele anterioare.

Subprograme (funcții)

  • Funcții care returnează un anumit tip de date (lecție);
  • Funcții de tipul void (lecție);
  • Funcții care returnează valori prin parametri (lecție);
  • Funcții recursive (lecție);

Structuri de date (tipul struct)

  • Declararea tipului struct (lecție);
  • Aplicații cu tipul struct;

Șiruri de caractere

  • Prelucrarea șirurilor de caractere (lecție);
  • Funcții predefinite cu șiruri de caractere (lecție):
    • strcpy, strncpy;
    • strcat, strncat;
    • strcmp;
    • strchr, strstr;
    • strlen;
    • toupper, tolower, isupper, islower;
    • isdigit, isalpha;
    • ale funcții utile;

Algoritmi avansați

Pentru etapele națională ale olimpiadei și ale altor concursuri, pot apărea următorii algoritmi avansați:

Programa olimpiadei de informatică pentru clasa a VIII-a

Programa olimpiadei pentru clasa a VIII-a constă în subiecte mai dificile din punct de vedere al logicii folosite în problemă, însă se folosesc aproape aceleași noțiuni de informatică ca cele învățate în clasele anterioare.

Materia claselor a V-a, a VI-a, a VII-a

Pentru clasa a VIII-a, trebuie știute toate noțiunile învățate anterior.

Geometrie

  • Probleme ce țin de geometria în plan:
    • distanțe dintre puncte cu coordonate
    • numărarea
    • coliniaritate

Programa olimpiadei de informatică pentru clasa a IX-a

Materia clasei a IX-a îmbină noțiuni elementare de informatică cu noțiuni avansate ale matematicii. Astfel, deși cunoștințele de informatică sunt puține, problemele pot fi destul de dificile.

Noțiuni elementare ale informaticii

  • Ce este un algoritm; complexitatea unui algoritm (lecție);
  • Citirea și afișarea din fișiere (lecție);

Variabile și tipuri de date

  • Cunoașterea tipurilor simple de date (mai multe detalii în această lecție):
    • numere întregi (int, long long);
    • numere reale (float, double);
    • caractere (char);
    • boolean (bool);
  • Operatori și expresii cu variabile:
    • operații cu numere;
    • atribuiri;
    • concepte precum paritate sau radicalul unui număr;

Alte noțiuni elementare de programare

Algoritmi esențiali în programare

  • Cifrele unui număr (lecție):
    • extragerea cifrelor unui număr;
    • operații cu cifrele unui număr: suma cifrelor, cifra maximă sau minimă, numărul de cifre, oglinditul unui număr, noțiunea de palindrom;
    • compunerea unui număr cu cifre;
  • Divizibilitate (lecție):
  • Baze de numerație:
    • baza 2, baza 4, baza 8 și baza 16;
    • convertirea unui număr din baza 10 în baza 2 (lecție) sau în altă bază;
    • convertirea unui număr din baza 2 în baza 10 (lecție);
  • Exponențiere rapidă: ridicare la putere în timp logaritmic (lecție);

Vectori (tablouri unidimensionale)

  • Declararea și parcurgerea unui vector (lecție);
  • Citirea și afișarea unui vector (lecție);
  • Vectori de frecvență și caracteristici (lecție);
  • Sortarea vectorilor (lecție);
  • Căutarea binară (lecție);
  • Interclasare (lecție);
  • Ciurul lui Eratostene (lecție);
  • Algoritmi tip Ciurul lui Eratostene (lecție);
  • Numere mari (lecție);

Matrice (tablouri bidimensionale)

  • Declararea și parcurgerea unei matrice (lecție);
  • Citirea și afișarea unei matrice (lecție);
  • Matrice pătratice: diagonala principală și secundară (lecție);
  • Alte parcurgeri asemănătoare;

Lucrul cu biți

Algoritmi avansați

Programa olimpiadei de informatică pentru clasa a X-a

Clasa a X-a aduce în prim plan algoritmi noi și noțiuni de recursivitate.

Materia clasei a IX-a

Trebuie cunoscută materia completă a clasei a IX-a, care cuprinde bazele informaticii.

Subprograme (funcții)

  • Funcții care returnează un anumit tip de date (lecție);
  • Funcții de tipul void (lecție);
  • Funcții care returnează valori prin parametri (lecție);
  • Funcții recursive (lecție);

Structuri de date (tipul struct)

  • Declararea tipului struct (lecție);
  • Aplicații cu tipul struct;

Șiruri de caractere

  • Prelucrarea șirurilor de caractere (lecție);
  • Funcții predefinite cu șiruri de caractere (lecție):
    • strcpy, strncpy;
    • strcat, strncat;
    • strcmp;
    • strchr, strstr;
    • strlen;
    • toupper, tolower, isupper, islower;
    • isdigit, isalpha, isalnum;
    • ale funcții utile;

Algoritmi recursivi

Structuri de date liniare

  • Stiva/stack (lecție);
  • Coada/queue (lecție);
  • Evaluator de expresii;
  • Algoritmul lui Lee: BFS (lecție);

Noțiuni de combinatorică

Backtracking

Programa olimpiadei de informatică pentru clasa a XI-a și a XII-a

Ultimii doi ani de informatică studiază aceeași materie. Problemele sunt de logică și se pune accentul pe metode de rezolvare în locul algoritmilor propriu ziși.

Materia claselor a IX-a și a X-a

Trebuie cunoscute noțiunile claselor a IX-a și a X-a în mare măsură.

Backtracking

Metoda programării dinamice

  • Ce este programarea dinamică;
  • Probleme cu programare dinamică;

Metoda greedy

  • Ce este metoda de programare greedy;
  • Probleme cu metoda de rezolvare greedy;

Grafuri

  • Grafuri neorientate:
    • parcurgeri;
    • componente conexe;
    • algoritmi de drum minim;
  • Graful orientate:
    • parcurgeri;
    • sortare topologică;
    • algoritmi de drum minim;
  • Arbori:
    • parcurgeri;

Bibliografie sau alte resurse

Cuprinsul lecției

Se încarcă…

Citește și

Sortare crescătoare recursivă în C++ - Merge sort și Bubble sortCMMMC a două numere în C++ (cel mai mic multiplu comun)Ce înseamnă endl în C++?Citirea și afișarea matricelor în C++Maximul și minimul a trei valori în C++Șirul lui Fibonacci în C++Operații cu numere mari în C++ - Toate funcțiile explicateVectorii în C++: declarare și parcurgereCâte numere naturale sunt într-un interval dat? (C++)Complexitatea unui algoritm (timp și spațiu) în C++Cifra maximă și minimă a unui număr în C++Transformarea unei litere mici în literă mare în C++Structuri repetitive (while, do while, for, etc)Verificarea unui an bisect în C++Copiuțe: Cifrele unui numărNumărul de cifre ale factorialului unui numărRecursivitate în C++Indicatorul lui Euler în C++Numărul de divizori al unui număr în C++Instrucțiunea continue (structuri repetitive)Instrucțiunea while (structuri repetitive)Află secolul unui an citit de la tastatură în C++Numere triunghiulare. Verificarea unui număr triunghiularVerifică dacă un bit de pe o anumită poziție este 1 sau 0 în C++Transformarea unui număr din baza 10 în baza 2 în C++Căutare binară în C++Maximul și minimul a n valori în C++Aria și circumferința unui cerc în C++Afișarea divizorilor primi ai unui număr în C++Tipuri de date în C++: numere întregi, reale, caractere și alteleFuncții în C++. Ce sunt subprogrameleNumărul de apariții al unui număr într-un vector în C++Vectori de frecvență (de apariții) în C++Verifică dacă un caracter este cifră în C++Ciurul lui Eratostene în C++Divide et Impera (metodă de programare C++)Verificare dacă un număr este palindrom în C++Cel mai semnificativ bit în C++Citește un șir de caractere cu spații în C++Numărul permutărilor în C++ (formula permutărilor)Prima cifră a unui număr în C++Combinatorică în C++: permutări, aranjamente, combinări și alteleMaximul și minimul a două valori în C++Generarea șirului Fibonacci generalizat în C++Verifică dacă o literă este vocală în C++Algoritm recursiv pentru căutare binară (clasa a X-a)Do while vs while în C++ - Care e diferența?Codul ASCII (tabel complet)Suma divizorilor unui număr în C++Cum să afișezi partea întreagă a unui număr real în C++Inversarea unui vector în C++Suma 1 + 2 + 3 + ... + N în C++Valoarea absolută (modulul) unui număr în C++Al N-lea termen Fibonacci în C++Instrucțiunea do while (structuri repetitive)Cifra de control a unui numărAl N-lea termen dintr-o progresie aritmeticăCe este o funcție void în C++?Cel mai mic număr cu suma cifrelor N în C++Instrucțiunea de decizie în C++: if, else, switch, caseNumărul minim de peroane pentru o gară în C++Cea mai lungă secvență de elemente crescătoare în C++Aria unui triunghi folosind coordonatele acestora în C++Afișarea elementelor unui vector recursiv în C++Comentarii în C++Calculul combinărilor de n luate câte k (nCk) în C++Numărul de divizori primi ai unui număr în C++Ce este o variabilă unsigned în C++?Pointer în C++. Variabile de tipul char * (char steluță)Cel mai mare divizor comun (CMMDC) a două numere în C++Verificare număr prim în C++ (Clasa a IX-a)Suma elementelor unui vector recursiv în C++Matrice pătratice în C++. Diagonala principală și secundarăDistanța dintre două puncte în C++Ce înseamnă variabilă globală și locală în C++?Numărul combinărilor în C++ (formula combinărilor)Rădăcina cubică a unui număr în C++ (cube root)Șiruri de caractere în C++. Tot ce trebuie să știiTransformarea unei litere mari în literă mică în C++Numărul aranjamentelor în C++ (formula aranjamentelor)Verifică dacă un număr este par sau impar fără modulo în C++Mediana unui șir de valori în C++Cifra maximă a unui număr recursiv în C++Numărul de divizori al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Instrucțiunea break (structuri repetitive)Aplicații cu ciurul lui Eratostene în C++: suma divizorilor, numărul divizorilorCel mai puțin semnificativ bit în C++Cum să citești și să afișezi în fișiere în C++De ce cer unele probleme răspunsul modulo 666013 sau modulo 1.000.000.007?Interclasarea a doi vectori în C++Interschimbarea a două variabile în C++ (3 metode)Oglinditul unui număr în C++Matrice în C++. Declararea și parcurgerea tablourilor bidimensionaleSuma numerelor naturale dintr-un interval dat în C++Vectorii în C++: citire și afișareFactorialul unui număr în C++Cel mai frecvent element dintr-un șir în C++Ridicarea la putere în timp logaritmic în C++. Exponențiere rapidăAflarea sumei primelor N sume GaussInversarea unui șir de caractere în C++Suma divizorilor numerelor de la 1 la N (Folosind ciurul lui Eratostene)Instrucțiunea for (structuri repetitive)Funcții predefinite în C++ (matematice, șiruri de caractere)Verifică dacă trei puncte sunt coliniare C++Verificare dacă șir de caractere este palindrom în C++Bordarea unei matrice în C++Al N-lea termen dintr-o progresie geometricăRadicalul unui număr în C++ (rădăcina pătrată)CMMDC recursiv a două numere naturale în C++Materia pentru olimpiada de informatică - tot ce trebuie să știiVerifică dacă un număr dat este o putere de 2 în C++Cifrele unui număr. Prelucrarea cifrelor unui număr în C++Tipul struct în C++. Ce sunt structurile de date neomogeneMaximul și minimul unui vector în C++Cel mai mic/mare divizor prim al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Verifică dacă un număr aparține șirului Fibonacci în C++Transformarea unui număr din baza 2 în baza 10 în C++Matrice Fibonacci - al n-lea termen Fibonacci în timp logaritmicVerifică dacă un caracter este literă în C++Indicatorul lui Euler al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Verifică dacă o literă este mică sau mare în C++Oglinditul recursiv al unui număr în C++Tutorial instalare CodeBlocks (ușor) - Introducere în informatică C++Cum să calculezi instant 2 la puterea N în C++

© Drepturi de autor

Echipa InfoAs își rezervă drepturile de autor pentru conținutul acestei pagini. Copierea conținutului fără acordul scris expres al InfoAs reprezintă o încălcare a Legii 8/1996 și va fi tratată ca atare.

Trimite lecția

Toată lecția

Doar videoclipul pe YouTube

Informatica devine ușoară cu InfoAs

Intră în cont