Programmazione II Compitino (Vers. B)
Transcript
Programmazione II Compitino (Vers. B)
Programmazione II Compitino (Vers. B) 28 gennaio 2011 Cognome ............................... Nome ............................... Matricola ............................... 1 1. Scrivete un programma che chieda ripetutamente all'utente di inserire degli interi, e che termini quando l'utente inserisce il valore 0; potete assumere che l'utente non inserisca più di 100 interi e che tali interi siano tutti distinti. Al termine dell'inserimento, il programma deve stampare l'elenco dei valori inseriti; ciascun valore di elementi che sono multipli di x. 3 12 21 5 45 24 0 3 5 12 2 21 1 5 2 45 1 24 1 2 x deve essere seguito dal numero 2. Scrivete una funzione che, data una stringa e un carattere, restituisca il numero di volte che il carattere compare nella stringa all'inizio di una parola (qui stiamo supponendo che le parole siano separate fra loro da caratteri non alfanumerici). Ad esempio, se la stringa fosse la salma ha mangiato la manza e il carattere fosse 'm', la funzione dovrebbe restituire 2. 3 3. Una farmacia commercializza vari prodotti; ogni prodotto è caratterizzato da: • un codice merceologico, di 8 caratteri; • un nome (una stringa di al più 100 caratteri); • il nome del principio attivo (una stringa di al più 100 caratteri); • un prezzo di vendita (in euro); • il numero di unità di quel prodotto disponibili in magazzino. Denite una struttura C, di nome farmaco, che rappresenti un farmaco. Ora scrivete una funzione che, dato un array di farmaci, un numero n (il numero di elementi dell'array eettivamente utilizzati) e il nome di un farmaco x, il numero totale di unità di farmaci presenti in magazzino con lo stesso principio attivo di x. 4 4. Scrivete un programma che, ricevendo sulla riga di comando un carattere e un numero, stampi quel numero di volte quel carattere. Ad esempio, se supponete che il programma si chiami rip, un tipico esempio di esecuzione potrebbe essere [gnagna]>./rip u 12 uuuuuuuuuuuu [gnagna]> Suggerimento. stdlib.h), Vi ricordiamo che la funzione atoi (dichiarata in data una stringa contenente una sequenza di cifre, restitui- sce il corrispondente numero intero. Ad esempio, atoi ( "452") restituisce il numero 452. 5 5. Scrivete una funzione che, data una stringa, resituisca il puntatore alla prima occorrenza di un carattere maiuscolo nella stringa, oppure la stringa non ne contiene. 6 NULL se 6. Supponete di avere dichiarato un tipo typedef struct { char nome [ 500 ] , cognome [ char c i t t a [ 500 ] ; int r e d d i t o _ a n n u o ; } contribuente 500 come segue: ]; contribuente ; Scrivete una funzione che, dato il nome di una città, un array di contribuenti e la sua lunghezza, stabilisca e restituisca il reddito medio degli abitanti di quella città. 7 7. Implementate in C la seguente funzione f che data una stringa x restituisce un intero: ( f (x) = 5 3 + f (u) Ad esempio, se se x x ha lunghezza dispari ha lunghezza pari, e u è la prima metà della stringa f (cartellonare ) = 3+f (“cartel00 ) = 6+f (“car00 ) = 11. NB: la funzione può, se necessario, modicare a piacere l'array di caratteri che le viene passato come argomento. 8 x.