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.