• Non ci sono risultati.

Universit`a Ca’ Foscari Dipartimento di informatica Programmazione part-time Esame

N/A
N/A
Protected

Academic year: 2021

Condividi "Universit`a Ca’ Foscari Dipartimento di informatica Programmazione part-time Esame"

Copied!
4
0
0

Testo completo

(1)

Universit` a Ca’ Foscari Dipartimento di informatica

Programmazione part-time Esame

Nome:

Matricola:

Andrea Marin , a.a. 2009/2010

(2)

Programmazione part-time a.a. 2009/2010

Esame Nome:

Andrea Marin

Teoria. (10 punti) Rispondere ai seguenti quesiti utilizzando eventualmente gli appositi spazi bianchi.

Tempo totale a disposizione: 20 min.

(2pts)

2 pts 1. Dato il seguente codice:

int *a; int **b; int c;

a = & c ; b = & a ;

quale delle seguenti imposta la variabileca 0? (Barrare la risposta esatta)

(a)c == 0; (b)a = 0; (c)&a = 0; (d)**b = 0; (e) *b = 0;

(3pts)

3 pts 2. Dato il seguente sottoprogramma:

void dividi (int dividendo , int divisore , int quoziente , int resto ) { q u o z i e n t e = d i v i d e n d o / d i v i s o r e ;

r e s t o = d i v i d e n d o % d i v i s o r e ; }

int main (){

int a,b;

d i v i d i (10 ,3 , a , b ) ; . . .

}

Spiegare perch`e dopo la chiamata del sottoprogramma dividile variabili a eb non contengono 3 ed 1. Quindi riscrivere il codice correggendo l’errore.

(3pts)

3 pts 3. Date le seguenti dichiarazioni:

int a,b;

int *c, *d;

int **e;

si stabilisca per le seguenti scritture:

• se identificano una variabile (possono comparire a sinistra di un assegnamento) (in caso affermativo barrare la casella della colonna A)

• il tipo (specificarlo nella colonna B)

• se ´e presente un errore che non consentirebbe la compilazione (in tal caso barrare la colonna C e lasciare in bianco le colonne A e B)

(3)

Programmazione part-time/Esame – Pag. 3 / 4 – Nome:

A B C

*c + 9

*(c + 9)

&e

*e

**e

**c

*c > a

(2pts)

2 pts 4. Data la seguente funzione:

char* saluta () {

char str [] = ‘‘Hello world !’’;

return str ; }

Si spieghi l’errore e la si riscriva mantenendo inalterata la firma e correggendone l’errore.

2 pts

(4)

Programmazione part-time/Esame – Pag. 4 / 4 – Nome:

Pratica. (23 punti) Nello svolgimento del seguente esame, il candidato crei una cartella con il proprio cognome e numero di matricola e la lettera c (e.g. Rossi887766c) inserendo all’interno i file corrispondenti agli esercizi che si intendono consegnare (e.g. Esercizio1.c). Le prime righe del file devono essere dei commenti che specifichino il vostro nome e cognome e l’esercizio a cui si riferiscono.

Tempo a disposizione: 1h e 45 min.

(6pts)

6 pts 1. Scrivere una funzione C che date due stringhe restituisca 1 se una delle due `e prefisso dell’altra. Le

operazioni devono avvenire senza la duplicazione delle stringhe. Esempio:

char str1 [] = ‘‘ Hello world !’’;

char str2 [] = ‘‘Hel ’’;

int ans1 = esercizio1 (str1 , str2 );

int ans2 = esercizio1 (str2 , str1 );

/* Sia a n s 1 che a n s 2 c o n t e n g o n o 1 */

Ovviamente il sottoprogramma deve funzionare anche con stringhe diverse in ingresso.

(17pts)

17 pts 2. Si vuole scrivere un programma C per la gestione di alcune operazioni necessarie all’implementazione

del gioco della Battaglia Navale. In un campo da gioco 10 × 10, cio`e in cui ogni casella `e individuata da una coppia di coordinate (x, y) con 1 ≤ x, y ≤ 10, sono piazzate delle navi alle quali `e associato un identificatore. La situazione nel tabellone `e descritta da una lista in cui ciascuna cella contiene:

• L’identificatore della nave

• Le coordinate della cella nel tabellone

Notiamo che una nave pu`o essere composta da pi`u celle e quindi nella lista lo stesso identificatore comparir`a pi`u volte. Implementare i seguenti punti:

(a)(2 pts) Definire il tipo datiposizioniper la memorizzazione della lista (b)(4 pts) Scaricare nella propria cartella di lavoro il file alla locazione:

http://www.dsi.unive.it/∼marin/navi.txt

il quale per ogni riga contiene l’informazione identificatore posizione, e.g.

P o r t a e r e i 5 3 I n c r o c i a t o r e 2 2 P o r t a e r e i 5 2 P o r t a e r e i 5 1

e scrivere una funzione che crei la lista a partire dalle posizioni specificate nel file.

(c) (4 pts) Scrivere la funzioneint cercanave(char* ident, posizioni list)che restituisce 1 se nella lista `e presente una nave il cui identificatore si ident, 0 altrimenti.

(d)(7 pts) Scrivere la funzioneposizioni spara(int x, int y, char* risposta, posizioni list)che gestisca il colpo del giocatore ricevendo in ingresso x, y che rappresentano le coordinate del colpo. La funzione deve avere il seguente comportamento:

• Se non esiste una nave alle coordinate x, y allora la stringa risposta deve contenere la parola‘‘Mancato’’e la funzione ritorna la listalist

• Se esiste una nave alle coordinate x, y la cella corrispondente deve essere rimossa dal- la lista list, e la stringarisposta deve contenere ‘‘Colpita id-nave’’, dove id-nave

`

e l’identificatore della nave colpita. Nel caso in cui il colpo affondi la nave, la stringa rispostadeve contenre‘‘Colpita id-nave ed affondata’’Suggerimento: usare la fun- zione cercanavesulla lista dopo la rimozione. In entrambi i casi la funzione restituisce la lista senza la cella della nave colpita.

Riferimenti

Documenti correlati

Tenuta della nave al

COGNOME NOME SOCIETA' PETT. ARR

Suite con balcone sul mare Suite with ocean view balcony Grand Suite con balcone sul mare Grand Suite with ocean view balcony cabine per disabili - cabins for disabled guests.

Il cuore decisionale della nave è la Centrale Operativa di Combattimento (COC); è qui che si può conoscere la situa- zione tattica della zona in cui si trova la nave, infatti ad

WASS, azienda leader nel settore dei sistemi subacquei, presenta nello stand Finmeccanica su Nave Cavour il siluro pesante BLACK SHARK, il siluro leggero A244/S Mod.3, il sistema

CALABRIA Club Itaca Nausicaa (Rossano Calabro); Baia degli Dei (Isola di Capo Rizzuto) a partire da € 200 per persona con volo A/R per Lamezia , trasferimento collettivo da/per. €

conoscenza della storia legale e delle cause relative alla carcerazione. approfondimento della storia individuale, familiare e delle modalità di relazione che caratterizzano

Descrizione immagine: vista frontale ponte di coperta da prua e da quota livello +1 dell'edificio Aeronavale Path dell'immagine originale: ST020. Nome file dell'immagine