Sunteți pe pagina 1din 14

ATESTAT 2010

ALGORITMI
1.

Scriei un program Pascal/C/C++ care citete de la tastatur un vector a cu n (n<100) elemente


numere reale pozitive i afieaz pe ecran pentru fiecare element al vectorului cel mai mic numr
natural mai mare sau egal cu el i cel mai mare numr natural mai mic sau egal cu el. Valorile vor fi
afiate pe ecran desprite printr-un spaiu.
Exemplu: Dac vectorul a conine elementele: 12.3 1.98 14.67 1 3.11 2.08 3.9 12.89
7.99912 8 6.7 1.001 13 8.9909 4.7 pe ecran se vor afia numerele: 13 12 2 1 15 14 1
1 4 3 3 2 4 3 13 12 8 7 8 8 7 6 2 1 13 13 9 8 5 4

#include <iostream>
using namespace std;
int main()
{
float v[100];
int n,i;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
for(i=1;i<=n;i++)
{
if (int(v[i])==v[i])
cout<<v[i]<<" "<<v[i]<<" ";
else
cout<<int(v[i]+1)<<" "<<int(v[i])<<" ";
}
return 0;
}

2.

Se citesc de la tastatur dou valori naturale m i n (m,n<=100), iar apoi m+n numere ntregi de
cel mult 9 cifre fiecare. Dintre cele m+n numere citite primele m sunt ordonate strict cresctor, iar
urmtoarele n sunt deasemenea ordonate strict cresctor. Se cere s se afieze pe ecran care din
cele m+n numere au fost citite de dou ori.
De exemplu pentru m=7 i n=10 i valorile 1,2,3,4,5,6,20,3,5,7,8, 9,10,12,20, 24,35
se vor afia valorile 3 5 20.

#include <iostream>
using namespace std;
int main()
{
int n,m,v[100],i,j;
cout<<"m="; cin>>m;
cout<<"n="; cin>>n;
for(i=1;i<=n+m;i++)
cin>>v[i];
cout<<"Numerele care se repeta sunt: "<<endl;
for (i=1;i<=m;i++)
for (j=m+1;j<=n+m;j++)
if (v[i]==v[j])
cout<<v[i]<<" ";
return 0;
}

1/14

3.

Scriei un program Pascal/C/C++ care citete de la tastatur un numr natural nenul n (n1000),
construiete n memorie i apoi afieaz pe ecran un tablou unidimensional a, avnd n elemente.
Tabloul a se completeaz cu numerele naturale de la 1 la n, astfel: se memoreaz valoarea 1 pe
poziia 1, valoarea 2 pe poziia n, 3 pe poziia 2, 4 pe poziia n-1, 5 pe poziia 3, etc. Elementele
tabloului se afieaz pe ecran cu cte un spaiu ntre ele.
Exemplu: pentru n=9 tabloul afiat este: 1 3 5 7 9 8 6 4 2

