Sunteți pe pagina 1din 20

Se da o matrice cu m linii si n coloane, cu elemente intregi.

Scrieti programul care sa afiseze


liniile pe care se afla valoarea minima.
Exemplu:
Se da matricea 2 9 4
8 4 3
7 2 5
9 3 2
Se va afisa: Elementul minim este 2
Se vor afisa liniile 1,3,4

#include <iostream>
using namespace std;
int main ()
{
int a[50][50],n,m,mini,i,j; // declaram variabilele
cout<<"m=";cin>>m; // introducem numarul de linii
cout<<"n=";cin>>n; // introducem numarul de coloane
for(int i=1;i<m;i++)
for(int j=1;j<n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];
}
mini=a[1][1]; //consider prima val din matrice ca este minima
for(i=1;i<m;i++)
for(j=1;j<n;j++)
if(a[i][j]<mini) mini=a[i][j]; // am gasit val minima
// citesc iarasi matricea si afisez indicele liniei cu val minima
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i][j]==mini)
cout<<"linia "<<i<<" contine valoarea minima"<<mini;
return 0;
}

1
Scrieti un program C/C++ care citeste de la tastatura un numar natural n (0<n<=23) si apoi
construieste in memorie o matrice cu n linii si n coloane astfel incat elementele situate pe
diagonala principala sa fie egale cu 2, cele situate deasupra diagonalei principale sa fie egale
cu 1, iar cele situate sub diagonala principale sa fie egale cu 3. Programul va afisa matricea pe
ecran, cate o linie a matricei pe o linie a ecranului, cu cate un spatiu intre elementele fiecarei
linii. Exemplu: daca n este 4 atunci programul va construi si va afisa matricea alaturata.

 2 1 1 1
 3 2 1 1
 3 3 2 1
 3 3 3 2

2
Se da o matrice pătratică cu n linii și n coloane, cu elemente numere
întregi. Scrieți programul care să afișeze suma elementelor matricei
aflate pe diag principala.

794
863
727
Se va afisa 20.

3
Scrieți un program C/C++ care citeşte de la tastatură un număr natural, n (2≤n≤20), şi
construieşte în memorie tabloul bidimensional cu n linii şi n coloane, având proprietățile:
• toate elementele situate pe diagonala principală sunt nule;
• fiecare linie conține, începând cu diagonala principală, de la dreapta la stânga, un şir strict
crescător de numere consecutive, iar începând cu diagonala principală, de la stânga la
dreapta, tot un şir strict crescător de numere consecutive. Programul afişează pe ecran
tabloul construit, fiecare linie a tabloului pe câte o linie a ecranului, cu elementele
aflate pe aceeaşi linie separate prin câte un spațiu.
Exemplu: dacă n=5 se afişează pe ecran tabloul alăturat . 0 1 2 3 4
1 0 1 2 3
2 1 0 1 2
3 2 1 0 1
4 3 2 1 0

11 12 13 14 15
21 22 23 24 25 Deasupra diagonalei principale j > i
31 32 33 34 35
41 42 43 44 45
Sub diagonala principala j < I

Pt. elementul cu indice 25 ; i=2 si j=5


4
51 52 53 54 55

5
Fie o matrice A pătratică (nxn) . Să se scrie programul care afișează produsul elementelor de
pe diagonala principală.
Exemplu: se considera matricea :
2 4 7
8 4 1
3 7 9
Se va afișa 72.

6
Fiind data o matrice A patratica cu nxn elemente numere intregi, sa se scrie programul care
calculeaza suma elementelor de pe marginea tabloului.

Exemplu: se considera matricea :


2 4 7
8 4 1
3 7 9
Se va afisa 41.

7
Elementele din Nord si din Vest
Fiind data o matrice a patratica cu nxn elemente numere intregi,
, sa se afiseze elementele din nord si elementele din vest.
Elementele din nord sunt elemente de deasupra diagonalei principale
si de deasupra diagonalei secundare, iar elementele din vest se gasesc
sub diagonala principala si deasupra diagonalei secundare.

