Sunteți pe pagina 1din 12

PROBLEME FIȘIERE

Partea I
1. Fişierulintrare.txtconţinedouă linii. Pe prima linieestescris un numă r natural
nenuln, (5<n<10). Pe cea de-a doualinie a fişierului sunt scrise n
numereîntregi separate princâte un spaţiu, formatefiecare din celmult4
cifre, reprezentând un şir de nîntregi. Să se scrie un program înlimbajulC++, care:

a) Să se afişeze pe ecran, înlinie, valorile absolute ale numerelor din şir, separate princâte un
spaţiu;

#include <iostream>

#include <fstream>

using namespace std;

int main()

ifstream f("intrare.txt ");

ofstream g("iesire.txt");

int n, x, i;

f>>n;

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

f>>x;

if (x<0) g <<x*(-1) <<" ";

else g <<x <<" ";

return 0;
b) să scrieînfişierul iesire.txt, pe prima linie, toatenumereleimpare din şir,
înordinecrescă toare, separate princâ te un spaţiu.
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
ifstream f("intrare.txt");
ofstream g("iesire.txt");
int n, i, k, d, x;
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
k=0;
if (x<0) x=x*(-1);
for (d=2; d*d<=x; d++)
if (x%d==0)
{
k++;
if (d*d<x) k++;
}
g<<k <<" ";
}
return 0;
}

c) să scrieînfişierul iesire.txt, pe prima linie, toatenumereleimpare din şir,


înordinecrescă toare, separate princâ te un spaţiu.
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int main()
{
ifstream f("intrare.txt");
ofstream g("iesire.txt");
int n, i, x, l=0, v[10001];
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
if (x%2!=0) {l++; v[l]=x;}
}
sort (v+1, v+1+l);
for (i=1; i<=l; i++) g <<v[i] <<" ";
return 0;
}

2. Fişierul intrare.txt conţinedouă linii. Pe prima linieestescris un numă r


natural nenuln, (5<n<30). Pe cea de-a doualinie a fişierului sunt scrise n
numerenaturale separate princâ te un spaţiu, formatefiecare din
celmult9cifre, reprezentâ nd un şir de nnumerenaturale. Să se scrie un
program înlimbajulC++, care:
a) săafişeze pe ecran, înlinie, toatenumerele din şir, separate princâte un spaţiu;
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
ifstream f("intrare.txt");
int n, x, i;
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
cout <<x <<" ";
}
return 0;
}
b) să afişeze pe ecran, înlinie, toate numerele din şir formate numai din cifre pare (dacă nu există
astfel de numere în şir se va afişa mesajul“NU EXISTĂ
NUMERE NUMAI CU CIFRE PARE”
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("intrare.txt");
int ok=1, k, n, i, x, z, c;
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
z=x;
k=1;
while (z!=0 && k==1)
{
c=z%10;
if (c%2!=0) k=0;
z=z/10;
}
if (k==1)
{
ok=1;
cout <<x <<" ";
}
}
if (ok==0) cout <<"Nu exista numere numai cu cifre pare";
return 0;
}
c) să citească de la tastatură două numere natural nenule p1 şi p2 (1<p1<p2<n),să ordoneze
descrescător numerele din șir situate întrepozițiile p1 și p2 inclusiv, și să scrie nou lșir în fișieru
lieșire.txt, pe o linie, numerele separându-se princâte un spațiu.

#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

int main()
{
ifstream f("inserare.txt");
ofstream g("ieșire.txt");
int v[10001], n, x, s, d, i;
cin >>s >>d;
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
v[i]=x;
}
sort(v+s, v+1+d);
for (i=1; i<=n; i++) g<<v[i] <<" ";
f.close ();
g.close ();
return 0;
}
3. Fişierul intrare.txt conţinedouă linii. Pe prima linieestescris un numă r
natural nenul n, (5<n<30). Pe cea de-adoualinie a fişierului sunt scrise n
numerenaturale separate princâ te un spaţiu, formatefiecare din celmult4cifre,
reprezentâ nd un şir de nnumerenaturaledistincte. Să se scrie un program
înlimbajulC++, care:

a) săafişeze pe ecran, înlinie, toatenumerele din şir, separate princâte un spaţiu;


#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("intrare.txt");
int n, i, x;
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
cout <<x <<" ";
}
return 0;
}

b) săafişeze pe ecran, pe liniidiferite, celmai mic număr din şirşipoziţiaacestuia;


#include <iostream>
#include <fstream>
#include <climits>
using namespace std;

int main()
{
ifstream f("intrare.txt");
int n, i, x, min=INT_MAX, d;
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
if (x<min) {min=x; d=i;}
}
cout <<min <<endl <<d;
return 0;
}
c)
Să scrie înfişierul iesire.txt, pe o linie, separate princâte un spaţiu, toate numerele perfecte din şirul
dat (dacă nu există astfel de numere, se va se va afişa mesajul “NU EXISTĂ NUMERE PERFECTE”). Un
număr este perfect dacă este egal cu suma divizorilor lui pozitivi, exceptându-l pe el însuşi,

#include <iostream>

#include <fstream>

using namespace std;

int main()

ifstream f("intrare.txt");

ofstream g("iesire.txt");

int n, i, x, d, S , ok=0;

f>>n;

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

f>>x;

S=0;

for (d=1; d<=x/2; d++)

if (x%d==0) S=S+d;

