• Non ci sono risultati.

Prova scritta del 7 febbraio 2019 di Fondamenti di Programmazione / Fondamenti di Informatica I

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova scritta del 7 febbraio 2019 di Fondamenti di Programmazione / Fondamenti di Informatica I"

Copied!
1
0
0

Testo completo

(1)

Prova scritta del 7 febbraio 2019 di Fondamenti di Programmazione / Fondamenti di Informatica I Per studenti di Ing. Elettronica e Ing. Gestionale immatricolati negli anni accademici 2016-17 e precedenti DURATA DELLA PROVA: 2 ore

A pena di annullamento immediato della prova:

1) Non è possibile consultare libri o appunti (in qualunque forma) né utilizzare calcolatrici, telefoni cellulari, ecc.

2) Non è consentito comunicare (con qualunque mezzo) 3) Non è consentito uscire dall’aula

Lo studente è tenuto a scrivere, correggere, compilare ed eseguire su computer (a casa o in laboratorio) gli esercizi di

programmazione prima della prova orale. Alla prova orale lo studente deve portare una memory pen USB contenente i sorgenti dei programmi corretti e le stampe dei relativi file.

Esercizio 1 (15 punti)

Un file contiene l’elenco dei film in cui hanno recitato, in ruoli principali, alcuni attori. Ciascuna riga contiene il nome del film seguito dell’elenco di attori. Il formato del file può essere dedotto dal seguente esempio:

"Avatar": Sam Worthington, Zoe Saldana, Sigourney Weaver, Stephen Lang, Michelle Rodriguez.

"Everest": Josh Brolin, Jason Clarke, John Hawkes, Robin Wright, Emily Watson, Keira Knightley.

"Pirati dei Caraibi Ai confini del mondo": Johnny Depp, Orlando Bloom, Keith Richards.

"Una donna in carriera": Sigourney Weaver, Melanie Griffith, Joan Cusack.

Si osservi che: 1) i nomi dei film sono sempre racchiusi tra apici; 2) i nomi degli attori sono sempre scritti su due parole (nome e cognome, esattamente in questo ordine e cisacuno di essi non contiene spazi al proprio interno) e sono separati da virgole; 3) tutti gli elenchi sono terminati da un punto.

Non è noto il numero di attori presenti nel file né il numero di film.

Si scriva un programma in linguaggio C, opportunamente organizzato in funzioni, che riceva sulla riga di comando il nome di un file nel formato sopra descritto e il nome e cognome di un attore. Il programma deve stampare l’elenco dei film in cui tale attore compare, in ordine qualunque (e senza doppi apici).

Per esempio, nel caso del file riportato in precedenza e dell’invocazione del programma con la seguente riga di comando,

# stampa_elenco_film database_film.dat Sigourney Weaver

il programma dovrebbe stampare Avatar

Una donna in carriera

Esercizio 2 (15 punti)

Una sequenza di pianificazioni giornaliere per delle operazioni chirurgiche sono rappresentate per mezzo di un vettore di struct in cui in ciascun elemento sono memorizzati il nome del paziente (una stringa di al massimo 64 caratteri) e l’ora in cui l’operazione è stata pianificata. Assumiamo che il vettore venga mantenuto ordinato per orari crescenti e che ciascuna operazione duri esattamente un’ora.

Non è detto, invece, che tutte le operazioni pianificate presenti nel vettore siano contigue (in altre parole, potrebbe esserci

un’operazione alle 9, che terminerà alle 10, e la successiva alle 11, che terminerà alle 12 essendoci una disponibilità fra le 10 e le 11).

Si definisca l’opportuna struct per rappresentare i dati delle operazioni e si scriva una funzione in linguaggio C

inserisci_prenotazione, che riceva come argomenti il vettore di struct descritto in precedenza, il nome di un paziente, un orario, e un flag urgente. La funzione deve inserire la nuova prenotazione nel vettore di struct secondo i seguenti criteri:

1. se la prenotazione è urgente, essa deve essere inserita esattamente all’ora prevista, scalando in avanti, eventualmente fosse presente, la prenotazione precedentemente prevista a quell’ora e tutte le successive.

2. se la prenotazione non è urgente, la prenotazione deve essere inserita nel primo punto libero successivo all’orario richiesto.

Ad esempio, se le prenotazioni fossero le seguenti:

0 Mario Rossi, 8

1 Giuseppina Bianchi, 9 2 Romeo Verdi, 11

3 Matilde Bruni, 12

L’inserimento di una prenotazione, non urgente, per Ezio Cremisi alle 10, inserirebbe questa

prenotazione come elemento di indice 2 dando luogo al seguente vettore:

0 Mario Rossi, 8

1 Giuseppina Bianchi, 9 2 Ezio Cremisi, 10 3 Romeo Verdi, 11 4 Matilde Bruni, 12

Invece, da questo vettore, la prenotazione urgente per Diana Vermigli alle 11, inserirebbe questa prenotazione come elemento di indice 3 dando luogo al seguente vettore:

0 Mario Rossi, 8

1 Giuseppina Bianchi, 9 2 Ezio Cremisi, 10 3 Diana Vermigli, 11 4 Romeo Verdi, 12 5 Matilde Bruni, 13

Riferimenti

Documenti correlati

[r]

- :l (A.T.R.) Alluvioni sciolte di rocce palcozoichc delle sponde occidcutu li della rossa tcuonica, sopra banchi sino a 40150 metri di spessore di argille plastiche bianche o grigie

T1b Tumor incidental histologic finding in more than 5% of tissue resected (Figure 34.3).. T1c Tumor identified by needle biopsy (e.g., because of elevated PSA) T2 Tumor confined

- il compito e' stato rinormalizzato a 36, tenuto conto del notevole numero di domande rispetto al

[r]

[r]

risposta non e' stata data, oppure e' stata ottenuta con un procedimento completamente errato, oppure non e' stato trovato il procedimento stesso sui fogli consegnati. - quando tra

Se compare "." significa che la risposta non e' stata data, oppure e' stata ottenuta con un procedimento. completamente errato, oppure non e' stato trovato il procedimento