8
Diferenta dintre suma elem-lor diag principala minus suma elem diag
secundara

9
Construiti si afisati o matrice patratica de ordin n dupa modelul de mai jos
pentru care n=5: 
1 2 3 4 5 
2 1 2 3 4 
3 2 1 2 3 
4 3 2 1 2 
5 4 3 2 1 

10
Seda o matrice A cu m linii și n coloane cu elemente numere intregi. Să se afișeze
numărul elementelor pozitive , negative și nule de pe o linie L a matricei.
Exemplu:

A=

11
12
Se da o matrice a cu m linii si n coloane, cu elemente numere intregi.
Sa se afiseze liniile care au cele mai putine elemente nule.

13
Scrieti un program C/C++ care citeste de la tastatura un numar natural n (0<n<=23) si apoi
construieste in memorie o matrice cu n linii si n coloane astfel incat elementele situate pe
diagonala secundara sa fie egale cu 0, cele situate deasupra diagonalei secundara sa fie egale
cu 2, iar cele situate sub diagonala secundara sa fie egale cu 3. Programul va afisa matricea pe
ecran, cate o linie a matricei pe o linie a ecranului, cu cate un spatiu intre elementele fiecarei
linii. Exemplu: daca n este 4 atunci programul va construi si va afisa matricea alaturata.

 2 2 2 0
 2 2 0 3
 2 0 3 3
 0 3 3 3

