Sunteți pe pagina 1din 7

Subiectul nr. 6 Se citesc 2 multimi de numere intregi cu cel mult 20 elemente.

S se
afiseze reuniunea lor.
# include <iostream.h>
#include <conio.h>
int a[20],b[20],r[20],nr,na,nb,i,j,sw;
void citire(int c[20],int &n)
{ cout<<"dim multimii=";cin>>n;
for(i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";
cin>>c[i];
sw=0;
for(j=1;j<i;j++)
if (c[j]==c[i])
sw=1;
if (sw==1) i=i-1;
}
}
void afisare(int c[20], int n)
{for (i=1;i<=n;i++)
cout<<c[i]<<" ";
}
void reuniune()
{
for(i=1;i<=na;i++)
r[i]=a[i];
nr=na;
for(i=1;i<=nb;i++)
{ sw=0;
for(j=i;j<=na;j++)
if (b[i]==a[j]) sw=1;
if (sw==0)
{ nr=nr+1;
r[nr]=b[i];
}
}
}
void main()
{clrscr();
cout<<" multimea a:\n";
citire(a,na);
cout<<" multimea b:\n";
citire(b,nb);
reuniune();
cout<<"multimea r reuniunea:\n";
afisare(r,nr);
getch();
}

Subiectul nr. 8 Sa se citeasca o matrice patratice de n*n numere intregi . Sa se


calculeze elementul maxim de pe diagonala principala.
#include<iostream.h>
#include<conio.h>
int a[10][10],m,n,c1,c2;
void citire(int a[10][10],int &n)
{int i,j;
cout<<"n="; cin>>n;
cout<<"elementele:\n" ;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];}
}
void afisare(int a[10][10], int n)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;}
}
void main()
{int max,i;
clrscr();
citire(a,n);
afisare(a,n);
max=a[1][1];
for(i=2;i<=n;i++)
if (a[i][i]>max) max=a[i][i];
cout<<"maximul de pe diaginala principala este:"<<max;
getch();
}
Subiectul nr. 9 Sa se scrie un program care interschimba intr-o matrice
data doua linii date.
#include<iostream.h>
#include<conio.h>
int a[10][10],m,n,l1,l2;
void citire(int a[10][10],int &n,int &m)
{int i,j;
cout<<"n="; cin>>n;
cout<<"m="; cin>>m;
cout<<"elementele:" ;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];};}
void afisare(int a[10][10], int n, int m)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<endl;}}

void schimbare(int a[10][10] ,int m ,int l1,int l2)


{int j,aux;
for(j=1;j<=m;j++)
{aux=a[l1][j];
a[l1][j]=a[l2][j];
a[l2][j]=aux;}}
void main()
{citire(a,n,m);
afisare(a,n,m);
cout<<"l1="; cin>>l1;
cout<<"l2="; cin>>l2;
schimbare(a,m,l1,l2);
afisare(a,n,m);
getch();}

Subiectul nr. 15 Se citeste o matrice patratica cu n*n elemente. Sa se calculeze


elementul maxim de pe diagonala secundara.
#include<iostream.h>
#include<conio.h>
int a[10][10],m,n,c1,c2;
void citire(int a[10][10],int &n)
{int i,j;
cout<<"n="; cin>>n;
cout<<"elementele:\n" ;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];}
}
void afisare(int a[10][10], int n)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;}
}
void main()
{int max,i;
clrscr();
citire(a,n);
afisare(a,n);
max=a[1][n];
for(i=2;i<=n;i++)
if (a[i][n+1-i]>max) max=a[i][n+1-i];
cout<<"maximul depe diagonala secundara este:"<<max;
getch();
}
Subiectul nr. 16 Sa se scrie un program care insereaza intr-o matrice data
o linie data cu elemente 0.
#include<iostream.h>
#include<conio.h>
int a[10][10],m,n,l;
void citire(int a[10][10],int &n,int &m)

