venerdì 17 giugno 2011

Esercizi di preparazione agli esami

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.

7 commenti:

  1. Salve prof. A proposito di esami, è possibile durante la prova consultare il libro di testo?

    RispondiElimina
  2. Si, sara' possibile consultare i libri (io portero' una copia dell'Aguilar e una del Deitel) ma non gli appunti.

    RispondiElimina
  3. Professore, sto provando a fare un esame relativo alla gestione foto.
    A 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

    RispondiElimina
  4. 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.

    RispondiElimina
  5. Grazie professore, a breve allora le mando i sorgenti zippati via email

    RispondiElimina
  6. Prof, 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.

    RispondiElimina
  7. E' un errore molto comune quello di usare puntatori indefiniti come se avessero gia' un oggetto a cui puntare.
    Potevi benissimo lavorare coi puntatori ma l'oggetto su cui lavorare dovevi crearlo tu esplicitamente con la new:
    Archivio* a;
    a = new Archivio;

    RispondiElimina