sabato 2 maggio 2009

ALGOITMO DI ROTTURA

ALGORITMO DI ROTTURA

#include
FILE *f1;
FILE *f2;
int cstu;
float vstu;
int cstupre;
int cv;
float sv;
float media;

void inizializzazione(){
cv=1;
sv=vstu;
cstupre=cstu;
}
void rottura(){
f1=fopen("voti.txt","r");
f2=fopen("mediaVoti.txt","w");
fscanf(f1,"%d %f\n",&cstu,&vstu);
inizializzazione();
while(cstu!=999){
if(cstu==cstupre){
cv++;
sv=sv+vstu;
}
else{
media=sv/cv;
fprintf(f2,"%d %f\n",cstupre,media);
inizializzazione();
}
fscanf(f1,"%d %f\n",&cstu,&vstu);
}
media=sv/cv;
fprintf(f2,"%d %f\n",cstupre,media);
fclose(f1);
fclose(f2);
}
int main()
{
rottura();
}

[confronto.jpg]

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(); 
}

 


martedì 17 febbraio 2009


Dato un numero intero n, restituisce 1 se n è un numero pari, e 0 se dispari.


#include
void isEven(int a){
int c;
c=a/2;
if(a!=2*c){
printf("0");
}
else{
printf("1");
}
}
int main () {
int b;
printf("\ninserisci numero, 999 per finire:");
scanf("%d",&b);
while(b!=999){
isEven(b);
printf("\ninserisci numero, 999 per finire:");
scanf("%d",&b);
}
}


Dato un numero intero n, restituisce 1 se n è dispari e 0 se n è pari


#include
void isOdd(int a){
int c;
c=a/2;
if(a!=2*c){
printf("1");
}
else{
printf("0");
}
}
int main () {
int b;
printf("\ninserisci numero, 999 per finire:");
scanf("%d",&b);
while(b!=999){
isOdd(b);
printf("\ninserisci numero, 999 per finire:");
scanf("%d",&b);
}
}


Funzione Power




#include
#include


void power(int a, int b){
int c;
c=pow(a,b);
printf("il valore e: %d",c);
}
int main(){
int x;
int n;
printf("inserisci la base della potenza:");
scanf("%d",&x);
printf("inserisci l'esponente della potenza,999 per finire:");
scanf("%d",&n);
while(n!=999){
power(x,n);
printf("\ninserisci la base della potenza:");
scanf("%d",&x);
printf("inserisci l'esponente della potenza,999 per finire:");
scanf("%d",&n);
}
return 0;
}