• Non ci sono risultati.

Universit`a Ca’ Foscari Corso di Laures in Informatica Programmazione part-time Esame

N/A
N/A
Protected

Academic year: 2021

Condividi "Universit`a Ca’ Foscari Corso di Laures in Informatica Programmazione part-time Esame"

Copied!
4
0
0

Testo completo

(1)

Universit` a Ca’ Foscari Corso di Laures in Informatica

Programmazione part-time Esame

Nome:

Matricola:

Andrea Marin , a.a. 2010/2011

(2)

Programmazione part-time a.a. 2010/2011

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 int* b;

int c []={2 ,4 ,6};

b = c +1;

b [0] = c [ 0 ] ; b [1] = b - c ;

qual `e il contenuto del vettore c al termine dell’esecuzione del codice (scrivere codice errato se si ritiene il codice scorretto)?

(3pts)

3 pts 2. Dato il seguente programma:

char* crea_stringa () {

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

return saluto ; }

int main (){

char* s = crea_stringa ();

s [ 0 ] = ’ h ’ ;

p r i n t f ( ‘ ‘% s ’ ’ , s ) ; }

Si spieghi l’errore e si riscriva il codice correggendolo.

(3pts)

3 pts 3. Date le seguenti dichiarazioni:

int a,b;

int *c;;

int **d ,** e;

si stabilisca per le seguenti scritture:

(3)

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

• 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)

A B C

*d-*e d - e

*d + *e

**d + **e

*(c+5)

**(e+3) c-5

(2pts)

2 pts 4. Data la seguente funzione:

void copia_stringa (char* s1 , char* s2) { s1 = (char *) malloc ( strlen (s2) +1) ; s t r c p y ( s1 , s2 ) ;

}

int main (){

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

char* copiasaluto ;

c o p i a _ s t r i n g a ( c o p i a s a l u t o , s a l u t o ) ; p r i n t f ( ‘ ‘% s ’ ’ c o p i a s a l u t o ) ;

f r e e ( c o p i a s a l u t o ) ; }

Si spieghi l’errore e si riscriva il codice mantenendo la copia della stringa allocata nell’heap.

(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 crei una lista di n ≤ 10 interi casuali tra 1 e 10 (n sia un parametro)

tutti fra loro diversi. Una cella deve contenere un numero diverso da tutti gli altri e tutti i numeri leciti devono avere uguale probabilit`a di essere scelti. Per estrarre un numero casuale da 1 a 10 rand()%10 + 1.

(17pts)

17 pts 2. Si vuole scrivere un programma C per al fine di facilitare la partecipazione al gioco dello Scarabeo

in versione semplificata. Il programma manterr`a in una lista di stringhe un elenco di parole che chiameremodizionario. Per ogni parola si pu`o calcolare un punteggio come segue:

• Le vocali a,e,i valgono un punto

• Le vocali o,u valgono due punti

• Le consonanti z,h valgono otto punti

• Tutte le altre lettere valgono tre punti

(a)(2 pts) Definire il tipo datit_dizionarioper la memorizzazione del dizionari di parole.

(b)(3 pts) Scrivere la funzioneint calcola_punti(char* str) che calcoli il punteggio associato ad una stringa.

(c) (3 pts) Scrivere la funzione int match(char* str, char* pattern) che restituisca 1 se la stringastrsoddisfa le specifiche della stringapattern,0altrimenti. La stringapatterncontiene delle lettere e il carattere speciale?. La stringastrsoddisfa ilpatternse le lettere nella stessa posizione sono uguali oppurepattern in quella posizione ha un?. Per esempio cicala soddisfa il pattern c??al? ma non il pattern c?al?.

(d)(4 pts) Scrivere la funzione char* seleziona(t_dizionario dizionario, char* pattern) che restituisca la stringa con massimo punteggio che soddisfa ilpattern.

(e) (5 pts) Scrivere la funzione char* seleziona(t_dizionario dizionario, char* pattern) che restituisca la stringa con massimo punteggio che soddisfa il pattern anche eccedendo la lunghezza. Ad esempio il patternc?cal? `e soddisfatto da cicala ma non da cicalino secondo le definizioni precedenti. In questo esercizio, invece, va restiuito cicalino perch`e di maggiore punteggio.

Riferimenti

Documenti correlati

I segnalibri duplicati sono quelli che hanno la parte iniziale dell’indirizzo uguale, cio` e il prefisso fino a quando si incontra il fine stringa o un carattere / singolo. Quando

La memorizzazione di questo tipo di matrici avveiene mediante una lista in cui ciascuna cella, per ogni elemento non nullo, contine le seguenti informazioni:. •

Strutture di controllo iterative Universit` a Ca’ Foscari VeneziaLaurea in Informatica Corso di Programmazione part-time.. Perch` e serve un ciclo?.. Strutture di controllo

 Nelle architetture software, Facade può essere applicato per definire un punto d’accesso a un elemento architetturale.  Per capire l’impatto che possono avere le facade in

In Krivine’s Classical Realizability [18] classical implication is associated to a stack constructor, while in λ µ-calculus (as in λC -calculus) the arrow-type is introduced by

• mette il flag di stato del nick a connesso e crea una FIFO, se non esiste già, il cui nome corrisponde al nick specificato nel messaggio, questa FIFO

20 Inoltre, l’interpretazione secondo il caso strumentale sembrerebbe essere presente anche all’interno dell’Abhidharmakośa-bhāṣya di Vasubandhu: «è definito ‘manomaya’

Quality in eGovernment services has been investigated in [27], where has been even defined a specific Quality of eGovernment Service (QeGS) ontology; a review of applicable