Nu aveti permisiuni pentru a descarca fisierul grader_test29.ok
Diferente pentru blog/buguri-frecvente intre reviziile #2 si #1
Nu exista diferente intre titluri.
Diferente intre continut:
Se apropie ONI si m-am gandit ca e utila o lista cu buguri frecvente in concursurile de programare. * Probleme in timpul implementarii:
**inversarea coordonatelor unei matrici a[j][i] ** functia % nu functioneaza exact la fel cu functia modulo din matematica. Astfel daca scazi numere modulo X poti ajunge la resturi negative (caz frecvent: hashing pe string-uri) ** Punct si virgula la final de linie dupa un for
Astea 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
Astea sunt printre cele mai 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
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:
impartire intreaga in loc de impartire reala:
double half = 1 / 2;
corect e
double half = 1.0 / 2 sau
Foarte frustrante. Pierzi toate punctele pentru un algoritm aproape de forma corecta.
* Intrare/Iesire: ** fisier de intrare sau iesire gresit ** formatarea gresita (cate un spatiu in loc de virgula, sau mai stiu eu ce) ** uitat ca anumite probleme cer rezultatul modulo X
Intrare/Iesire: fisier de intrare sau iesire gresit formatarea gresita (cate un spatiu in loc de virgula, sau mai stiu eu ce) uitat ca anumite probleme cer rezultatul modulo X
Probabil cele mai frustrante. Le faci cand problema merge aproape perfect si te-ai grabit sa pui solutia fara sa faci o ultima verificare.
* Greseli la algoritm: ** de multe ori incepatorii se arunca sa implementeze prima idee, inainte sa se gandeasca atent daca ea 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. ** strlen(s) are complexitate O(n) nu O(1).
Greseli la algoritm: de multe ori incepatorii se arunca sa implementeze prima idee, inainte sa se gandeasca atent daca ea 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. strlen(s) are complexitate O(n) nu O(1).
Faceti o lista cu bugurile cu care v-ati intalnit ca sa va dati seama care sunt cele mai frecvente pentru voi. In concursurile online e foarte utila o asemenea lista.
