martedì 14 aprile 2009

Esercizio x le vacanze n°3

dati due files con record contenenti solo un campo numerico

  1. scrivere un terso file che unisca i due file precedenti
  2. la funzione di stampa

#include 
FILE *f1; 
FILE *f2; 
FILE *f3; 
int a,b; 
void unisci(){ 
    f1=fopen("dati1.txt","r"); 
    f2=fopen("dati2.txt","r"); 
    f3=fopen("unione.txt","w"); 
    fscanf(f1,"%d",&a); 
    while(a!=999){ 
        fprintf(f3,"%d\n",a); 
        fscanf(f1,"%d",&a); 
    } 
    fscanf(f2,"%d",&b); 
    while(b!=999){ 
        fprintf(f3,"%d\n",b); 
        fscanf(f2,"%d",&b); 
        } 
    fclose(f1); 
    fclose(f2); 
    fclose(f3); 
} 
void main(){ 
    unisci(); 
}

 

Esercizio x le vacanze n°2

1.    un campo di tipo string (array di char) ed un secondo campo di tipo int

2.   scrivere i medesimi record con i medesimi campi su di un altro file

3.   scrivere su di un altro file i record che hanno i numeri compresi in un intervallo (a,b) dove a e b sono numeri digitati da tastiera

4.   scrivere su di un altro file i record in ordine inverso

5.   scrivere la funzione che stampa i record dei files

#include  
#include  
char nome[3]; 
int num; 
int numInv[100]; 
char nomInv[3][100]; 
FILE *f1; 
FILE *f2; 
FILE *f3; 
FILE *f5; 
int i=0; 
int x=0; 
int a,b; 
void copia(){ 
    f1=fopen("eser.txt","r"); 
    f2=fopen("copia.txt","w"); 
    fscanf(f1,"%s %d",nome,&num); 
    fprintf(f2,"%s %d\n",nome,num); 
    while((nome!="xx")&&(num!=999)){ 
        fscanf(f1,"%s %d",nome,&num); 
        fprintf(f2,"%s %d\n",nome,num); 
    } 
    fclose(f1); 
    fclose(f2); 
}

void compresi(){ 
    f1=fopen("eser.txt","r"); 
    f3=fopen("compres.txt","w"); 
    printf("inserisci due numeri interi"); 
    scanf("%d %d",&a,&b); 
    fscanf(f1,"%s %d",nome,&num); 
    while((nome!="xx")&&(num!=999)){ 
        if((num>a)&&(num 
            fprintf(f3,"%s %d\n",nome,num); 
        } 
        fscanf(f1,"%s %d",nome,&num); 
    } 
fclose(f1); 
fclose(f3); 
}

void inverso(){ 
    f1=fopen("eser.txt","r"); 
    f5=fopen("inverse.txt","w"); 
    i=1; 
    fscanf(f1,"%s %d",nome,&num); 
    strcpy(nomInv[0],nome); 
    numInv[0]=num; 
    while(num!=999){ 
        fscanf(f1,"%s %d",nome,&num); 
        strcpy(nomInv[i],nome); 
        numInv[i]=num; 
        i++; 
    } 
    x=i; 
    for(i==x;i!=-1;i--){ 
            fprintf(f5,"%s %d\n",nomInv[i],numInv[i]); 
        } 
    }

int main(){ 
    copia(); 
    compresi(); 
    inverso(); 
}

 

 

Esercizio x le vacanze n°1

1. Scrivere i medesimi numeri su di un altro file

2. Scrivere su di un file i numeri compresi in un intervallo (a,b) dove a e b sono numeri digitati da tastiera

3. Scrivere su di un altro file la somma, la media il minimo, il massimo dei precedenti numeri

4. Scrivere su di un altro file i numeri in ordine inverso

#include  
FILE *f1; 
FILE *f2; 
FILE *f3; 
FILE *f4; 
FILE *f5; 
int numeri[100]; 
int a; 
int b; 
int n; 
int u=0; 
int s=0; 
int min; 
int media; 
int i=1; 
int max; 
void leggiScrivi(){ 
     f1=fopen("esercizio1.txt","r"); 
     f2=fopen("copia1.txt","w"); 
     fscanf(f1,"%d",&n); 
     while(n!=999){ 
                     fprintf(f2,"%d\n",n); 
                     fscanf(f1,"%d\n",&n); 
     } 
     fclose(f1); 
     fclose(f2);                      

void compresi(){ 
     f3=fopen("compres.txt","w"); 
     f1=fopen("esercizio1.txt","r"); 
     printf("inserisci due numeri interi:"); 
     scanf("%d %d",&a,&b); 
     fscanf(f1,"%d",&n); 
     while(n!=999){ 
                     if((n>a) && (nmax){ 
            max=n; 
    } 
                    s=s+n; 
                    i++; 
                    fscanf(f1,"%d",&n); 
                    } 
     fprintf(f4,"la somma e:%d\n",s); 
     media=s/i; 
     fprintf(f4,"la media e:%d\n",media); 
    fprintf(f4,"il minimo e: %d\n",min); 
    fprintf(f4,"il massimo e:%d\n",max); 
     fclose(f1); 
     fclose(f4); 
     } 
void inverso(){ 
    f1=fopen("esercizio1.txt","r"); 
    f5=fopen("inverso.txt","w"); 
    i=0; 
    n=0; 
    while(n!=999){ 
        fscanf(f1,"%d",&n); 
        numeri[i]=n; 
        i++; 
    } 
    u=i; 
    for(i==u;i!=-1;i--){ 
    fprintf(f5,"%d\n",numeri[i]); 

fclose(f1); 
fclose(f5);

}    

int main() 

leggiScrivi(); 
compresi(); 
somma(); 
inverso(); 
}