#include <iostream>
using namespace std;
int main()
{
int i,j,a[24][24],n;
cout<<"n=";cin>>n;
// incarcare valori in matrice conf. cerintei
for(i=1; i<=n; i++)
for(j=n; j>=1; j--)
if(j==n+1-i) a[i][j]=0;
else
if (j<n+1-i) a[i][j]=2;
else
j < n+1-i a[i][j]=3;
//afisare matrice
for(i=1; i<=n; i++)
{
i+j=n+1 for(j=1; j<=n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
j > n+1-i }

14
13. Fisierul text “date.in” conține pe prima linie numărul de elemente ale unui șir de numere
întregi și pe a doua linie elementele șirului separate prin spațiu. Se cere să se afișeze produsul
elementelor negative.

Exemplu : “date.in”
6
2 -3 7 -5 -1 6 Se va afișa -15

#include <iostream>
#include <fstream>
.
int main()
{
int n,i,x,p=1;
ifstream f; //fstream bibioteca standard pt citire/scriere in fisier
f.open ("date.in"); // deschidem fisierul
f>>n; // citim valoarea 6 din fisier si se incarca in variabila n
for (i=1;i<=n;i++) //voi repeta citirea de 6 ori
{
f>>x; //citesc din fisier fiecare valoare din randul doi
if(x<0) p=p*x;
}
f.close(); //inchidem fisierul
// afisare
cout<<"Produsul este: " <<p<<endl;
return 0;
}

15
14. Fisierul text “numere.txt” conține pe prima linie numărul n de elemente ale unui șir de
numere întregi și pe a doua linie elementele șirului separate prin spațiu. Se cere să se afișeze
numărul elementelor pare, impare și nule.

Exemplu : “numere.txt”
6
5 6 1 0 -3 0
Se va afișa : 1 numere pare
2 numere nule
2 numere impare

#include <iostream>
#include <fstream>
int main()
{
int n,i,imp=o,par=0, nul=0,x;
ifstream f; //fstream bibioteca standard pt citire/scriere in fisier
f.open ("numere.txt"); // deschidem fisierul
f>>n; // citim valoarea 6 din fisier si se incarca in variabila n
for (i=1;i<=n;i++) //voi repeta citirea de 6 ori
{
f>>x; //citesc din fisier fiecare valoare din randul doi
if(x==0) nul=nul+1;
else
if(x%2=0) par=par+1;
else imp=imp+1;
}
f.close(); //inchidem fisierul
// afisare
cout<<"Numarul elem. pare este: " <<par<<endl;
cout<<"Numarul elem. impare este: " <<imp<<endl;
cout<<"Numarul elem. nule este: " <<nul<<endl;
return16 0;
}
Se citește un șir de n numere întregi , din fișierul “date.in”. Fișierul conține pe primul rând
numărul n de elemente ale șirului și valoarea p, iar pe al doilea rând elementele șirului separate
prin spațiu. Să se afișeze elementele șirului care sunt divizibile cu p.
Exemplu : “date.in”
5 4
2 4 6 8 9 Se va afișa 48

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int n,i,x,p;
ifstream f;
f.open ("date.in"); // deschidem fisierul
f>>n>>p; // citim din fisier primul rand,
// valoarea 5 se incarca in variabila n
// si valoarea 4 se incarca in variabila p
for (i=1;i<=n;i++) //voi repeta citirea de 5 ori
{
f>>x; //citesc din fisier fiecare valoare din randul doi
if(x%p==0) cout<<x;
//verific pentru fiecare daca se imparte cu 4
// daca restul impartirii cu 4 este zero , afisez numarul
}
f.close(); //inchidem fisierul
cout<<endl;
return 0; 17
}
Fisierul text “exemplu.txt” conține pe prima linie un număr natural n, iarpe linia următoare un
șir de numere întregi. Scrieți un program care construiește un vector u cu elemente pare ale
șirului și un vector v cu elemente impare.

Exemplu : “exemplu.txt” Se vor afisa:


6 numere pare 2 14 45
2 14 15 46 1 7 numere impare 15 1 7

include <iostream>
using namespace std;
int n,i,x,p=0,q=0 ,v[20],u[20];
int main()
{
ifstream f;
f.open ("exemplu.txt"); // deschidem fisierul
f>>n; // citim valoarea 6 din fisier si se incarca in variabila n
for (i=1;i<=n;i++) //voi repeta citirea de 6 ori
{
f>>x; //citesc din fisier fiecare valoare din randul doi
if(x%2=0) { p=p+1;
v[p]=x; }
else
{ q=q+1;
u[q]=x; }
}
f.close(); //inchidem fisierul
// afisare
cout<<"Elementele impare : " <<endl;
for(i=1; i<=p; i++)
cout<<"v["<<i<<"]="<<v[i]<<endl;
cout<<"Elementele pare : " <<endl;
for(i=1; i<=q; i++)
cout<<"u["<<i<<"]="<<u[i]<<endl;
return 0;

18
17 Se consideră vectorul v cu elemente numere reale. Să se realizeze un program care introduce
lungimea vectorului, introduce elementele vectorului și ordonează (sortează) crescător elementele
vectorului v.

#include <iostream>
using namespace std;
int main()
{
float v[20],m;
int n,i,j,ok=0;
cin>>n; //citim dimensiunea vectorului in variabila n
for (i=1; i<=n; i++)
{
cout<<"v["<<i<<"]=";
cin>>v[i]; // introducem valorile pt vector
}
do {
ok=1;
for (i=1; i<=n; i++)
if(v[i]>v[i+1])
{
m=v[i];
v[i]=v[i+1];
v[i+1]=m;
ok=0;
}
}
while (ok==0);
cout << "Vectorul dupa sortare este " << endl;
for(i=1; i<=n; i++)
19
cout<<"v["<<i<<"]="<<v[i]<<endl;
return 0;
}
sursa de unde va documentati pt sortare si aici avem un exemplu

18 Fiind data o matrice cu elemente numere întregi să se construiască un vector v cu elementele


matricei. Scrieti si secventa de citire si afisare a matricei.

Exemplu : fie matricea

Se va obtine vectorul v=(3,1,9,8,6,13,7,4,6).

#include <iostream>
using namespace std;
int main()
{
int a[20][20],v[80],z=0,m,n,i,j,k;
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cout<<"[a"<<i<<"]["<<j<<"]=";cin>a[i][j]; // citire
matrice
cout<<"matricea este"<<endl; // afisare matrice
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
k=0;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
k=k+1;
v[k]=a[i][j];
}
//afisare vector
20 for(i=1;i<=k;i++)
cout<<v[i]<<" ";
return 0;
}

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