Diferente pentru blog/buguri-frecvente intre reviziile #13 si #14

Nu exista diferente intre titluri.

Diferente intre continut:

                  ceva cod
** refolosirea unui index
for (i = 0; i < n; i++)
               for (i = 0; i < m; i++) // i in loc de j
  for (i = 0; i < m; i++) // i in loc de j
** folosirea lui = in locul lui ==
** comparare de stringuri cu \=\= in loc de strcmp
** diferente de librarii ale limbajului intre linux si windows
** ++ in loc de --
Ele sunt gasite de obicei la depanare.
* Probleme cu memoria:
** variabile neinitializate - cand programul are comportament diferit la rulari diferite, una dintre probleme ar initializarea variabilelor.
** depasirea limitei de memorie
** declarat array-uri de dimensiune de prea mica
** refolosirea variabilelor
** off by one errors, frecvent apar probleme cu datele pornind de la 0 sau 1
Destul de greu de gasit.
* Probleme cu tipuri de date:
** folosire de tipuri prea mici de exemplu int in loc de long long sau float in loc de double
** probleme cu tipurile intermediare
               int a,b;
               long long c = a * b; // c va avea valoarea unui int
               corect e
               long long c = ((long long) a) * b;
** impartire intreaga in loc de impartire reala:
               double half = 1 / 2;
               corect e
               double half = 1.0 / 2 sau
               double half = ((double)1)/2
gresit: int a, b; long long c = a * b; // c va avea valoarea unui int
corect: long long c = ((long long) a) * b;
gresit: double half = 1 / 2;
corect: double half = 1.0 / 2 sau
 
Foarte frustrante. Pierzi toate punctele pentru un algoritm aproape de forma corecta.
* Intrare/Iesire:
Le faci cand problema merge aproape perfect si te-ai grabit sa trimiti solutia.
* Greseli la algoritm:
** de multe ori incepatorii se arunca sa implementeze prima idee, inainte sa se gandeasca atent daca ea e corecta.
** incepatorii se arunca sa implementeze prima idee, inainte sa se asigure ca e corecta.
** graful nu e neaparat conex si toate exemplele au fost grafuri conexe.
** rezultatul are nevoie de numere mai mari decat poate reprezenta limbajul de programare.
** probleme pe cazuri extreme, mici: gen n = 1, 2 sau mari unde iesi din memorie.

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.