Sunteți pe pagina 1din 26

Portofoliu la informatica .

Clasa a XI -a A .

A.Matrice patratica-diagonala principala:


1. afisarea elementelor de pe diagonala:
void afisare_dp(int n, int a[10][10]) {
int l,c;
for(l=1;l<=n;l++) {
for(c=1;c<=n;c++)
if(l==c)
cout<<a[l][c]<<" "; } }
2. afisarea elementelor de deasupra diagonalei:
void afisare_deasupradp(int n, int a[10][10]) {
int l,c;
for(l=1;l<=n;l++) {
for(c=1;c<=n;c++)
if(l<c)
cout<<a[l][c]<<" "; }
cout<<endl; }
3. afisarea elementelor de sub diagonala:
void afisare_subdp (int n, int a[10][10])
int l,c;
for(l=1;l<=n;l++) {
for(c=1;c<=n;c++)
if(l>c)
cout<<a[l][c]<<" "; } }
B. Matrice patratica-diagonala secundara:
1. afisarea elementelor de pe diagonala:
void afisare_ds(int n, int a[10][10]) {
int l,c;
for(l=1;l<=n;l++) {
for(c=1;c<=n;c++)
cout<<"a[l][n+1-l]<<" "; } }
2. afisarea elementelor de deasupra:
void afisare_deasuprads(int n, int a[10][10]) {
int l,c;
for(l=1;l<=n;l++) {
for(c=1;c<=n;c++)
if(l+c<n+1)
cout<<a[l][c]<<" "; } }
3. afisarea elementelor de sub diagonala:
void afisare_subds(int n, int a[10][10]) {
int l,c;
for(l=1;l<=n;l++) {
for(c=1;c<=n;c++)
if(l+c>n+1)
cout<<a[l][c]<<" "; } }.
1. Scrieti un program C/C++ care citeste de la tastatura doua
numere naturale n sim (2<=m<=10 ; 2<=n<=10) si care construieste
in memorie si apoi afiseaza o matrice A cu n linii si m
coloane(numerotate de la 1 la n , respectiv la 1 la m) cu
proprietatea ca fiecare element de forma Aij memoreaza cea mai

mica dintre valorile indiclor I si j . Matricea se va afisa pe ecran , cate o linie

a matricei pe cate o linie a ecranului , elementele fiecare linii fiind separate

prin cate un spatiu .

C/C ++
# include <iostream>
using namespace std;
int maint (){
int m,n,a[11][11];
cout<<”Numarul de linii”;
cin>>n;
cout<<”Numarul de coloane”;
cin>>m;
int I ,j ;
for (i=1;i<=n;i++)
for(j=1;j<=n;j++){
f(i<j)
a[i][j]=i;
else
a[i][j]=j;}
for (i=1;i<=n;i++){
for(j=1;j<=m;j++){
cout<<a[i][j]<<” “ ;}
cout<<”\n”;}
return 0;
}
2.Scrieti un program C/C++ care citeste de la tastatura doua
numere naturale n si p(2<=n<=20; 1<=p<=20) si construieste
in memorie un tablou bidimensional cu n linii si p coloane .
Tabloul va fii consturit astfel incat , parcurgand tabloult linie
cu linie din sus in jos si fiecare linie de la stanga la dreapta ,
sa se obtina sirul primelor n , p patrate perfecte impare
,ordonat strict crescator , ca in exemplu . Tabloul astfel
construit va fi afisat pe ecran , fiecare linie a tabloului pe cate
o linie a ecranului , cu cate un spatiu intre elementele fiecarei
linii.
C/C++
#include <iostream>
using namespace std;
int main(){
int I,n,p,x,j,a[30][30];
cout<<”Numarul de linii”;
cin>>n;
cout<<”Numarul de coloane”;
cin>>p;
x=1;
for(i=0;i<n;i++)
for(j=0;j<p;j++){
a[i][j]=x*x;
x=x+2;}
for(i=0;i<n;i++){
for(j=0;j<p;j++)
cout<<a[i][j]<<” “;
cout<<endl;}
return 0; }
3. Scrieţi un program C/C++ care citeşte de la tastatură două
numere naturale, m si n
(3≤m≤50, 3≤n≤50), şi elementele unui tablou bidimensional
cu m linii şi n coloane, numere
naturale cu cel mult patru cifre, apoi modifică tabloul în
memorie, eliminând penultima linie
si penultima coloană a acestuia, ca în exemplu. Programul
afişează pe ecran tabloul
obtinut, fiecare linie a tabloului pe câte o linie a ecranului,
elementele de pe aceeasi linie
fiind separate prin câte un spatiu.
C/C++
#include <iostream>
using namespace std;
int main()
{
int A[51][51],m,n;
cin>>m>>n;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++) cin>>A[i][j];
for(int j=1;j<=n;j++) A[m-1][j]=A[m][j];
m--;
for(int i=1;i<=m;i++) A[i][n-1]=A[i][n];
n--;
for(int i=1;i<=m;i++)
{ for(int j=1;j<=n;j++) cout<<A[i][j]<<" ";
cout<<endl;
}
return 0;
}
4 . Sa se scrie un program in C/C++ care sa afiseze transpusa
unei matrice.
C/C++
#include <iostream>
using namespace std;
int main() {
int n,i,j,a[20][20],at[20][20];
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j]; }
cout<<"Matricea este:"<<endl;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl; }
cout<<"Matricea transpusa este:"<<endl;
for(i=1;i<=n;i++){
for (j=1;j<=n;j++){
at[i][j]=a[j][i];
cout<<at[i][j]<<" ";}
cout<<endl; }
return 0; }
5 . Sa se scrie un program in C/C++ care sa calculeze si sa
afiseze produsul a doua matrici .
C/C++
#include<iostream>
using namespace std;
int p[20][20];
int main()
{
int m,n,o,i,j,k,a[20][20],b[20][20];
cout<<"Introduceti dimensiunile matricii:"<<endl;
cout<<"m=";cin>>m;
cout<<"n=";cin>>n;
cout<<"Introduceti dimensiunile matricei:"<<endl;
cout<<"n="<<n<<endl;
cout<<"o=";cin>>o;
cout<<"Introduceti prima matrice :"<<endl;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
cout<<"Introduceti a doua matrice :"<<endl;
for(j=1;j<=n;j++)
for(k=1;k<=o;k++)
{
cout<<"b["<<j<<"]["<<k<<"]=";
cin>>b[j][k];
}
cout<<"Prima matrice este:"<<endl;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<"A doua matrice este:"<<endl;
for(j=1;j<=n;j++)
{
for(k=1;k<=o;k++)
cout<<b[j][k]<<" ";
cout<<endl;
}
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
p[i][j]=p[i][j]+a[i][k]*b[k][j];
cout<<"Matricea produs este:"<<endl;
for(i=1;i<=m;i++)
{
for(j=1;j<=o;j++)
cout<<p[i][j]<<" ";
cout<<endl;
}
return 0;
}
6. Scrieti un program C/C++ care citeste de la tastatura un
numar natural nenul , cu maximum 8 cifre, construieste in
memorie si afiseaza apoi pe ecran o matrice patratica , vand
numarul de linii si de coloane egal cu numarul de cifre ale
numarului dat , completata cu cifrele numarului citit .
Astfel , elementele de pe prima coloana a matricei vor fii
toate egale cu cifra unitatii numarului dat , elementele de pe
a 2-a coloana a matricei vor fii toate egale cu cifra zecilor
numarului dat si asa mai departe , ca in exemplu .
Daca se citeste numarul 1359 , matricea construita va fii ce
alaturata : 9 5 3 1
9 5 3 1
9 5 3 1
9 5 3 1
C/C++
#include <iostream.h>;
using namespace std;
int main (){
int a[20][20],i ,j,n;
cin>>n;
int copie=n, nr.linii=0;
for (j=1;n>0;j++)
{
int copie2=copie;
for(i=1;copie>;i++)
{
a[i][j]=n%10;
copie=copie/10;}
n=n/10;
nr.linii++;
copie=copie2;
}
for(i=1;i<=nr.linii;i++)
{
for(j=1;j<=nr.linii;j++)
cout<<a[i][j]<<” “;
cout<<endl;
}
return 0;}
7. Scrieti 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ătile:
- toate elementele situate pe diagonala principală sunt nule;
- fiecare linie contine, î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 spatiu.
C/C++
#include <iostream>
using namespace std;
int main()
{ int i,j,a[21][21],n;
cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i>j) a[i][j]=i-j;
else a[i][j]=j-i;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
8.Scrieti un program C/C++ care citeste de la tastatura un
numar natural cu exact 5 cifre si construieste in memorie o
matrice cu 6 linii si 6 coloane , numerotate de la 1 la 6 astfel :
-elementele aflate pe diagonala principala sunt nule
-elementele de pe linia 1 , aflate deasupra diagonalei
principale precum si elementele de pe coloana 1 , aflate sub
diagonala principala au toate valorea egala cu cifra unitatilor
numarului citit;
-elementele de pe linia 2 , aflate deasupra diagonalei
principale precum si elementele de pe coloana 2, aflate sub
diagonala principala au toate valorea egala cu cifra zecilor
numarului citit , si asa mai departe .
Matricea astfel construita va fi afisata pe ecran , cate o linie
a matricei pe cate o linie a ecranului , elementele de pe
aceasi linie fiind separate prin cate un spatiu .
C/C ++
#include <iostream.h>
using namespace std;
int main () {
int a[20][20],i,j,n;
for(i=1;i<=6;i++){
for(j=i+1;j<=6;j++){
a[j][i]=n%10;
a[i][j]=n%10;}
n=n%10;}
for (i=1;i<=6;i++){
for(j=1;j<=6;j++)
cout<<a[i][j]<<” “;
cout<<endl;}
return 0;}
9. Sa se calculeze suma elementelor de pe diagonala
principala a unei matrici patratice.
C/C++
#include <iostream>
using namespace std;
int main()
{
int n,i,j,a[20][20],s=0;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
cout<<"Matricea este:"<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
for(i=1;i<=n;i++)
s=s+a[i][i];
cout<<"Suma elementelor de pe diagonala principala a matricii
este:"<<s<<endl;
return 0;
}
10 . .Se consideră tabloul bidimensional cu n linii şi n coloane
ce conţine numere naturale cu cel mult patru cifre fiecare.
Scrieţi programul care citeşte de la tastatură numărul natural
n (2≤n≤23) şi cele n*n elemente ale tabloului şi apoi afişează
pe ecran elementele primului pătrat concentric, separate prin
câte un spaţiu. Pătratul este parcurs în sensul acelor de
ceasornic începând din colţul său stânga-sus, ca în exemplu.
Primul pătrat concentric este format din prima şi ultima linie,
prima şi ultima coloană a tabloului.
C/C++
#include <iostream>
using namespace std;
int main()
{
int a[23][23],n,i,j;
cout<<„n=”;
cin>>n;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
cout<<„a[„<<i<<„][„<<j<<„]=”;
cin>>a[i][j];
}
for (j=1;j<n;j++) //se afiseaza elementele de pe prima linie (cu exceptia
ultimului element de pe prima linie)
cout<<a[1][j]<<” “;
for (i=1;i<n;i++)
cout<<a[i][n]<<” “;
for (j=n;j>1;j–)
cout<<a[n][j]<<” “;
for (i=n;i>1;i–)
cout<<a[i][1]<<” “;
return 0;
}

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