#include<iostream>
using namespace std;
int main()
{
int n,i,k=1,v[100];
cout<<"n="; cin>>n;
for(i=1;i<=n/2;i++)
{
v[i]=k;
k++;
v[n-i+1]=k;
k++;
}
if (n%2==1)
v[i]=k;
cout<<"Vectorul este: ";
for (i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}
4.

Se citete de la tastatur un numr natural n (0<n<100). Scriei programul Pascal/C/C++ ce


afiseaza pe ecran primele n numere prime, n ordine cresctoare, separate prin cte un spaiu.
Exemplu: Pentru n=8, se va afisa pe ecran: 2 3 5 7 11 13 17 19

#include<iostream>
using namespace std;
int prim(int x)
{
int d=2;
for (d=2;d<=x/2;d++)
if (x%d==0)
return 0;
return 1;
}
int main()
{
int n,k=0,i=2;
cout<<"n=";cin>>n;
while (k<n)
{
if (prim(i))
{
k++;
cout<<i<<" ";
}
i++;
}
}

2/14

5.

Se citete de la tastatur un numr natural nenul n care are cel mult 9 cifre. S se afieze pe ecran
numrul k, natural, astfel nct produsul 1*2*3*...*(k-1)*k s aib o valoare ct mai apropiat
de numrul n.
Exemple: dac se citete numarul n=25 pe ecran se va afia 4
dac se citete numrul n=119 pe ecran se va afia 5

#include<iostream>
using namespace std;
int main()
{
int n,fact=1,pfact=1,k=1;
cout<<"n=";cin>>n;
while (fact<=n)
{
pfact=fact;
k++;
fact=fact*k;
}
if (fact-n<n-pfact)
cout<<k;
else
cout<<k-1;
return 0;
}
6.

De la tastatur se citesc n numere naturale cu cel mult dou cifre fiecare. Se cere determinarea i
afiarea pe ecran, n ordine cresctoare, a valorilor distincte citite.
Numerele sunt afiate cte 5 pe fiecare linie (cu excepia ultimei linii care poate s conin mai
puine valori) i sunt separate prin spaiu.
De exemplu, dac se citete de la tastatur
n=20
3 3 7 22 82 7 56 15 3 56 7 22 82 15 7 23 82 82 82
atunci se va afia:
3 7 15 22 23
56 82

#include<iostream>
using namespace std;
int main()
{
int v[100]={0},n,x,i,k=0;
cout<<"n="; cin>>n;
for (i=1;i<=n;i++)
{
cout<<"x="; cin>>x;
v[x]=1;
}
for (i=1;i<100;i++)
{
if (v[i]==1)
{
cout<<i<<" ";
k++;
}
if (k==5)
{
cout<<endl;
k=0;
}
3/14

}
return 0;
}
7.

Scriei programul Pascal/C/C++ care citete de la tastatur un numr natural n (2<n<30) i


construiete n memorie o matrice ptratic cu n linii i n coloane format numai din valori ce aparin
mulimii {1,2,3,...,n} astfel nct elementele din matrice situate pe diagonala secundar s fie
egale cu n, elementele situate pe celelalte dou semidiagonale paralele cu diagonala secundar i
alturate diagonalei secundare s fie egale cu n-1, elementele situate pe urmtoarele dou
semidiagonale paralele cu diagonala secundar, de o parte i de alta a acesteia, s fie egale cu n2 etc. Matricea se va afia pe ecran, cte o linie a matricei pe cte o linie a ecranului, cu spaii ntre
elementele fiecrei linii (ca n exemplu).
De exemplu, pentru n=5 se construiete n memorie i se afieaz matricea:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[100][100],i,j,n,k=0 ;
cout<<"n="; cin>>n;
for (i=1;i<n;i++)
{
for (j=1;j<n-i+1;j++)
a[i][j]=a[n-i+1][n-j+1]=k+j;
k++;
}
for (i=1;i<=n;i++)
a[i][n-i+1]=n;
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
cout<<setw(3)<<a[i][j];
cout<<endl;
}
return 0;
}

4/14

8.

Se citesc de la tastatur dou valori naturale m i n (m,n<=100) i apoi m*n numere ntregi mai
mici de 32000 reprezentnd elementele unei matrice cu m linii i n coloane. Se cere s se determine
valorile maxime de pe fiecare linie a matricei i s se scrie pe ecran suma lor.

1 9 3 4 7

9 6 12 5 10
5 2 7 1 3
, se afieaz pe ecran 28 (deoarece
De exemplu, pentru m=3, n=5 i matricea
valorile maxime pe linii sunt 9,12,7, iar suma lor este 28)

#include<iostream>
using namespace std;
int main()
{
int n,m,i,j,maxi,smax=0,a[100][100],k;
cout<<"n="; cin>>n;
cout<<"m="; cin>>m;
for (i=1;i<=n;i++)
for(j=1;j<=m;j++)
cin>>a[i][j];
for (i=1;i<=n;i++)
{
maxi=a[i][1];
for (j=1;j<=m;j++)
if (a[i][j]>maxi)
maxi=a[i][j];
smax=smax+maxi;
}
cout<<"Suma elementelor maxime de pe fiecare linie este "<<smax;
return 0;
}
9.

