• Non ci sono risultati.

Programmazione part-time Esame

N/A
N/A
Protected

Academic year: 2021

Condividi "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;

b = 2 3 ; c = b ; a =& b ;

quale delle seguenti imposta la variabile b a 0? (Barrare la risposta esatta)

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

(3pts)

3 pts 2. Data la seguente dichiarazione:

char str [] = ‘‘ Hello ’’;

char* pt;

si scriva una breve porzione di codice che stampi la stringa str al contrario senza dichiarare nuove variabili e usando esclusivamente la notazione con i puntatori per riferirsi alla stringa. Si noti che al momento della stampa il contenuto di str `e conosciuto.

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

A B C

*a + b

*(c + 2)

*c + 2

*e == d e == &c a * b

*d

(3)

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

(2pts)

2 pts 4. Data la seguente funzione:

int* somma (int a, int b) { int c;

c = a + b ; return &c;

}

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.g. Rossi887766) inserendo all’interno i file corrispondenti agli esercizi che si intendono consegnare (e.g. Esercizio1.ml). 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.

(8pts)

8 pts 1. Scrivere una funzione C che data una stringa in ingresso ne elimini le vocali minuscole. Le operazioni

devono avvenire senza la duplicazione della stringa. Esempio:

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

e s e r c i z i o 1 ( str ) ;

/* a q u e s t o p u n t o str c o n t i e n e la s t r i n g a ‘ ‘ Hll w r l d ! ’ ’ */

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

Per ottenere il punteggio massimo si risolva l’esercizio ricorsivamente.

(15pts)

15 pts 2. Si vuole scrivere un programma C per la gestione dei propri segnalibri di indirizzi WEB. Un segnalibro

`e composto da due stringhe, la prima `e l’identificatore del segnalibro e la seconda `e l’indirizzo. Ad esempio (‘‘Google’’ ‘‘http://www.google.it’’) `e il segnalibro il cui identificatore `e Google e la stringa seguente `e l’indirizzo.

1. Si desidera creare una struttura dati che memorizzi queste coppie di stringhe basata su una lista semplice. Definire la struttura datit_preferitiopportunamente.

2. Si crei un sottoprogramma per l’inserimento la cui firma sia:

t _ p r e f e r i t i i n s e r i s c i ( t _ p r e f e r i t i p r e f e r i t i , char* ident , char* indirizzo );

3. Si crei un sottoprogramma per l’eliminazione di un preferito dato l’identificatore. In caso di pi`u elementi con lo stesso identificatore si rimuovano tutte le occorrenze.

4. Si crei un sottoprogramma che elimini i segnalibri duplicati. 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. Ad esempio: http://www.prova.it`e uguale adhttp://www .prova.it/cartella che a sua volta `e uguale ad http://www.prova.it/hello. Quando si eliminano i duplicati si mantenga la prima occorrenza.

Riferimenti

Documenti correlati

A tal proposito, ha ricordato la Corte di Strasburgo, è necessario che il trattamento denunciato raggiunga una soglia minima di gravità (si direbbe: tale da integrare una

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

La macchinina, seguiti i comandi, vince se riesce a terminare il percorso senza aver urtato alcun ostacolo e senza essere uscita dal campo di gioco. Le posizione corrente

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

(b) (4 pts) Scrivere la funzione void trasforma(t_numero* pl, int n) che trasforma il numero naturale n nella rappresentazione mediante lista. (c) (2 pts) Scrivere la funzione

(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

(e) (4 pts) Scrivere la funzione float valorespecifico(ttrasporto l, char *str) che restiui- sca il valore totale della merce trasportata (anche su pi` u cammion) con

Responsabile del Gruppo veniva nominata la dott.ssa Maria Rosaria Valensise, Componenti: Andreina Fullone, Rita Giorgi, Sergio Diamantini, Anna Maria Risi, Lisena Porri,