Originariamente inviato da SongokuSSj5
Mi piacerebbe avere da voi anche un giudizio generale su come ho svolto il codice e qualche consiglio per migliorarlo...
1. Non includere <iostream.h> ma <iostream>
[cite]
This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
[/cite]
2. Non usare "#define dim 10" ma piuttosto "#define MAX_DIM_OF_MATRIX 10", meglio se usi "const int kMaxDimOfMatrix = 10;".
3. Definisci le variabili solo un attimo prima di utilizzarle; ad esempio "for (int i = 0; i < n; ++i)". Osserva che ho messo anche "++i" anziché "i++". Il primo è generalmente più efficiente del secondo (non in questo caso, ma tant'è..);
4. Metti sempre un blocco di parentesi graffe nelle strutture di controllo, anche se non è strettamente necessario. Ad esempio:
Codice PHP:
for (i=0; i<diagonale; i++){
cout<<vettore[i];
}
Codice PHP:
for (i=0; i<n; i++){
for (j=0; j<n; j++){
cin>> matrice [i][j];
}
}
In questo modo eviterai di picchiare la testa in errori del tipo:
Codice PHP:
if (false); // osservare il punto e virgola...
std::cout << "Non dovrebbe MAI stampare questa riga ma invece la stampa!" << std::endl;
4. Spezza le funzionalità in funzioni (senza usare variabili globali). Ad esempio: LoadArrayFromInput, DumpArray ecc..
5. Rendi dinamiche le dimensioni della matrice.
6. Utilizza, quando puoi, gli algoritmi standard del C++ che trovi in
Codice PHP:
#include <algorithm>
#include <functional>
#include <numeric>