fisiere2

5. În fişierul text A2.IN se află pe prima linie numărul natural n, n<1000. Să se scrie în fişierul A2.OUT pe prima linie separate prin spaţii numerele prime mai mici decât n, iar pe a doua linie separate prin spaţii primele n numere prime.

Exemplu: pentru n=5 se vor afişa 2 3 pe prima linie şi respectiv 2 3 5 7 11 pe a doua linie.

 

#include<iostream.h>

 #include<io.h>

 #include<string.h>

 #include<fstream.h>

 ifstream f1("a2.in");

 ofstream f2("a2.out");

 int n;

 int prim(int n)

 {

 if(n<2) return 0;

 for(int i=2;i<=n/2;i++)

                if(n%i==0) return 0;

 return 1;

 }

 void citire()

 {

 f1>>n;

 f1.close();

 }

 void afisare()

 {

 for(int i=2;i<=n;i++)

                if(prim(i)==1)f2<<i<<" ";

 f2<<endl;

 if(n>0){

                int k=1;

                f2<<2<<" ";

                i=3;

                while(k<n)

                                {if(prim(i)==1){f2<<i<<" ";k++;}

                                i+=2;}

                }

 f2.close();

 }

 void main()

 {

 citire();

 afisare();

 }

 

6. Din fişierul matrice.txt se preiau de pe prima linie numărul de linii, respectiv de coloane, iar pe următoarele linii elementele de pe fiecare linie a matricei, despărţite prin spaţii. Să se determine produsul numerelor pare de pe coloane impare şi suma numerelor impare de pe coloane pare şi să se afişeze în fişierul rez.dat, fiecare pe câte o linie.

#include<iostream.h>

 #include<io.h>

 #include<string.h>

 #include<fstream.h>

 ifstream f1("matrice.txt");

 ofstream f2("rez.dat");

 int a[50][50],n,m;

 void citire()

 {  int x;

 f1>>n>>m;

 for(int i=1;i<=n;i++)

               for(int j=1;j<=m;j++)

                               f1>>a[i][j];

 f1.close();

 }

 void afisare()

 {

 f2<<"Matricea este:\n";

 for(int i=1;i<=n;i++)

               {for(int j=1;j<=m;j++)

                               f2<<a[i][j]<<" ";

               f2<<endl;

               }

 }

 void produs()

 {

 float p;

 for(int j=1;j<=m;j++)

               {

               if(j%2==1)

                               {p=1;

                               for(int i=1;i<=n;i++)

                                               if(a[i][j]%2==0)p=p*a[i][j];

                               f2<<"produsul numerelor pare de pe coloana "<<j<<" este "<<p<<endl;

               }

               }

 }

 void suma()

 {

 float s;

 for(int j=1;j<=m;j++)

               {

               if(j%2==0)

                               {s=0;

                               for(int i=1;i<=n;i++)

                                               if(a[i][j]%2==1)s=s+a[i][j];

                               f2<<"suma numerelor impare de pe coloana "<<j<<" este "<<s<<endl;

               }

               }

 }

 void main()

 {

 citire();

 afisare();

 produs();

 suma();

 f2.close();

 }

 

 

7. Fişierul date.in conţine pe fiecare linie înălţimea şi numele unei persoane separate printr-un spaţiu. Se cere:

a)       Să se ordoneze alfabetic persoanele înscrise în fişier;

b)       Să se afişeze înălţimea medie a acestora.

#include<iostream.h>

 #include<io.h>

 #include<string.h>

 #include<fstream.h>

 ifstream f("date.in");

 char nume[100][20];

 int n;

 float inalt[100];

 void citire()

 {

 n=0;

 while(!f.eof())

 {n++;

 f>>inalt[n]>>nume[n];

 }

 f.close();

 }

 void afisare()

 {

 for(int i=1;i<=n;i++)

 cout<<inalt[i]<<" "<<nume[i]<<endl;

 }

 void sortare()

 {

 char aux[20];

 float aux1;

 int x;

 for(int i=1;i<n;i++)

                for(int j=i+1;j<=n;j++)

                                {x=strcmp(nume[i],nume[j]);

                                if(x>0)

                                {strcpy(aux,nume[i]);

                                strcpy(nume[i],nume[j]);

                                strcpy(nume[j],aux);

                                aux1=inalt[i];

                                inalt[i]=inalt[j];

                                inalt[j]=aux1;

                                }

                                }

 }

 void media()

 {float s=0;

 for(int i=1;i<=n;i++) s=s+inalt[i];

 cout<<"media inaltimilor="<<(float)s/n;

 }

 void main()

 {

 citire();

 cout<<"datele citite\n";

 afisare();

 sortare();

 cout<<"numele in ordine alfabetica \n";

 afisare();

 media();

 }

counter for wordpress

View My Stats