Page 1637 - Informatica dalla A a Z
P. 1637
Esercizio4: Il programma dovrà permettere all’utente di inserire una serie di rilevamenti
geografici (latitudine e longitudine). L’inserimento di una latitudine pari a 100 indicherà la
fine della fase di inserimento.
L’elaboratore salverà i dati in un file binario.
Successivamente l’utente inserirà una latitudine e l’elaboratore, cercando nel fine, troverà
e visualizzerà tutti i rilevamenti caratterizzati da quel valore di latitudine.
Infine, l’elaboratore visualizzerà il numero di rilevamenti trovati.
Soluzione:
#include <stdio.h>
typedef struct
{
unsigned int latitudine;
unsigned int longitudine;
} Rilevamento;
void inserisci (char nomeFile[])
{
const unsigned int TERMINATORE = 100;
FILE *archivio;
Rilevamento nuovoRilev;
archivio = fopen (nomeFile, "wb");
printf ("Latitudine (100 per finire): ");
scanf ("%u", &nuovoRilev.latitudine);
if (nuovoRilev.latitudine != TERMINATORE)
{
printf ("Longitudine: ");
scanf ("%u", &nuovoRilev.longitudine);
}
while (nuovoRilev.latitudine != TERMINATORE)
{
fwrite (&nuovoRilev, sizeof(Rilevamento), 1, archivio);
printf ("Latitudine (100 per finire): ");
scanf ("%u", &nuovoRilev.latitudine);
if (nuovoRilev.latitudine != TERMINATORE)
{
printf ("Longitudine: ");
scanf ("%u", &nuovoRilev.longitudine);
}
}
fclose (archivio);
}
1633