Se citesc 2 numere naturale nenule m,n (2<m,n<10). S se scrie programul C/C++ care
construiete n memorie o matrice A cu m linii i n coloane cu proprietatea c A[i][j] este cel mai
mic numr care se poate obine prin concatenarea lui i cu j.Matricea se va afia pe ecran, cte o
linie a matricei pe cte o linie a ecranului, elementele fiecrei linii fiind separate prin spaii.
De exemplu pentru m=3 i n=4 se va afia matricea urmtoare:
11 12 13 14
12 22 23 24
13 23 13 34

#include<iostream>
using namespace std;
int main()
{
int a[100][100],m,n,i,j;
cout<<"m="; cin>>m;
cout<<"n="; cin>>n;
for (i=1;i<=m;i++)
for(j=1;j<=n;j++)
if (i<j)
a[i][j]=i*10+j;
else
a[i][j]=j*10+i;
for (i=1;i<=m;i++)
{ for (j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;}
5/14

10.

Scriei programul Pascal/C/C++ care citete de la tastatur un cuvnt de cel mult 15 litere mici ale
alfabetului englez i care afieaz pe ecran, pe linii distincte, cuvintele obinute prin tergerea
succesiv a vocalelor din cuvntul citit, de la stnga la dreapta, ca n exemplu de mai jos:
Exemplu: Dac se citete cuvntul examen se afieaz:
xamen
xmen
Xmn

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char cuv[100],voc[7]="aeiou";
int i=0;
cout<<"cuv="; cin>>cuv;
while (i<strlen(cuv))
{
if (strchr(voc,cuv[i]))
{
strcpy(cuv+i,cuv+i+1);
cout<<cuv<<endl;
}
else
i++;
}
return 0;
}
11.

S se scrie programul PASCAL/C/C++ care citete de la tastatur un cuvnt de maximum 20 de


litere i minimum o liter i terge litera din mijloc n cazul n care cuvntul are un numr impar de
litere, respectiv cele dou litere din mijlocul cuvntului dac acesta are un numr par de litere.
Programul va afia cuvntul rezultat n urma tergerii sau mesajul CUVANT VID dac dup tergere
acesta rmne far nici o liter.
Exemplu : dac se citete cuvntul carte, se va afia cate.

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char cuv[100];
int n;
cout<<"cuv="; cin>>cuv;
n=strlen(cuv);
strcpy(cuv+n/2,cuv+n/2+1);
if (n%2==0)
strcpy(cuv+n/2-1,cuv+n/2);
if (strlen(cuv)==0)
cout<<"cuvant vid";
else
cout<<cuv;
return 0;
}

6/14

12.

O matrice ptrat este mprit de cele dou diagonale


n patru zone notate A, B, C, D, conform figurii
alturate. Elementele de pe cele 2 diagonale nu aparin
nici uneia dintre cele 4 zone. Scriei un program
Pascal/C/C++ care citete de la tastatur un numr
natural n (n<=20)i formeaz n memorie o matrice ptrat cu n linii i n coloane, n care
elementele de pe cele dou diagonale sunt egale cu 1, elementele care aparin zonelor A i B sunt
egale cu 2, iar elementele care aparin zonelor C i D sunt egale cu 3. Elementele matricei vor fi
afiate pe ecran, cte o linie a matricei pe cte o linie a fiierului cu spaii ntre elementele fiecrei
linii.
De exemplu pentru n=5 pe ecran se va afia:

#include<iostream>
using namespace std;
int main()
{ int n,a[100][100],i,j;
cout<<"n="; cin>>n;
for (i=1;i<=n;i++)
for(j=1;j<=n;j++)
{ if (i==j || j==n-i+1)
a[i][j]=1;
if ((j>i && j<n-i+1)||(j<i && j>n-i+1))
a[i][j]=2;
if ((j<i&&j<n-i+1)||(j>i && j>n-i+1))
a[i][j]=3; }
for (i=1;i<=n;i++)
{ for (j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;}
return 0;}
13.

1
3
3
3
1

2
1
3
1
2

2
2
1
2
2

2
1
3
1
2

1
3
3
3
1

Scriei programul Pascal/C/C++ care citete de la tastatur un ir de cel mult 30 de litere ale
alfabetului englez i afieaz pe ecran irul de caractere dat i toate prefixele i sufixele acestuia de
lungime cel puin 1, fiecare pe cte o linie, n ordinea descresctoare a lungimii lor. De exemplu,
dac se citete irul: proba, atunci se va afia
proba
prob
pro
pr
p

proba
roba
oba
ba
a

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char cuv[30],i,j;
cout<<"cuv="; cin>>cuv;
cout<<"Prefixe: "<<endl;
for (i=0;i<strlen(cuv);i++)
{ for (j=0;j<=i;j++)
cout<<cuv[j];
cout<<endl;
}
cout<<endl;
cout<<"Sufixe: "<<endl;
for (i=0;i<strlen(cuv);i++)
cout<<cuv+i<<endl;
return 0;}
7/14

