Fondamenti di Informatica: esercitazione di laboratorio n. 5

Fondamenti di Informatica: esercitazione di laboratorio n. 5
File
Pier Luca Montessoro
1. File ASCII contenente numeri
•
•
Il file numeri.txt contiene una sequenza di lunghezza ignota di numeri reali. Si scriva un programma in linguaggio C che
stampi sul video la somma e la media dei numeri contenuti nel file.
NOTA: si ricorda che la funzione fscanf restituisce EOF quando arriva alla fine del file
2. File ASCII e struct (I)
•
Un file ASCII è così strutturato:
<nome prodotto>
<nome prodotto>
<nome prodotto>
...
•
<quantità in magazzino>
<quantità in magazzino >
<quantità in magazzino >
Il numero di righe è ignoto, ma non superiore a 100. Per esempio:
vite
100
dado
1000
rondella
40
chiodo
70
•
Il numero di spazi che separano il nome dalla quantità può essere variabile.
•
Si scriva un programma in linguaggio C che definisca il seguente vettore di strutture:
struct articolo
{
char nome[32];
int q;
};
struct articolo articoli[100];
int n_articoli;
•
Il programma deve leggere da tastiera il nome del file nel formato sopra descritto, leggere tale file copiandone il
contenuto nel vettore di struct in memoria e, infine, stampare sul video il contenuto del vettore (per controllare la corretta
esecuzione delle fasi precedenti).
3. File ASCII e struct (II)
•
Un file ASCII contiene una lista di componenti necessari per un progetto, nel seguente formato:
chiodo
dado
rivetto
vite
100
12
8
12
Si osservi che è il medesimo formato dell’esercizio precedente. Si osservi inoltre che l’ordine degli articoli e il loro numero
può essre differente.
•
Facendo uso delle funzioni scritte per l’esercizio precedente, si scriva un programma che legga da tastiera i nomi di due
file, il primo contenente una lista di articoli in magazzino (v. es. 3) e il secondo una lista di componenti per il progetto. Il
proramma deve verificare se tutti gli articoli richiesti dal progetto sono presenti in magazzino in quantità sufficiente e
scriverlo sullo schermo. Nel caso in cui un articolo non sia presente in magazzino, o sia presente in quantità insufficiente,
il programma deve stampare la quantità mancante.
Con riferimento all’esempio sopra riportato:
ARTICOLI MANCANTI:
chiodo: 30
rivetto: 8