• Non ci sono risultati.

Prova d’esame di Laboratorio di Programmazione Strutturata per il corso di laurea in Scienze e Tecnologia dei Media Prova scritta – 5 Febbraio 2013

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova d’esame di Laboratorio di Programmazione Strutturata per il corso di laurea in Scienze e Tecnologia dei Media Prova scritta – 5 Febbraio 2013"

Copied!
2
0
0

Testo completo

(1)

Prova d’esame di Laboratorio di Programmazione Strutturata per il corso di laurea in Scienze e Tecnologia dei Media

Prova scritta – 5 Febbraio 2013

• Esercizio 1

Si scriva una function (la quale, eventualmente, richiama un’altra function anch’essa da scrivere) che effettua l’ordinamento di un vettore. Per fissare le idee, il prototipo della function richiesta `e il seguente:

void ordina(int v[], int n);

dove per n s’intende il numero di elementi del vettore v , i quali (al termine dell’esecuzione della function ordina) dovranno essere disposti in ordine crescente.

All’interno di un commento della function ordina, si indichi chiaramente come varia la complessit`a computazionale dell’algoritmo prescelto in funzione di n .

• Esercizio 2

Si scriva una function il cui prototipo `e il seguente char *parola(char riga[], char *stringa);

che ha lo scopo di isolare la prima parola nel vettore di caratteri riga e lo riporta in stringa. Per fissare le idee, si consideri ad esempio che il contenuto di riga sia

H o p e r s o l e p a r o l e \n \0

e si assumano le seguenti convenzioni:

1. al termine di una singola parola ci sia solo il carattere di fine stringa (cio`e ’\0’) oppure carattere di “a capo” (cio`e ’\n’) oppure uno o pi`u spazi; per semplicit`a, non si considerano gli apostrofi, la punteggiatura, etc.;

2. si presti attenzione al fatto che all’inizio di riga possono trovarsi uno o pi`u spazi;

3. all’interno della function parola devono essere allocate le celle di memoria del vettore stringa, le quali (alla fine dell’esecuzione della suddetta function) dovranno ospitare i caratteri che formano la prima parola individuata;

4. il vettore di caratteri stringa deve essere terminato da ’\0’;

5. la function parola deve restituire l’indirizzo di memoria del primo carattere successivo alla fine della prima parola;

6. qualora non ci fosse alcuna parola, allora la function parola deve restituire l’indirizzo di memoria (fittizio) NULL.

• Esercizio 3 (facoltativo)

Si scriva una function il cui prototipo `e il seguente void lunghezze(FILE *ifp, int nvolte[100]);

che ha lo scopo di contare il numero di volte che una parola di lunghezza l capita nel file di testo corrispondente all’indirizzo di memoria ifp. Per fissare le idee, si

(2)

2

immagini che all’interno del file di testo corrispondente a ifp ci sia il testo di una nota canzone di Ligabue, che dopo (la riga riportata in precedenza) continua come segue:

o f o r s e s o n o l o r o \n \0

c h e p e r d o n o m e \n \0

s i s o n o n a s c o s t e b e n e \n \0

(a memoria non vado oltre la prima strofa, quindi terminiamo qui).

Si assumano le seguenti convenzioni:

1. si deve utilizzare ripetutamente la function parola descritta nel precedente esercizio 2; pertanto, si assumano anche tutte le regole gi`a enunciate nel testo dell’esercizio 2;

2. si assuma che la lunghezza di ciascuna riga del file di testo corrispondente all’indirizzo di memoria ifp sia inferiore a 100;

3. la function lunghezze deve restituire il vettore nvolte, tale che (alla fine dell’esecuzione della function) l’elemento nvolte[l] deve essere uguale al nu- mero di volte che `e stata trovata una parola di lunghezza l , all’interno del file di testo corrispondente all’indirizzo di memoria ifp.

Riferimenti

Documenti correlati

a) la velocità della sferetta quando ripasserà per il punto A, dopo essere stata lasciata libera di muoversi. Si precisi se la quantità di calore è assorbita o ceduta. b) Si calcoli

● Fornire lo Fornire lo scheletro scheletro di un tipo per le coppie di reali e di di un tipo per le coppie di reali e di un metodo statico Java (solo intestazione) che implementi

ottenuto convertendo ogni coppia di numeri consecutivi in in VN VN (pos. pari) nel numero reale avente il primo. (pos. pari) nel numero reale avente

(4) se il coefficiente di un termine `e positivo, allora la stampa del coefficiente stesso deve essere preceduta da un segno + se e solo se `e un termine di grado inferiore al gr(P

si modifichi il programma richiesto dall’obiettivo 3 in modo tale che esso legga sequenzial- mente dei numeri interi positivi (< 4000) da un file di input e scriva (nello

Si consideri una lista concatenata bidirezionale che `e implementata in linguaggio C, in modo tale che ogni suo nodo `e rappresentato da una struct costituita da tre campi: il primo

quando la somma di tutti i numeri info che compaiono nei nodi della lista con- catenata `e inferiore al valore di somma parz, allora la function deve restituire il puntatore

Si scrivano sotto l’ultima componente di xv e zv con 1 cifra prima della virgola e 15 dopo la virgola, in formato decimale, come pure la loro differenza in modulo err con 1 cifra