14.

Scriei programul Pascal/C/C++ care citete de la tastatur dou iruri de cel mult 30 de litere ale
alfabetului englez i afieaz pe ecran mesajul DA dac cele dou iruri de caractere sunt anagrama
celuilalt, sau NU, n caz contrar. De exemplu, dac se citesc irurile secetos i cetoses, se va afia
DA.

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char cuv[30],cuv1[30],i,*p,sw=1;
cout<<"cuv="; cin>>cuv;
cout<<"cuv1="; cin>>cuv1;
for (i=0;i<strlen(cuv)&&sw==1;i++)
{
p=strchr(cuv1,cuv[i]);
if (p!=NULL)
strcpy(p,p+1);
else
sw=0;
}
if (sw==1)
cout<<"Sunt anagrame";
else
cout<<"Nu sunt anagrame";
return 0;
}
15.

Se citete de la tastatur un numr natural n de cel mult 8 cifre distincte. S se afieze pe ecran,
cte unul pe linie, n orice ordine, toate numerele naturale care se pot obine din valoarea lui n prin
eliminarea uneia sau mai multor cifre de la unul din capetele sale.
De exemplu, pentru n=38604, pe ecran se vor afia, cte unul pe linie i nu neaprat n aceast
ordine numerele: 8604 604 4 3860 386 38 3

#include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;
int main()
{
int n,i,j;
char s[20];
cout<<"n="; cin>>n;
itoa(n,s,10);
cout<<"Prefixe: "<<endl;
for (i=0;i<strlen(s);i++)
{
for (j=0;j<=i;j++)
cout<<s[j];
cout<<endl;
}
cout<<endl;
cout<<"Sufixe: "<<endl;
for(i=0;i<strlen(s);i++)
if (s[i]!=0)
cout<<s+i<<endl;
return 0;
}
8/14

16.

Scriei un program Pascal/C/C++ care citete de la tastatur n iruri de caractere formate din litere
mici. S se afiseze toate perechile de iruri dintre cele citite, perechi de forma x,y n care irul x este
subsecven a irului y sau irul y este subsecven a irului x. Fiecare pereche determinat se va
scrie pe cte un rnd, irurile fiind separate printr-o virgul. Dac nu exist nici o astfel de pereche se
va scrie textul FR SOLUIE.
Exemplu. Pentru n=4, dac se citesc:
ari
calculator
mari
lat
se afieaz: ari,mari
calculator,lat

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int n,i,k=0,j;
char t[100][30];
cout<<"n="; cin>>n;
for (i=1;i<=n;i++)
{
cout<<"Cuvantul "<<i<<": ";
cin>>t[i];
}
for (i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
if (strstr(t[j],t[i])||strstr(t[i],t[j]))
{
cout<<t[i]<<","<<t[j]<<endl;
k++;
}
}
if (k==0)
cout<<"Nu exista!";
return 0;
}
17.

Se citesc de la tastatur dou valori naturale m i n (m,n<=100) i apoi m*n numere ntregi mai mici
de 32000 reprezentnd elementele unei matrice cu m linii i n coloane i . S se calculeze suma
elementelor matricei aflate pe rama dreptunghiular avnd elementul din colul stnga-sus determinat
de indicii i,j iar elementul din colul dreapta-jos este determinat de indicii k,l, unde i,j,k i l
sunt 4 numere naturale (1ikn i 1jlm). Rama cuprinde toate elementele de pe liniile i
i k, cuprinse ntre coloanele j i l inclusiv, precum i elementele de pe coloanele j i l cuprinse
ntre liniile i i k inclusiv.
Scriei un program PASCAL/C/C++ care citete din fiier dimensiunile matricei i elementele sale,
apoi de la tastatur patru valori pentru i,j,k,l, calculeaz suma cerut i o afieaz pe ecran.
Exemplu: dac se citete matricea din figura
alturat i se citesc de la tastatur valorile
i=3, j=2, k=6 i l=6, colurile ramei vor
avea indicii (3,2) i (6,6).
Se va afia suma: 68.

