Disponibile da scaricare una nuova esercitazione contenente, fra l'altro, alcuni esercizi ricavati da prove di esame di anni precedenti. Provate a svolgerne il maggior numero possibile e segnalatemi eventuali difficoltà riscontrate.
Vi ricordo infine che per lunedì è prevista un'esercitazione nel laboratorio dove si svolgeranno gli esami.
Salve prof. A proposito di esami, è possibile durante la prova consultare il libro di testo?
RispondiEliminaSi, sara' possibile consultare i libri (io portero' una copia dell'Aguilar e una del Deitel) ma non gli appunti.
RispondiEliminaProfessore, sto provando a fare un esame relativo alla gestione foto.
RispondiEliminaA tempo di esecuzione però mi da un "errore di segmentazione". Per cui ho fatto alcune prove. Più precisamente ho una classe foto fatta in questo modo:
1) http://img98.imageshack.us/img98/615/schermata3u.png
2) http://img51.imageshack.us/img51/2954/schermata2i.png
Poi ho scritto una classe archivio che ha come dato membro un array di puntatori a "foto"
(http://img830.imageshack.us/img830/8127/schermata1dr.png)
Della classe archivio ho implementato i vari metodi, tra cui "aggiungiPanorama" (nello screenshot il metodo è opportunamente modificato per tentare di individuare l'errore)
http://img194.imageshack.us/img194/9411/schermataye.png
Ebbene, se cancello la riga “foto[i] = f”, entra nel for senza problemi e stampa "ciao" una sola volta. Se invece riabilito la riga succede questo:
http://img819.imageshack.us/img819/736/schermata4v.png
Cosa può essere accaduto? o.O
Vedendo gli screenshot non sembra ci sia niente di sbagliato, l'errore sara' da qualche altra parte. Se mi invii i sorgenti completi ci do un'occhiata.
RispondiEliminaGrazie professore, a breve allora le mando i sorgenti zippati via email
RispondiEliminaProf, ho individuato l'errore. Praticamente nel main creavo un puntatore generico ad archivio "Archivio* a", e poi lo utilizzavo per chiamare i vari metodi della classe archivio attraverso l'operatore "freccetta". Invece creando un oggetto "Archivo a" ed usando l'operatore "punto" per accedere ai metodi funziona.
RispondiEliminaE' un errore molto comune quello di usare puntatori indefiniti come se avessero gia' un oggetto a cui puntare.
RispondiEliminaPotevi benissimo lavorare coi puntatori ma l'oggetto su cui lavorare dovevi crearlo tu esplicitamente con la new:
Archivio* a;
a = new Archivio;