{int i,j;
cout<<"n="; cin>>n;
cout<<"m="; cin>>m;
cout<<"elementele:" ;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];};}
void afisare(int a[10][10], int n, int m)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<endl;}}
void adaugare(int a[10][10] ,int &n,int m,int l)
{int i,j;
for(i=n;i>=l;i--)
for(j=1;j<=m;j++)
a[1+i][j]=a[i][j];
for(j=1;j<=m;j++)
a[l][j]=0;n++;}
void main()
{citire(a,n,m);
afisare(a,n,m);
cout<<"l="; cin>>l;
adaugare(a,n,m,l);
afisare(a,n,m);
getch();}
Subiectul nr. 17 Se citeste un sir de numere intregi sortate strict
crescator si un numar intreg nr. Sa se afle daca numarul citit se afla in
sir fara a parcurge tot sirul.
#include <iostream.h>
#include <conio.h>
#define max 30
int a[max],n,nr;
void afisare();
void citire()
{ int i;
cout<<"n=";
cin>>n;
cout<<"elementele in ordine crescatoare:\n";
for (i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";
cin>>a[i];
}
cout<<"nr cautat:";cin>>nr;
}
void afisare()
{ int i;
cout<<"(";
for (i=1;i<=n;i++)
cout<<a[i]<<",";
cout<<"\b)"<<endl;
}
void cautare()
{ int mij,st,dr,sw;
st=1; dr=n; sw=0;
do
{ mij=(st+dr)/2;

if (a[mij]==nr) sw=1 ;
else if (a[mij]<nr)
st=mij+1;
else dr=mij-1;
}while ((st<=dr) && (sw==0));
if (sw==1) cout<<"nr exista pe pozitia "<<mij;
else cout<<"nr nu exista";
}
void main()
{
clrscr();
citire();
cautare();
getch();
}
Subiectul nr. 19 Se citeste un numar natural n diferit de zero. Sa se scrie
toate tripletele
de numere naturale (a, b, c) pitagoreice (a2+b2=c2) mai
mici decat n, nenule.
# include <iostream.h>
# include <conio.h>
long n,a,b,c;
int main()
{ clrscr();
cout<<"nr. este:";cin>>n;
for(a=1;a<n;a++)
for(b=a;b<n;b++)
for(c=a;c<n;c++)
if (a*a+b*b==c*c)
cout<<"("<<a<<","<<b<<","<<c<<")\n";
getch();
}
Subiectul nr. 21 Se citeste un vector cu n componente numere naturale. Sa
se afiseze cmmdc al celor n numere.

Ex : pentru n=5 si numerele 36, 42, 120, 54, 66 , se afiseaza cmmdc=6.


# include <iostream.h>
# include <conio.h>
unsigned int n;
int i, cm,a[30];
unsigned int cmmdc(unsigned int x, unsigned int y)
{ while (x!=y)
if (x>y) x=x-y;
else y=y-x;
return x;
}
void citire()
{ int i;
cout<<"n=";
cin>>n;
for (i=0;i<n;i++)
{cout<<"a["<<i<<"]=";
cin>>a[i];
}
}

void afisare()
{ int i;
cout<<"(";
for (i=0;i<n;i++)
cout<<a[i]<<",";
cout<<"\b)";
}
void main()
{
citire();
cout<<"nr sunt:";
afisare();
cm=a[1];
for (i=2;i<n;i++)
cm=cmmdc(cm,a[i]);
cout<<"\n cmmdc al nr este:"<<cm;
getch();
}
Subiectul nr. 22 Se citesc doua multimi de numere intregi, cu cel mult 20
de elemente, sa se afiseze produsul cartezian al lor.
# include <iostream.h>
# include <conio.h>
int a[20],b[20],c[20],n,na,nb,i,j,sw;
void citire(int c[20],int &n)
{ cout<<"dim multimii=";cin>>n;
for(i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";
cin>>c[i];
sw=0;
for(j=1;j<i;j++)
if (c[j]==c[i])
sw=1;
if (sw==1) i=i-1;
}
}
void afisare(int c[20], int n)
{for (i=1;i<=n;i++)
cout<<c[i]<<" ";
}
void prod_cart()
{
for(i=1;i<=na;i++)
for(j=1;j<=nb;j++)
cout<<"("<<a[i]<<","<<b[j]<<"),";
}
void main()
{clrscr();
cout<<"multimea a:\n";
citire(a,na);
cout<<"multimea b:\n";

citire(b,nb);
prod_cart();
getch();
}
Subiectul nr. 23 Se citesc doua multimi de numere intregi, cu cel mult 20
de elemente, sa se afiseze diferenta lor.
# include <iostream.h>
#include <conio.h>
int a[20],b[20],d[20],nd,na,nb,i,j,sw;
void citire(int c[20],int &n)
{ cout<<"dim multimii=";cin>>n;
for(i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";
cin>>c[i];
sw=0;
for(j=1;j<i;j++)
if (c[j]==c[i])
sw=1;
if (sw==1) i=i-1;
}
}
void afisare(int c[20], int n)
{for (i=1;i<=n;i++)
cout<<c[i]<<" ";
}
void diferenta()
{
for(i=1;i<=na;i++)
{sw=0;
for(j=1;j<=nb;j++)
if (b[j]==a[i]) sw=1;
if (sw==0)
{ nd=nd+1;
d[nd]=a[i];
}
}
}
void main()
{clrscr();
cout<<" multimea a:\n";
citire(a,na);
cout<<" multimea b:\n";
citire(b,nb);
diferenta();
cout<<"multimea d diferenta:\n";
afisare(d,nd);
getch();
}

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