Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
ofstream g("atestat.out");
int x,k,mx,nr,y;
int main()
{mx=-32000;
while(f>>x)
{k=0;y=x;
while(x!=0){k++;x=x/10;}
if(mx<=k){mx=k;nr=y;}
}
g<<nr;
}
8. Se citesc din fiierul atestat.in numere naturale distincte, cu maxim 4 cifre. Afiai
toate numerele din fiier care sunt formate numai din cifre de aceeai paritate.
Numerele determinate se vor afia n fiierul atestat.out, separate printr-un spaiu.
Exemplu: atestat.in
atestat.out
12 555 67 135 224 56 979
555 135 224
979
#include <fstream>
using namespace std;
ifstream f(atestat.in);
ofstream g(atestat.out);
int x,y,uc,c,b;
int main()
{ while(f>>x)
{y=x;uc=x%10;x=x/10;b=1;
while(x!=0){c=x%10;x=x/10;if(c%2!=uc%2)b=0;}
if(b==1)g<<y<< ;
}}
9. Se citesc pe rnd numere naturale cu maxim 9 cifre fiecare, din fiierul atestat.in.
S se determine perechile de numere citite consecutiv, care au proprietatea ca
ambele numere din pereche sunt numere prime i diferena lor n modul este 2.
Fiecare pereche determinat se va afia pe cte un rnd n fiierul atestat.out,
numerele din aceeai pereche fiind separate printr-un spaiu.
Exemplu: atestat.in
atestat.out
2 5 3 7 17 19 56 54
53
17 19
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("atestat.in");
ofstream g("atestat.out");
int a,b;
int prim(int x)
{ int b,d;
b=1;
for(d=2;d<=x/2;d++)
if(x%d==0) b=0;
return b;
}
int main()
{ f>>a;
while(f>>b)
{if(prim(a)==1&&prim(b)==1&&abs(a-b)==2)g<<a<<" "<<b<<endl;
Str. Mihai Eminescu nr. 11, Constana, cod potal: 900664
Tel.: +40 (0)241 611 913, Fax: +40 (0)241 618 880
www.isjcta.ro e-mail: isj-cta@isjcta.ro
a=b;}}
10.Se citesc pe rnd numere naturale cu maxim 9 cifre fiecare, din fiierul atestat.in.
S se determine perechile de numere citite consecutiv, care au proprietatea ca
primul numr din pereche reprezint suma cifrelor impare din cel de-al doilea numr
din pereche. Fiecare pereche determinat se va afia pe cte un rnd n fiierul
atestat.out, numerele din aceeai pereche fiind separate printr-un spaiu.
Exemplu: atestat.in
atestat.out
234 45 6 521 5 5 528 17 97881 67 3
6 521
5 5
5 528
17 97881
#include <fstream>
using namespace std;
ifstream f("atestat.in");
ofstream g("atestat.out");
int a,b;
int suma(int x)
{ int s=0;
while(x!=0){if(x%10%2==1)s=s+x%10;x=x/10;}
return s;
}
int main()
{ f>>a;
while(f>>b)
{if(a==suma(b))g<<a<<" "<<b<<endl;
a=b;}}
11.Se d un tablou bidimensional cu n linii i n coloane(1<=n<=100), ale crui
elemente sunt numere ntregi, distincte. Se cere s se afieze cte perechi de
numere prime ntre ele sunt pe diagonala secundar a matricei.
Datele de intrare se vor citi din fiierul date.in astfel:
- pe prima linie se gsete n;
- pe urmtoarele n linii se gsesc elementele matricei
Datele de ieire se vor scrie n fiierul date.out.
Exemplu: pentru fiierul de intrare date.in:
4
1234
5678
9 10 11 12
13 14 15 16
Fiierul date.out va fi 5
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int n,a[101][101],k;
int cmmdc(int a,int b)
{int r=a%b;
while(r!=0){a=b;b=r;r=a%b;}
return b;}
int main()
{int i,j;
f>>n;
for(i=1;i<=n;i++)
Str. Mihai Eminescu nr. 11, Constana, cod potal: 900664
Tel.: +40 (0)241 611 913, Fax: +40 (0)241 618 880
www.isjcta.ro e-mail: isj-cta@isjcta.ro
for(j=1;j<=n;j++) f>>a[i][j];
k=0;
for(i=1;i<=n-1;i++)
for(j=i+1;j<=n;j++)
if(cmmdc(a[i][n-i+1],a[j][n-j+1])==1) k++;
g<<k;
}
12.Se d un tablou bidimensional cu n linii i m coloane(1<=n, m<=100), elemente
ntregi, distincte. Se cere s se determine i s se afieze toate elementele vecine
elementului maxim din matrice.
Datele de intrare se vor citi din fiierul date.in astfel:
- pe prima linie se gsesc 2 numere n i m;
- pe urmtoarele n linii se gsesc elementele matricei
Datele de ieire se vor scrie n fiierul date.out.
Exemplu: pentru fiierul de intrare date.in:
43
33 65 125
44 32 25
58 14 48
47 69 74
Fiierul date.out va fi: 65 32 25
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int n,m,a[101][101];
int main()
{int i,j,l,c,mx;
f>>n>>m;mx=-32000;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{ f>>a[i][j];if(mx<a[i][j]){mx=a[i][j];l=i;c=j;}}
if(l-1>=1 && c-1>=1) g<<a[l-1][c-1]<<" ";
if(l-1>=1) g<<a[l-1][c]<<" ";
if(l-1>=1 && c+1<=m) g<<a[l-1][c+1]<<" ";
if(c-1>=1) g<<a[l][c-1]<<" ";
if(c+1<=m) g<<a[l][c+1]<<" ";
if(l+1<=n && c-1>=1) g<<a[l+1][c-1]<<" ";
if(l+1<=n) g<<a[l+1][c]<<" ";
if(l+1<=n && c+1<=m) g<<a[l+1][c+1]<<" ";
}
13.Se d un tablou bidimensional cu n linii i m coloane(1<=n,m<=100), elemente
ntregi, distincte. Se cere s se determine i s se afieze cel mai mic element prim
de pe liniile impare ale matricei. Dac nu exist numere prime se va afia un mesaj
corespunztor.
Datele de intrare se vor citi din fiierul date.in astfel:
- pe prima linie se gsesc 2 numere n i m;
- pe urmtoarele n linii se gsesc elementele matricei.
Datele de ieire se vor scrie n fiierul date.out.
Exemplu: pentru fiierul de intrare date.in:
43
32 6 17
44 2 25
Str. Mihai Eminescu nr. 11, Constana, cod potal: 900664
Tel.: +40 (0)241 611 913, Fax: +40 (0)241 618 880
www.isjcta.ro e-mail: isj-cta@isjcta.ro
57 11 4
47 61 45
Fiierul date.out va fi: 11
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int n,m,a[101][101];
int prim(int x)
{ int b,d;
b=1;
for(d=2;d<=x/2;d++)
if(x%d==0) b=0;
return b;
}
int main()
{int i,j,mn,b;
f>>n>>m;mn=32000;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++) f>>a[i][j];
b=0;
for(i=1;i<=n;i=i+2)
for(j=1;j<=m;j++)
if(prim(a[i][j])==1)if(mn>a[i][j]){mn=a[i][j];b=1;}
if(b==1) g<<mn;
else g<<"nu exista elemente prime pe liniile impare ";
}
14.Se d un tablou bidimensional cu n linii i n coloane(1<=n<=100), elemente
ntregi, distincte. Se cere s se verifice dac este ptrat magic sau nu. O matrice
este ptrat magic dac sumele de pe fiecare linie, coloan i de pe cele dou
diagonale sunt egale.
Datele de intrare se vor citi din fiierul date.in astfel:
-pe prima linie se gsete n;
-pe urmtoarele n linii se gsesc elementele matricei.
Datele de ieire se vor scrie n fisierul date.out.
Exemplu: pentru fiierul de intrare date.in:
3
438
951
276
Fiierul date.out va fi: Este ptrat magic.
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int n,a[101][101],mn;
int sumal(int l)
{ int i,s;
s=0;
for(i=1;i<=n;i++) s=s+a[l][i];
return s;
}
int sumac(int c)
Str. Mihai Eminescu nr. 11, Constana, cod potal: 900664
Tel.: +40 (0)241 611 913, Fax: +40 (0)241 618 880
www.isjcta.ro e-mail: isj-cta@isjcta.ro
{ int i,s;
s=0;
for(i=1;i<=n;i++) s=s+a[i][c];
return s;
}
int main()
{int i,j,s,b=1,ss;
f>>n;mn=32000;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) f>>a[i][j];
s=0;
for(i=1;i<=n;i++)s=s+a[i][i];
ss=0;
for(i=1;i<=n;i++)ss=ss+a[i][n-i+1];
if(s!=ss)b=0;
for(i=1;i<=n;i++)if(s!=sumal(i))b=0;
for(i=1;i<=n;i++)if(s!=sumac(i))b=0;
if(b==1) g<<"este patrat magic";
else g<<"nu este patrat magic";
}
15.Se d un tablou bidimensional cu n linii i m coloane(1<=n,m<=100), elemente
ntregi, distincte. Se cere s se determine i s se afieze numrul cel mai mare
care se poate obine din cifrele elementului minim i ale celui maxim din matrice.
Datele de intrare se vor citi din fiierul date.in astfel:
-pe prima linie se gsesc 2 numere n i m;
-pe urmtoarele n linii se gsesc elementele matricei.
Datele de ieire se vor scrie n fiierul date.out.
Exemplu: pentru fiierul de intrare date.in:
43
32 6 17
44 32 25
57 11 4
47 61 45
Fiierul date.out va fi: 641
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int n,m,a[101][101],v[20],k,aux;
int main()
{int i,j,mn,mx;
f>>n>>m;mn=32000;mx=-32000;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{f>>a[i][j];
if(mn>a[i][j])mn=a[i][j];
if(mx<a[i][j])mx=a[i][j];
}
k=0;
while(mn!=0){k++;v[k]=mn%10;mn=mn/10;}
while(mx!=0){k++;v[k]=mx%10;mx=mx/10;}
for(i=1;i<=k-1;i++)
for(j=i+1;j<=k;j++)
Str. Mihai Eminescu nr. 11, Constana, cod potal: 900664
Tel.: +40 (0)241 611 913, Fax: +40 (0)241 618 880
www.isjcta.ro e-mail: isj-cta@isjcta.ro
if(v[i]<v[j]){aux=v[i];v[i]=v[j];v[j]=aux;}
for(i=1;i<=k;i++)g<<v[i];
}
16.Se d un tablou bidimensional cu n linii i n coloane(1<=n<=100), elemente
ntregi, distincte. Se cere s se determine i s se afieze numrul cel mai mare
care se poate obine din cifrele elementului minim i ale celui maxim de pe
diagonala principal. Datele de intrare se vor citi din fiierul date.in astfel:
-pe prima linie se gsete n;
-pe urmtoarele n linii se gsesc elementele matricei
Datele de ieire se vor scrie n fisierul date.out.
Exemplu: pentru fiierul de intrare date.in:
43
3 6 17 23
44 32 25 67
57 11 4 58
47 61 45 89
Fiierul date.out va fi: 983
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int n,a[101][101],v[20],k;
int main()
{int i,j,mn,mx,aux;
f>>n;mn=32000;mx=-32000;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) f>>a[i][j];
for(i=1;i<=n;i++)
{if(mn>a[i][i])mn=a[i][i];
if(mx<a[i][i])mx=a[i][i];
}
k=0;
while(mn!=0){k++;v[k]=mn%10;mn=mn/10;}
while(mx!=0){k++;v[k]=mx%10;mx=mx/10;}
for(i=1;i<=k-1;i++)
for(j=i+1;j<=k;j++)
if(v[i]<v[j]){aux=v[i];v[i]=v[j];v[j]=aux;}
for(i=1;i<=k;i++)g<<v[i];
}
17.Se d un tablou bidimensional cu n linii i m coloane(1<=n,m<=100), elemente
ntregi, distincte. Se cere s se determine matricea obinutprin eliminarea liniei
care conine elementul minim. Datele de intrare se vor citi din fiierul date.in
astfel:
-pe prima linie se gsesc 2 numere n i m;
-pe urmtoarele n linii se gsesc elementele matricei.
Datele de ieire se vor scrie n fiierul date.out.
Exemplu: pentru fiierul de intrare date.in:
43
33 65 125
44 32 25
58 14 48
47 69 74
Fiierul date.out va fi:
33 65 125
Str. Mihai Eminescu nr. 11, Constana, cod potal: 900664
Tel.: +40 (0)241 611 913, Fax: +40 (0)241 618 880
www.isjcta.ro e-mail: isj-cta@isjcta.ro
44 32 25
47 9 74
#include <fstream>
using namespace std;
ifstream f(date.in);
ofstream g(date.out);
int n,m,a[101][101];
int main()
{int i,j,mn,l;
f>>n>>m;mn=32000;
for(i=1;i<=n;i++)
for(i=1;j<=n;j++)
{ f>>a[i][j];
if(mn>a[i][j]){mn=a[i][j];l=i;}}
for(i=l+1;i<=n;i++)
for(j=1;j<=m;j++) a[i-1][j]=a[i][j];
n--;
for(i=1;i<=n;i++)
{ for(j=1;j<=m;j++) g<<a[i][j]<< ;
g<<endl;
}}
18.Se d un tablou bidimensional cu n linii i m coloane(1<=n<=100), elemente
ntregi, distincte. Se cere s se determine matricea obinut prin eliminarea liniei
care conine elementul maxim. Datele de intrare se vor citi din fiierul date.in
astfel:
-pe prima linie se gsesc 2 numere n i m;
-pe urmtoarele n linii se gsesc elementele matricei.
Datele de ieire se vor scrie n fiierul date.out.
Exemplu: pentru fiierul de intrare date.in:
43
33 65 125
44 32 25
58 14 48
47 69 74
Fiierul date.out va fi: 44 32 25
58 14 48
47 9 74
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int n,m,a[101][101];
int main()
{int i,j,mx,l;
f>>n>>m;mx=-32000;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{ f>>a[i][j];
if(mx<a[i][j]){mx=a[i][j];l=i;}}
for(i=l+1;i<=n;i++)
for(j=1;j<=m;j++) a[i-1][j]=a[i][j];
n--;
for(i=1;i<=n;i++)
Str. Mihai Eminescu nr. 11, Constana, cod potal: 900664
Tel.: +40 (0)241 611 913, Fax: +40 (0)241 618 880
www.isjcta.ro e-mail: isj-cta@isjcta.ro
int main()
{f>>n;
for(i=1;i<=n;i++)
{f>>x;
if(x%suma(x)==0)g<<x<< ;
}}
22.n fiierul Numere.in se afl pe prima linie n, numr natural, 2<=n<=100 i pe
linia a doua n numere naturale de maxim 9 cifre.
Construii fiierul Numere.out care s conincea mai lung secvende numere
din fiierul de intrare care are proprietatea c oricare dou numere alturate n
aceast secven au cel puin un divizor comun diferit de 1.
Exemplu:
Numere.in
Numere.o
Explicaie
ut
9
55 66 12 8
n irul dat sunt 2 secvene (valori aflate
12 44 14 23 55 66 12
2
pe poziii consecutive) care indeplinesc
82
cerinele problemei. Cea mai lung dintre
acestea este secvena55 66 12 8 2 n care
oricare dou numere alturate au un
divizor comun mai mare dect 1 ( cmmdc
(55,66) =11, cmmdc(66, 12)=6, cmmdc
(12,8) =4, cmmdc (8,2) =2)
#include <fstream>
using namespace std;
ifstream f("numere.in");
ofstream g("numere.out");
int v[100],s,d,p,u,n,xx;
int cmmdc(int a,int b)
{int r=a%b;
while(r!=0){a=b;b=r;r=a%b;}
return b;
}
int main()
{f>>n;int i,k=1;p=1;
for(i=1;i<=n;i++)f>>v[i];
for(i=2;i<=n;i++)
{ if(cmmdc(v[i-1],v[i])!=1){k++;u=i;}
else {if(mx<k){mx=k;xx=p;}k=1;p=u=i;}
}
for(i=xx;i<=mx+xx;i++)g<<v[i]<<" ";
}
23.n fiierul Numere.in se afl pe prima linie n, numr natural, 2<=n<=100 i pe
linia a doua n numere naturale de maxim 9 cifre.
Construii fiierul Numere.outcare s conin irul de numere din fiierul de
intrare ordonat cresctor dup numrul de cifre de 2 din scrierea fiecrui numr.
Numerele cu acelai numr de apariii ale cifrei 2 i pstreaz aceeai ordine cu
cea din irul iniial.
Exemplu:
Numere.in
Numere.out
Explicaie
9
44 66 8 12 23 21 2 44 66 8 au cte 0 apariii ale
12 44 922 23 2225 66 21
922 2225
cifrei 2, 12 23 21 2 au cte o
82
apariie a cifrei 2, 922 are 2
cifre de 2 i 2225 are 3 cifre de
Str. Mihai Eminescu nr. 11, Constana, cod potal: 900664
Tel.: +40 (0)241 611 913, Fax: +40 (0)241 618 880
www.isjcta.ro e-mail: isj-cta@isjcta.ro
Numere.in
Numere.o
ut
3
Explicaii
5
Sunt 3 numere care sunt
12 9643 822 882
compuse doar din cifre pare:
264
822, 882 i 264
#include <fstream>
using namespace std;
ifstream f("numere.in");
ofstream g("numere.out");
long x;int n,i,k;
int pare(long x)
{ int b,c;
b=1;
while(x!=0){c=x%10;x=x/10;if(c%2==1)b=0;}
return b;
}
int main()
{f>>n;k=0;
for(i=1;i<=n;i++){f>>x;
if(pare(x)==1)k++;}
g<<k<<" ";
}
28.n fiierul Numere.in se afl pe prima linie n, numr natural, 2<=n<=100 i pe
linia a doua n numere naturale de maxim 9 cifre.
Construii fiierul Numere.out care s conin numrul de numere din fiierul
de intrare care sunt compuse doar din cifrele, 2,3,7 i 9, nu neaprat toate acestea
n fiecare dintre numere.
Exemplu:
Numere.in
Numere.ou
Explicaii
t
4
2
Sunt dou numere cu proprietatea cerut, 32 i
32 9643 976
732
732
#include <fstream>
using namespace std;
ifstream f("numere.in");
ofstream g("numere.out");
long x;int n,i,k;
int cifre (long x)
{ int b,c;
b=1;
while(x!=0){c=x%10;x=x/10;if(c!=2&&c!=3&&c!=7&&c!=9)b=0;}
return b;
}
int main()
{f>>n;k=0;
for(i=1;i<=n;i++){f>>x;
if(cifre(x)==1)k++;}
g<<k<<" ";
}
29.n fiierul Numere.in se afl pe prima linie n, numr natural, 2<=n<=100 i pe
linia a doua n numere naturale de maxim 9 cifre.
Str. Mihai Eminescu nr. 11, Constana, cod potal: 900664
Tel.: +40 (0)241 611 913, Fax: +40 (0)241 618 880
www.isjcta.ro e-mail: isj-cta@isjcta.ro