2° esonero di Fondamenti di Informatica (Ambiente e Territorio)

a.a. 98/99

21 maggio 1999 — 1° turno

Leggi attentamente: il non seguire alla lettera queste indicazioni può causare l'invalidità della prova.

  1. La prova si svolge completamente al personal computer (PC). L'unico elaborato valido ai fini della prova è costituito da un insieme di file depositati in C:\TEMP\ESAME.
  2. Memorizza i tuoi programmi in file così denominati: usa le prime lettere (al più sei) del tuo cognome (tralascia spazi/apostrofo), aggiungi quindi l'iniziale del tuo nome e completa infine la stringa con un numero progressivo (una sola cifra, iniziando da 1). L'estensione è sempre .C.
  3. Se le domande poste ti chiedono di creare file dati, usa lo schema di costruzione dei nomi dei file descritto al punto precedente (la numerazione progressiva da usare è unica), modificando però l'estensione: .TXT per i file di testo e .DAT per quelli binari.
  4. Ogni file .C creato deve iniziare con un commento, secondo il seguente schema:
    /* nome, cognome, matricola, turno, domanda a cui si sta rispondendo */
  5. L'utilizzo di materiale personale (libri, appunti, dispense, fotocopie, dischetti, calcolatrici, pocket computer, telefoni cellulari ecc.) non è ammesso. Non è consentito uscire dall'aula prima di aver terminato la prova né colloquiare con chicchessia. Violazioni di tali regole comportano l'annullamento automatico della prova. È invece consentita la consultazione delle pagine di help dell'ambiente di programmazione.
  6. Ricorda che una condizione necessaria per il superamento della prova è la correttezza sintattica del codice C.
  7. Al termine della prova esci dall'ambiente di programmazione, ma non spegnere il PC. Segnala il completamento della prova a un docente e lascia quindi l'aula.
  8. Rammenta di verificare il corretto funzionamento dell'ambiente di programmazione: per assicurarti che le compilazioni vengano eseguite dal compilatore C (e non dal C++) verifica nella finestra accessibile tramite il comando OptionsÆ CompilerÆ C++ Options che la scelta corrispondente a use C++ Compiler sia CPP extension e non C++ always.
  9. Rammenta infine che l'uso di commenti e di una corretta indentazione facilita la stesura del programma, nonché la sua successiva correzione: dichiarare intenzioni e proprietà può essere utile a riparare, almeno parzialmente, eventuali errori presenti nel programma.

Domanda n° 1

Scrivi un programma C che costruisca un file binario che rappresenta la matrice M (12 ¥ 12) i cui elementi mi,j sono tali che mi,j = mi+1,j + mi+1,(j mod 12)+1 e m12,j = j - 1 + z, per i = 1,...,11 e j = 1,...,12, dove z è un intero letto da tastiera all'inizio dell'esecuzione del programma. Usa il programma due volte, la prima con z = giorno di nascita (intero fra 1 e 31), la seconda con z = mese di nascita (intero fra 1 e 12), costruendo dunque due file (ricorda di specificare la data del tuo compleanno in un apposito commento).

Domanda n° 2

Scrivi un programma C che, lette le due matrici A e B contenute nei file costruiti al punto precedente (assumi che siano note le dimensioni delle matrici), costruisca un file di testo che rappresenta la matrice C = A + BT, dove BT è la trasposta di B. Ciascuna riga del file di testo costruito dovrà contenere esattamente una riga della matrice C (gli elementi di una stessa riga di C dovranno essere opportunamente distanziati).

Domanda n° 3

Una serata è una lista (collegata) in cui ciascun elemento contiene:

Ciascun numero uscito è rappresentato una sola volta nella lista e non esiste un particolare ordinamento predefinito sugli elementi della stessa.

Scrivi una funzione C che, ricevendo come parametro un array di 7 serate (cioè 7 liste, ciascuna relativa a una diversa serata, per tutti i giorni di una settimana) costruisca, restituendola in uscita, la lista settimana, ciascun elemento della quale contiene:

Ciascun numero uscito durante la settimana è rappresentato una sola volta nella lista.

