| prof. Nunzio Brugaletta |
C++:
programmazione e oggetti |
Un punto fondamentale nella scrittura di un programma è lo stile di scrittura del codice. Seguire delle regole per la scrittura del programma ne facilita la comprensione e la manutenzione e, anche, la scrittura. Il software necessita di manutenzione: per la correzione degli errori riscontrati durante l'uso, per l'aggiunta di nuove funzionalità, per la modifica delle funzionalità e i costi di manutenzione possono essere più alti dei costi di sviluppo. Un buon stile di scrittura dei programmi fa parte integrante della documentazione e i programmi hanno necessità di essere compresi.
Gli esempi riportati in questi appunti sono scritti secondo alcune regole basilari, ormai universalmente utilizzate, in accordo con lo stile utilizzato dai Bell Laboratories.
Un buon stile di scrittura utilizza righe vuote e commenti per rendere il codice più chiaro e comprensibile. Il commento spiega in breve il significato delle righe di codice che lo seguono. Ogni nuovo blocco che svolge una nuova funzionalità, che elabora un dato intermedio va preceduto da un commento esplicativo. Ogni riga di commento è preceduta e seguita da una riga vuota per renderla più individuabile.
Una variabile ha un nome mnemonico che ricorda il suo uso in modo da agevolare la comprensibilità del codice.
L'uso di una corretta indentazione è di fondamentale importanza non solo per la comprensione del codice ma anche per evitare errori comuni. Negli esempi di questi appunti è utilizzata una indentazione di 2 caratteri. Per sintetizzare le regole per l'incolonnamento delle righe di codice si possono seguire le semplici regole:
ogni riga di codice è allineata, in generale, con la riga precedente
se nella riga precedente si trova una parantesi graffa aperta, la riga va indentata verso destra di tanti spazi quanti se ne sono scelti per la indentazione. Negli esempi 2 spazi
il margine di inizio della riga si sposta verso sinistra quando si deve chiudere un blocco: si deve inserire una parantesi graffa chiusa o si scrive l'istruzione successiva dopo l'unica istruzione compresa in una struttura condizionale o ciclo.
L'uso di una corretta indentazione permette di evitare errori frequenti di dimenticanza della chiusura (parantesi graffa chiusa) di una struttura specie quando ci sono più strutture nidificate (una dentro l'altra).
Le convenzioni per l'uso delle parentesi graffe e l'indentazione delle righe di codice si possono così sintetizzare:
int main()
{
// codice del programma
}
le parentesi che racchiudono il main occupano una riga a parte ciascuna.
while(...){
// codice contenuto nel ciclo
}
// codice fuori dal ciclo
il blocco che racchiude il codice contenuto in un ciclo (while o for) comincia dalla riga dell'istruzione ciclica e si chiude con la parentesi che occupa da sola una riga.
if(...){
// codice per condizione vera
}
else {
// codice per condizione falsa
}
// altro codice
se nella struttura condizionale non è presente il blocco per la condizione falsa, si codifica come la struttura ciclica. Se presente il blocco per condizione falsa questo va trattato come se fosse una struttura a parte.
In sintesi la codifica di una struttura, qualora questa preveda un blocco di codice, prevede la parentesi di apertura nella stessa riga del codice di inizio della struttura e la parentesi di chiusura da sola in una riga. Le righe che contengono le istruzioni che dipendono dalla struttura vanno indentate perché in tal modo, anche visivamente, ne diventa chiara la dipendenza.
| http://ennebi.solira.org |
ennebi@solira.org |