50 soluzioni degli esercizi sui file
#include <stdio.h>
char* Variazione(char* nomefile1, char* nomefile2, char* valuta_cercata)
{
char valuta[21], *risultato = NULL;
/* si assume che i nome delle valute sia di
al massimo 20 caratteri */
float tasso1, tasso2, incremento;
FILE *fp1, *fp2;
fp1 = fopen(nomefile1,"r");
fp2 = fopen(nomefile2,"r");
while(fscanf(fp1,"%*s %s %f",valuta,&tasso1) != EOF)
{
fscanf(fp2,"%*s %*s %f",&tasso2);
if (strcmp(valuta,valuta_cercata) == 0)
{
incremento = (tasso2 - tasso1)/tasso1;
if (incremento >= 0.01)
risultato = "In Rialzo";
else if (incremento <= -0.01)
risultato = "In Ribasso";
else
risultato = "Stabile";
break;
}
}
fclose(fp1);
fclose(fp2);
return risultato; /* se la valuta non esiste restituisce NULL */
}
main()
{ /* programma principale */
char valuta[21];
char* variazione;
printf("Valuta : ");
scanf("%s",valuta);
variazione = Variazione("cambi1.txt","cambi2.txt",valuta);
if (variazione != NULL)
printf("La valuta %s e %s\n",valuta,variazione);
else
printf("Valuta inesistente\n");
}
Programma simula la borsa economica
Il programma seguente lavora su due file:
Il primo contiene il cambio giornaliero di un insieme di valute straniere nel formato specificato tramite il seguente esempio.
Germania Marco 1029.83 USA Dollaro 1526.72 Regno Unito Sterlina 2378.94 Francia Franco 303.61
Il secondo contiene anch'esso come il primo, ma con valute diverse. Il programma darà come risultato una delle seguenti tre stringhe:
- "In Rialzo" se la valuta è salita di almeno 1%
- "In Ribasso" se la valuta è scesa di almeno 1%
- "Stabile" se il valore della valuta è variato di meno di 1%