Opzionale: scrivi anche le funzioni per l'input, la costruzione e l'output dei polinomi, nonché un main, costruendo dunque un programma completo.


 

2° esonero di Fondamenti di Informatica (Ambiente e Territorio)

a.a. 98/99

21 maggio 1999 — 2° turno

Leggi attentamente: il non seguire alla lettera queste indicazioni può causare l'invalidità della prova.

  1. La prova si svolge completamente al personal computer (PC). L'unico elaborato valido ai fini della prova è costituito da un insieme di file depositati in C:\TEMP\ESAME.
  2. Memorizza i tuoi programmi in file così denominati: usa le prime lettere (al più sei) del tuo cognome (tralascia spazi/apostrofo), aggiungi quindi l'iniziale del tuo nome e completa infine la stringa con un numero progressivo (una sola cifra, iniziando da 1). L'estensione è sempre .C.
  3. Se le domande poste ti chiedono di creare file dati, usa lo schema di costruzione dei nomi dei file descritto al punto precedente (la numerazione progressiva da usare è unica), modificando però l'estensione: .TXT per i file di testo e .DAT per quelli binari.
  4. Ogni file .C creato deve iniziare con un commento, secondo il seguente schema:
    /* nome, cognome, matricola, turno, domanda a cui si sta rispondendo */
  5. L'utilizzo di materiale personale (libri, appunti, dispense, fotocopie, dischetti, calcolatrici, pocket computer, telefoni cellulari ecc.) non è ammesso. Non è consentito uscire dall'aula prima di aver terminato la prova né colloquiare con chicchessia. Violazioni di tali regole comportano l'annullamento automatico della prova. È invece consentita la consultazione delle pagine di help dell'ambiente di programmazione.
  6. Ricorda che una condizione necessaria per il superamento della prova è la correttezza sintattica del codice C.
  7. Al termine della prova esci dall'ambiente di programmazione, ma non spegnere il PC. Segnala il completamento della prova a un docente e lascia quindi l'aula.
  8. Rammenta di verificare il corretto funzionamento dell'ambiente di programmazione: per assicurarti che le compilazioni vengano eseguite dal compilatore C (e non dal C++) verifica nella finestra accessibile tramite il comando OptionsÆ CompilerÆ C++ Options che la scelta corrispondente a use C++ Compiler sia CPP extension e non C++ always.
  9. Rammenta infine che l'uso di commenti e di una corretta indentazione facilita la stesura del programma, nonché la sua successiva correzione: dichiarare intenzioni e proprietà può essere utile a riparare, almeno parzialmente, eventuali errori presenti nel programma.

 

Domanda n° 1

Scrivi un programma C che costruisca un file binario che rappresenta la matrice M (12 ¥ 31) i cui elementi mi,j sono tali che mi+1,j = mi,j + i + j e m1,j = j, per i = 1,...,11 e j = 1,...,31.

Domanda n° 2

Scrivi un programma C che, letta la matrice contenuta nel file costruito al punto precedente (assumi che siano note le dimensioni della matrice, ma non il suo contenuto), costruisca un file di testo che rappresenta il minore M' di M ottenuto cancellando da M la riga m e la colonna g, dove m e g sono rispettivamente il mese (intero fra 1 e 12) e il giorno (intero fra 1 e 31) del tuo compleanno (ricorda di specificare la data del tuo compleanno anche in un apposito commento). Ciascuna riga del file di testo costruito dovrà contenere esattamente una riga della matrice M' (gli elementi di una stessa riga di M' dovranno essere opportunamente distanziati).

Domanda n° 3

Un polinomio p(x) (coefficienti razionali) è rappresentato tramite una lista (collegata) i cui elementi contengono una rappresentazione dei monomi che definiscono p(x). Non esiste un particolare ordinamento predefinito sugli elementi della lista.

Scrivi una funzione C che, ricevendo come parametro un array di n polinomi pi(x), i = 1,...,n, costruisca, restituendolo in uscita, il polinomio q(x) somma degli n polinomi pi(x).

Opzionale: scrivi anche le funzioni per l'input, la costruzione e l'output dei polinomi, nonché un main, costruendo dunque un programma completo.