9/14

#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("date.in");
int main()
{
int a[100][100],n,m,i,j,k,l,s=0,q,r;
fin>>n>>m;
for (q=1;q<=n;q++)
for (r=1;r<=m;r++)
fin>>a[q][r];
fin>>i>>j>>k>>l;
if (i>0 && k>0 && i<=n && k<=m)
{
if (i<k && j<l)
{
for (q=i;q<=k;q++)
{
s=s+a[i][q];
s=s+a[k][q];
}
for (q=i+1;q<=k-1;q++)
s=s+a[q][j]+a[q][k];
}
}
cout<<s;
return 0;
}
18.

Scriei programul Pascal/C/C++ care citete de la tastatur un numr n de maxim 9 cifre i afieaz
pe ecran toate numerele obinute prin permutri circulare spre stnga ale cifrelor numarului n,
separate prin spaiu.
De exemplu, pentru n=56789123, se vor afia n aceast ordine
67891235 78912356 89123567 91235678 12356789 23567891 35678912

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char t[100],aux;
int n,i;
cout<<"t="; cin>>t;
n=strlen(t);
for (i=1;i<=n-1;i++)
{
aux=t[0];
strcpy(t,t+1);
t[n-1]=aux;
t[n]='\0';
cout<<t<<endl;
}
return 0;
}

10/14

19.

Scriei un program Pascal/C/C++ care citete de la tastatur dou iruri de caractere formate fiecare
din cel mult 100 de litere ale alfabetului englez i afieaz literele care nu apar n niciunul din cele
dou iruri . De exemplu, dac se citesc irurile alfabetazoid i abcdefghijklmqrsuv se va afia
Npwxy

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char s1[100],s2[100],i;
cout<<"Dati sirurile de caractere: ";
cin.get(s1,100); cin.get();
cin.get(s2,100); cin.get();
strlwr(s1); strlwr(s2);
cout<<"Literele care nu apar in niciunul din cuvinte sunt: ";
for (i='a';i<='z';i++)
if (strchr(s1,i)==NULL && strchr(s2,i)==NULL)
cout<<i<<" ";
return 0;
}
20.

Scriei programul Pascal/C/C++ care citete de la tastatur un numr n i apoi n numere ntregi
cuprinse intre -30000 i 30000.
S se determine i s se afieze cel mai mare numr citit i numrul de apariii ale acestuia.
Exemplu: dac se citete n=8 i numerele: 2 7 12 3 8 12 9 5 atunci maximul este 12 i acesta
apare de dou ori.

#include<iostream>
using namespace std;
int main()
{
int n,i,k=0,maxi,x;
cout<<"n="; cin>>n;
maxi=-30000;
for (i=1;i<=n;i++)
{
cin>>x;
if (x==maxi)
k++;
if (x>maxi)
{
maxi=x;
k=1;
}
}
cout<<"Cea mai mare valoare este: "<<maxi<<" si apare de "<<k<<" ori";
return 0;
}

11/14

21.

Scriei programul Pascal/C/C++ care citete de la tastatur un numr n i apoi n numere numere
reale pozitive i afieaz pe ecran numerele care au partea ntreag numr prim. Dac nici unul din
numere nu are partea ntreag numr prim atunci se va afia mesajul NU EXISTA
De exemplu, dac se citesc numerele:
n=6
12.095 31.567 5.789 789.834 1234.923 2.345
atunci se vor afia numerele:
31.567 5.789 2.345

#include<iostream>
using namespace std;
int prim(int x)
{
int d;
for (d=2;d<=x/2;d++)
if (x%d==0)
return 0;
return 1;
}
int main()
{
int n,i,v[100];
float x;
cout<<"n="; cin>>n;
for (i=1;i<=n;i++)
{ cin>>x;
v[i]=(int)x;}
cout<<"Numerele ce au partea intreaga numar prim sunt: ";
for (i=1;i<=n;i++)
if (prim(v[i]))
cout<<v[i]<<" ";
return 0;
}
22.

