fisiere

5
1) Să se scrie programul care creează un fişier text în care memorează două matrice, astfel: - pe prima linie numărul de linii şi numărul de coloane ale primei matrice, separate printr-un spaţiu; - pe fiecare din liniile următoare, în ordine, elementele unei linii din matrice, separate prin cîte un spaţiu; în continuare a doua matrice, în aceeaşi formă. #include<stdio.h> void main() {FILE *f; int m,n,i,j; float x; char s[20]; printf("Nume fisier: ");gets(s); f=fopen(s,"w"); printf("nr. linii a: ");scanf("%d",&m); printf("nr. col a: ");scanf("%d",&n); fprintf(f,"%d %d\n",m,n); for(i=0;i<m;i++) {for(j=0;j<n;j++) {printf("a(%d,%d)=",i,j); scanf("%f",&x); fprintf(f,"%5.2f ",x);} fprintf(f,"\n");} printf("nr. linii b: ");scanf("%d",&m); printf("nr. col b: ");scanf("%d",&n); fprintf(f,"%d %d\n",m,n); for(i=0;i<m;i++) {for(j=0;j<n;j++)

description

aplicatii

Transcript of fisiere

  • 1) S se scrie programul care creeaz un fiier text n care memoreaz dou matrice, astfel:- pe prima linie numrul de linii i numrul de coloane ale primei matrice, separate printr-un

    spaiu;- pe fiecare din liniile urmtoare, n ordine, elementele unei linii din matrice, separate prin cte un

    spaiu; n continuare a doua matrice, n aceeai form.

    #include

    void main()

    {FILE *f;

    int m,n,i,j;

    float x;

    char s[20];

    printf("Nume fisier: ");gets(s);

    f=fopen(s,"w");

    printf("nr. linii a: ");scanf("%d",&m);

    printf("nr. col a: ");scanf("%d",&n);

    fprintf(f,"%d %d\n",m,n);

    for(i=0;i

  • {printf("b(%d,%d)=",i,j);

    scanf("%f",&x);

    fprintf(f,"%5.2f ",x);}

    fprintf(f,"\n");}

    fclose(f);}

    2) S se scrie programul care nmulete matricele aflate n fiierul creat laproblema anterioar,dac e posibil. Rezultatul se va memora n acelai fiier, n continuare, n aceeai form. Dacnmulirea nu e posibil, se va scrie ca rezultat un mesaj de eroare. Matricele snt suficient demici pentru a putea fi ncrcate n memorie.

    #include

    void main()

    {FILE *f;

    int m,n,p,q,i,j,k;

    float x,a[20][20],b[20][20];

    char s[20];

    printf("Nume fisier: ");gets(s);

    if(!(f=fopen(s,"r"))) printf("\nFisierul nu poate fi deschis.");

    else{fscanf(f,"%d %d",&m,&n);

    for(i=0;i

  • else{f=fopen(s,"a");

    fprintf(f,"%d %d\n", m,p);

    for(i=0;i

  • n=0;

    if(fread(&x,sizeof(float),1,f)!=sizeof(float))

    {max=min=x;

    fread(&x,sizeof(float),1,f);

    while(!feof(f))

    {if(xmax)max=x;

    m+=x;n++;

    fread(&x,sizeof(float),1,f);}

    printf("Amplitudine: %7.2f, media: %7.2f",max-min,m/n);}

    else printf("\nFisier gol");

    fclose(f);}

    getch();}

    4) S se scrie programul care calculeaz produsul vectorial dintre doi vectori memorai n fiierebinare. Rezultatul va fi memorat n alt fiier.

    #includeint nrart(FILE *f, int l){long p;int n;p=ftell(f);fseek(f,0,2);n=ftell(f)/l;fseek(f,0,p);return n;}

    void main()

    {FILE *f,*g,*h;

    float x,y,z;

    char s1[20],s2[20];

    printf("\nPrimul fisier: ");gets(s1);

    printf("Al doilea fis: ");gets(s2);

  • if(!(f=fopen(s1,"rb")))printf("Fisierul %s nu poate fi deschis.",s1);

    else if(!(g=fopen(s2,"rb")))printf("Fisierul %s nu poate fi deschis",s2);

    else {if(nrart(f,sizeof(float))!=nrart(g,sizeof(float)))

    printf("Numar diferit de articole.");

    else {printf("Fisier rezultat: ");

    gets(s1);

    h=fopen(s1,"wb");

    fread(&x,sizeof(float),1,f);

    fread(&y,sizeof(float),1,g);

    while(!feof(f))

    {z=x*y;

    fwrite(&z,sizeof(float),1,h);

    fread(&x,sizeof(float),1,f);

    fread(&y,sizeof(float),1,g);}

    fclose(h);}

    fclose(f);

    fclose(g);}

    }