if (S==x) {g<<x <<" "; ok=1;}

if (ok==0) g<<"Nu exista numere perfecte";

return 0;

}
4. Fişierul intrare.txt conţinedouă linii. Pe prima linieestescris un numă r
natural nenuln, (5<n<30). Pe cea de-a doualinie a fişierului sunt scrise n
numerenaturale separate princâ te un spaţiu, formatefiecare din
celmult4cifre, reprezentâ nd un şir de nnumerenaturaledistincte.
Să se scrie un program înlimbajulC++, care:
a) săafişeze pe ecran, înlinie, toatenumerele din şir, separate princâte un spaţiu;

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("intrare.txt");
int n, i, x;
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
cout <<x <<" ";
}
return 0;
}

b) săafişeze pe ecran, pe liniidiferite, celmai mare număr din şirşipoziţiaacestuia;

#include <iostream>
#include <fstream>
#include <climits>
using namespace std;

int main()
{
ifstream f("intrare.txt");
int n, i, x, max=-INT_MAX, d;
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
if (x>max) {max=x; d=i;}
}
cout <<max <<endl <<d;
return 0;
}

c)
săscrieînfişieruliesire.txt, pe o linie, separate princâte un spaţiu, numerelesupraperfectedin şiruldat
(dacă nu existăastfel de numere, se vaafişamesajul “NU EXISTĂ NUMERE SUPRAPERFECTE”). Un
număreste supraperfect dacă este mai mic decât suma divizorilorlui pozitivi, exceptându-l pe el însuşi,

#include <iostream>

#include <fstream>

using namespace std;

int main()

ifstream f("intrare.txt");

ofstream g("iesire.txt");

int n, i, x, d, S , ok=0;

f>>n;

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

f>>x;

S=0;

for (d=1; d<=x/2; d++)

if (x%d==0) S=S+d;

if (x<S) {g<<x <<" "; ok=1;}

if (ok==0) g<<"Nu exista numere supraperfecte";

return 0;
}

5. Fişierulintrare.txtconţinedouă linii. Pe prima linieestescris un numă r


natural nenuln, (5<n<30). Pe cea de-a doualinie a fişierului sunt scrise n
numerenaturale separate princâ te un spaţiu, formatefiecare din
celmult4cifre, reprezentâ nd un şir de nnumerenaturale.
Şirulconţinecelpuţindouă numere pare. Să se scrie un program înlimbajulC+
+, care:

a) săafişeze pe ecran, înlinie, toatenumerele din şir, separate princâte un spaţiu;

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("intrare.txt");
int n, i, x;
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
cout <<x <<" ";
}
return 0;
}

b) săafişeze pe următoarealinie a ecranului, media aritmetică a tuturornumerelor pare din şir ;

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("intrare.txt");
int S=0, k=0, n, i, x;
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
if (x%2==0)
{
S=S+x;
k++;
}
}
cout <<endl <<S/k;
return 0;
}

c)
săscrieînfişieruliesire.txt, pe o linie, separate princâte un spaţiu, numerele de tip palindrom din şiruldat
(dacă nu existăastfel de numere, se vaafişamesajul “ NUEXISTĂ NUMERE PALINDROM”). Un
numărestepalindromdacănumărulcitit de lastânga la dreaptaesteegal cu numărulcitit de la dreapta la
stânga

#include <iostream>

#include <fstream>

using namespace std;

int main()

ifstream f("intrare.txt");

ofstream g("iesire.txt");

int n, x, i, og, ok=0, c, m;

f>>n;

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

f>>x;

og=0;

m=x;

while (m!=0)

c=m%10;

og=og*10+c;
m=m/10;

if (og==x) {ok=1; g<<x <<" ";}

if (ok==0) g<<"Nu exista numere palindrom";

return 0;

6. Fişierulintrare.txtconţinedouă linii. Pe prima linieestescris un numă r natural


nenuln, (5<n<30). Pe cea de-a doualinie a fişierului sunt scrise n
numerenaturale separate princâ te un spaţiu, formatefiecare din celmult4cifre,
reprezentâ nd un şir de nnumerenaturale.
Şirulconţinecelpuţindouă numereimpare. Să se scrie un program înlimbajulC++,
care:
a) săafişeze pe ecran, înlinie, înordineainversăcitirii, toatenumerele din şir, separate princâte un
spaţiu;

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
ifstream f("intrare.txt");
int n, i, v[10001];
f>>n;
for (i=1; i<=n; i++) f>>v[i];
for (i=n; i>=1; i--) cout <<v[i] <<" ";
return 0;
}

b) săafişeze pe ecran, înlinie, numărul de cifre din care este format fiecarenumăr din şiruliniţial,
numerele din linieseparându-se princâte un spaţiu;
#include <iostream>
#include <fstream>

using namespace std;


int main()
{
ifstream f("intrare.txt");
int k, n, x, i;
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
k=0;
while (x!=0) {k++; x=x/10;}
cout <<k <<" ";
}
return 0;
}

c) săscrie înfişierul iesire.txt, pe prima linie, suma tuturor numerelor impare din şir.

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
ifstream f("intrare.txt");
ofstream g("iesire.txt");
int S=0, n, i, x;
f>>n;
for (i=1; i<=n; i++)
{
f>>x;
if (x%2!=0) S=S+x;
}
g<<S;
return 0;
}

S-ar putea să vă placă și