Scriei programul Pascal/C/C++ care citete de la tastatur un numr n i apoi n numere numere
naturale de cel mult 2 cifre fiecare i afieaz pe ecran, desprite prin cte un spaiu numrul sau
numerele care apar de cele mai multe ori.
De exemplu, dac se citete:
n=10
21 3 4 21 4 5 21 3 6 4
atunci programul va afia numerele 21 i 4, deoarece fiecare apare de cte 3 ori, iar celelalte numere
apar de mai puin de 3 ori.

#include<iostream>
using namespace std;
int v[100];
int main()
{
int n,x,i,max=-1;
cout<<"n="; cin>>n;
for (i=1;i<=n;i++)
{ cin>>x;
v[x]++;}
for (i=1;i<=100;i++)
if (v[i]>=max)
max=v[i];
for (i=1;i<100;i++)
if (v[i]==max)
cout<<i<<" ";
return 0;}
12/14

23.

Scriei un program Pascal/C/C++ care citete un numr natural nenul n (n<11) i apoi construiete
n memorie o matrice cu n linii i n coloane astfel:
- pe diagonala principal toate elementele au valoarea 0;
- sub diagonala principal, respectiv deasupra diagonalei principale elementele vor conine valorile
n (n 1)
1, 2, 3, ,
, dispuse n ordine cresctoare pe linii, iar n cadrul unei linii, n ordine
2
cresctoare de la stnga la dreapta, ca n exemplu. Programul va afia matricea pe ecran, cte o
linie a matricei pe o linie a ecranului, cu un spaiu ntre elementele fiecrei linii.
Exemplu: pentru n=5, programul va afia matricea urmtoare:
0 1 2 3 4
1 0 5 6 7
2 3 0 8 9
4 5 6 0 10
7 8 9 10 0

#include<iostream>
using namespace std;
int main()
{
int a[20][20],n,i,k=1,j;
cout<<"n="; cin>>n;
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++)
a[i][j]=k++;
for (i=1;i<=n;i++)
a[i][i]=0;
k=1;
for (i=2;i<=n;i++)
for (j=1;j<i;j++)
a[i][j]=k++;
for (i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
24.

Se citesc de la tastatur n (n<100) numere naturale mai mici dect 10000. Scriei programul
Pascal/C/C++ ce afieaz pe ecran n ordine cresctoare toate numerele ce ncep i se termin cu
aceeai cifr. Numerele se afieaz separate prin cte un spaiu.
Exemplu: Dac n=6, iar numerele citite sunt: 21 3123 7 454 45 10 atunci programul va afia:
7 454 3123.

#include<iostream>
using namespace std;
int verifica(int x)
{
int i;
i=x%10;
while (x>10)
x=x/10;
if (x==i)
return 1;
else
return 0;
}
int main()
13/14

{
int n,v[100],x,i,k=0,j;
cout<<"n="; cin>>n;
for (i=1;i<=n;i++)
{
cin>>x;
if (verifica(x))
v[++k]=x;
}
for (i=1;i<k;i++)
for (j=i+1;j<=k;j++)
if(v[i]>v[j])
{
x=v[i];
v[i]=v[j];
v[j]=x;
}
for (i=1;i<=k;i++)
cout<<v[i]<<" ";
return 0;
}
25.

Scriei un program care citete de la tastatur un numr natural n (n20) i construiete n memorie
o matrice ptratic avnd n linii i n coloane, cu elemente 0 i 1, dispuse n ptrate concentrice,
fiecare ptrat fiind format doar din valori 1 sau doar din valori 0, ca n exemplul alturat, astfel nct
elementul aflat pe prima linie i prima coloan s fie egal cu 1. Afiai matricea pe ecran cte o linie a
matricei pe o linie a ecranului, cu un spaiu ntre elementele fiecrei linii (ca n exemplul alturat).
Exemplu. Pentru n=6 o soluie posibil este:
1
1
1
1
1
1

1
0
0
0
0
1

1
0
1
1
0
1

1
0
1
1
0
1

1
0
0
0
0
1

1
1
1
1
1
1

14/14

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