Sunteți pe pagina 1din 39

11/8/2019

Informatica si Tic

Suport educational Informatica

Problema 1

#include <iostream>

/*

Se citește un vector cu n componente întregi. Se cere:


a) Să se ordoneze crescător elementele vectorului;
b) Să se permute circular stânga elementele vectorului ordonat cu o poziție.

*/
using namespace std;

int v[100];
int n,i,t,gasit;

1/39
11/8/2019

int main()
{
cout<<" Dati dimensiunea vectorului " ; cin>>n;
for(i=1;i<=n;i++)
{
cout<<" Dati valoarea elementului "<<i<<" " ; cin>>v[i];
}
cout<<"Afisarea vectorului este :" ;
for(i=1;i<=n;i++)cout<<v[i]<<" " ;
cout<<endl;
cout<<" Se sorteaza vectorul !"<<endl;
do
{
gasit=0; // presupunem ca vectorul este sortat crescator
for(i=1;i<=n-1;i++) // cautam doua elemente alaturate care sa nu fie in ordine
crescatoare
if(v[i]>v[i+1]) // daca le-am gasit , le vom permuta mentionand ca vectorul nu
este ordonat crescator
{
t=v[i];
v[i]=v[i+1];
v[i+1]=t;
gasit=1;
}
}while(gasit!=0); // repeta operatiile anterioare pina cand la o trecere prin
vector , nu am facut nici o permutare !
cout<<" Afisarea vectorului sortat este : " ;
for(i=1;i<=n;i++)cout<<v[i]<<" " ;
cout<<endl;
//============= cerinta 2 =========
t=v[1]; // salvam prima componenta din vector intr-o var. temporara notata cu t
for(i=1;i<n;i++)v[i]=v[i+1]; // mutam spre stinga toate elementele din vector
incepind de la prima componenta
v[n]=t; // ultima componenta se reface cu prima componenta salvata in t

cout<<"Afisarea vectorului permutat la stinga cu o pozitie este :";


for(i=1;i<=n;i++)cout<<v[i]<<" " ;
cout<<endl;

return 0;
}

2/39
11/8/2019

Problema 2

#include <iostream>
/*

Se citește o matrice cu n linii și m coloane și elemente numere întregi. Se cere:


a) Să se determine elementele minime de pe fiecare linie;
b) Să se numere elementele pare de pe perimetrul matricei.

*/
using namespace std;

int a[100][100];
int i,j,n,m,min_linie,nr_pare;

3/39
11/8/2019

int main()
{
cout<<"Secventa de citire a matricei a ="<<endl;
cout<<"Dati numarul de linii = "; cin>>n;
cout<<"Dati numarul de coloane ="; cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
cout<<"Dati elementul "<<i<<" "<<j<<" " ;
cin>>a[i][j];
}
cout<<"Secventa de afisare a matricei a ="<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)cout<<a[i][j]<<" " ;
cout<<endl;
}
cout<<"Determinarea elementelor minime de pe fiecare linie :"<<endl;
for(i=1;i<=n;i++)
{
min_linie=a[i][1];
for(j=2;j<=m;j++)
if(min_linie>a[i][j])min_linie=a[i][j];
cout<<"Minimul de pe linia "<<i<<" este "<<min_linie<<endl;
}
nr_pare=0;
for(j=1;j<=m;j++)
{
if(a[1][j]%2==0)nr_pare++; // numaaram toate elementele pare de pe prima linie
if(a[n][j]%2==0)nr_pare++; // numaram toate elementele pare de pe ultima linie
}
for(i=2;i<=n-1;i++)
{
if(a[i][1]%2==0)nr_pare++;
if(a[i][m]%2==0)nr_pare++;
}
if(nr_pare==0)cout<<"Matricea nu contine elemente pare pe perimetrul aceteia ";
else
cout<<"Am gasit "<<nr_pare<<" elemente";
}

Problema 3

4/39
11/8/2019

#include <iostream>
/*

Se citește o matrice pătrată de dimensiune nxn și elemente numere întregi. Se


cere:
a) Să se afișeze numerele prime de pe diagonala principală;
b) Să se formeze un vector cu elementele matricei parcurse în ordine pe coloane.

*/
using namespace std;

int a[10][10];
int i,j,n,k;
int v[100];

int main()
{
cout<<"Secventa de citire a matricei a ="<<endl;
cout<<"Dati numarul de linii si coloane = ";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cout<<"Dati elementul "<<i<<" "<<j<<" ";
cin>>a[i][j];
}
cout<<"Secventa de afisare a matricei a ="<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)cout<<a[i][j]<<" ";
cout<<endl;
}

5/39
11/8/2019

cout<<"Determinarea elementelor prime de pe diagonala principala ! :"<<endl;


for(i=1;i<=n;i++)
{
int nr_div=0;
for(int j=1;j<=a[i][i];j++)
if(a[i][i]%j==0)nr_div++;
if(nr_div==2)cout<<a[i][i]<<" ";
}
cout<<endl;
k=1;
for(j=1;j<=n;j++)
{
for(i=1;i<=n;i++)
{
v[k]=a[i][j];
k++;
}
}
cout<<"Urmeaza afisarea vectorului v construit prim parcurgerea matricei pe
coloane !"<<endl;
for(k=1;k<=n*n;k++)cout<<v[k]<<" ";
}

Problema 4

#include <iostream>
/*
Se citește un vector cu n componente întregi. Se cere:
a) Să se elimine din vector elementele nule dacă acestea există;
b) Să se înlocuiască fiecare element al noului vector cu media aritmetică a
celorlalte elemente din vector.
*/
using namespace std;

float v[100];
int n,i,t;
int gasit;

6/39
11/8/2019

int main()
{
cout<<"Dati dimensiunea vectorului v =";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"Dati valoarea elementului "<<i<<" ";cin>>v[i];
}
do
{
gasit=0;
for(i=1;i<=n;i++)
if(v[i]==0)
{
for(int j=i;j<=n-1;j++)v[j]=v[j+1];
n=n-1;
gasit=1;
}
}
while(gasit!=0);
cout<<"Afisarea vectorului fara elemente nule = ";
for(i=1;i<=n;i++)cout<<v[i]<<" ";
cout<<endl;
float s;
for(i=1;i<=n;i++)s+=v[i];
for(i=1;i<=n;i++)v[i]=(s-v[i])/(n-1);
for(i=1;i<=n;i++)cout<<v[i]<<" ";
cout<<endl;

return 0;
}

Problema 5

7/39
11/8/2019

#include <iostream>
/*
Se citește o matrice cu n linii și m coloane. Se cere:
a) Să se formeze un vector în care se vor reține elementele maxime de pe fiecare
coloană a matricei;
b) Să se ordoneze vectorul format la punctul a.

*/
using namespace std;

int a[10][10];
int i,j,n,m,max_col,k;
int v[100];
int gasit,t;

8/39
11/8/2019

int main()
{
cout<<"Secventa de citire a matricei a ="<<endl;
cout<<"Dati numarul de linii = ";cin>>n;
cout<<"Dati numarul de coloane =";cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
cout<<"Dati elementul "<<i<<" "<<j<<" ";
cin>>a[i][j];
}
cout<<"Secventa de afisare a matricei a ="<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
k=1;
for(j=1;j<=m;j++)
{
max_col=a[1][j];
for(i=2;i<=n;i++)
if(max_col<a[i][j])max_col=a[i][j];
v[k]=max_col;
k++;
}
cout<<"Secventa de afisare a vectorului este =";
for(i=1;i<=m;i++)cout<<v[i]<<" ";
cout<<endl;
cout<<"Secventa de sortare a vectorului anterior ! ";
do
{
gasit=0;
for(i=1;i<m;i++)
if(v[i]>v[i+1])
{
gasit=1;
t=v[i];
v[i]=v[i+1];
v[i+1]=t;
}
}while(gasit!=0);
cout<<endl;
cout<<"Afisarea vectorului anterior sortat este ";
for(i=1;i<=m;i++)cout<<v[i]<<" " ;
cout<<endl;
}
9/39
11/8/2019

Problema 6

#include <iostream>
/*

Se citește de la tastatură un număr natural nenul n și alte n numere întregi.


Se cere să se afișeze valoarea minimă din șir , precum și numărul său de
apariții în cadrul șirului.

*/

using namespace std;

int main()
{
int v[100];
int n,i,nr_ap;
int min;
cout<<"Dati dimensiunea vectorului ";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"Dati valoarea elementului "<<i<<" ";cin>>v[i];
}
min=v[1];
for(i=2;i<=n;i++)
if(min>v[i])min=v[i];
cout<<"Valoarea minima este "<<min<<" si apare de ";
nr_ap=0;
for(i=1;i<=n;i++)
if(v[i]==min)nr_ap++;
cout<<nr_ap<<" ori !!!";
return 0;
}

10/39
11/8/2019

Problema 7

#include <iostream>
/*
Se citește de la tastatură un număr natural nenul n. Se cere să se calculeze și
să se afișeze următoarea sumă :

S=1+1/1*2+1/1*2*3+...+1/1*2*3*...*n

*/
using namespace std;

int main()
{
int i,n,p;
float s;
cout<<"Dati valoarea lui n = ";cin>>n;
s=0;
p=1;
for(i=1;i<=n;i++)
{
p=p*i;
s=s+(float)1/p;
}
cout.precision(3); // stabilesc cate cifre are numarul afisat , in cazul nostru
3, din care doua dupa zecimala
cout<<"Suma este = "<<s;
return 0;
}

11/39
11/8/2019

Problema 8

#include <iostream>
using namespace std;
/*
Se introduce de la tastatură o matrice pătratica de ordin n. Se cere să se
calculeze și să se afișeze:
a) suma tuturor elementelor ;
b) suma elementelor de pe diagonala principală.

*/

int a[100][100];
int i,j,n,s;

12/39
11/8/2019

int main()
{
cout<<"Secventa de citire a matricei a ="<<endl;
cout<<"Dati numarul de linii si coloane = ";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cout<<"Dati elementul "<<i<<" "<<j<<" ";
cin>>a[i][j];
}
cout<<"Secventa de afisare a matricei a ="<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
//cout<<"Secventa care calculeaza suma tuturor elementelor =";
s=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)s+=a[i][j];
cout<<"Suma tuturor elementelor este "<<s<<endl;
int suma_diag=0;
for(i=1;i<=n;i++)suma_diag+=a[i][i];
cout<<"Suma elementelor de pe diaonala principala este "<<suma_diag;
}

Problema 9

#include <iostream>
/*
Se citește de la tastatură un număr natural nenul n. Se cere să se calculeze și
să se afișeze următoarea sumă :

S=1+1*2+1*2*3+...+1*2*3*...*n

13/39
11/8/2019

*/
using namespace std;

int main()
{
int i,n,p;
int s;
cout<<"Dati valoarea lui n = ";cin>>n;
s=0;
p=1;
for(i=1;i<=n;i++)
{
p=p*i;
s=s+p;
}
cout<<"Suma este = "<<s;
return 0;
}

Problema 10

#include <iostream>
/*

Se introduce de la tastatură o matrice cu m linii și n coloane cu elemente


numere întregi .
Se cere să se calculeze și să se afișeze minimul pe o linie l a matricei (l
număr natural citit de la tastatură l<=m).

*/
using namespace std;

int a[100][100];
int i,j,n,m,min_linie,l;

14/39
11/8/2019

int main()
{
cout<<"Secventa de citire a matricei a ="<<endl;
cout<<"Dati numarul de linii = ";cin>>n;
cout<<"Dati numarul de coloane =";cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
cout<<"Dati elementul "<<i<<" "<<j<<" ";
cin>>a[i][j];
}
cout<<"Secventa de afisare a matricei a ="<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<"Dati indicele liniei de pe care vrei determinarea minimului = ";
cin>>l;
min_linie=a[l][1];
for(j=2;j<=m;j++)
if(min_linie>a[l][j])min_linie=a[l][j];
cout<<"Minimul de pe linia "<<l<<" este "<<min_linie;
}

Problema 11

#include <iostream>
using namespace std;

/*
Se introduce de la tastatură o matrice pătrată de ordin n cu elemente numere
întregi. Se cere să se calculeze și afișeze:
a) suma elementelor de deasupra diagonalei principale ;
b) suma elementelor de sub diagonala secundară.

*/

15/39
11/8/2019

int a[100][100];
int i,j,n,suma_sus,suma_jos;

int main()
{
cout<<"Secventa de citire a matricei a ="<<endl;
cout<<"Dati numarul de linii si coloane = ";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cout<<"Dati elementul "<<i<<" "<<j<<" ";
cin>>a[i][j];
}
cout<<"Secventa de afisare a matricei a ="<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
suma_sus=0;
suma_jos=0;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
{
suma_sus+=a[i][j];
suma_jos+=a[j][i];
}

cout<<"Suma elementelor de deasupra diagonalei principale "<<suma_sus<<endl;


cout<<"Suma elementelor de sub diagonala principala "<<suma_jos<<endl;

Problema 12

16/39
11/8/2019

#include <iostream>

/*
Se citește un vector cu n componente numere reale. Să se înlocuiască ultimele k
elemente ale vectorului cu valoarea –1.
Valoarea k este dată de la tastatură (k<n).
*/
using namespace std;

int v[100];
int i,n,k;

int main()
{
cout<<"Dati dimensiunea vectorului ";cin>>n;
cout<<"Se citeste vectorul !!!! "<<endl;
for(i=1;i<=n;i++)
{
cout<<"Dati valoarea elementului "<<i<<" ";
cin>>v[i];
}
cout<<endl;

cout<<"Afisarea vectorului nemodificat ";


for(i=1;i<=n;i++)cout<<v[i]<<" ";
cout<<endl;

cout<<"Dati valoarea lui k ";cin>>k;


for(i=1;i<=k;i++)v[n-i+1]=-1;

cout<<"Afisarea vectorului modificat ";


for(i=1;i<=n;i++)cout<<v[i]<<" ";
cout<<endl;

return 0;
}

17/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

Problema 13

#include <iostream>

/*
Să se calculeze numerele an și n! pentru 0<a<100, 0<=n<=100. Numerele a și n se
vor citi de la tastatură și rezultatele se vor afișa pe ecran.

*/
using namespace std;

int i,a,n,pa,pn;

int main()
{
cout<<"Dati valoarea lui a ";cin>>a;
cout<<"Dati valoarea lui n ";cin>>n;
pa=1;
pn=1;

for(i=1;i<=n;i++)
{
pa=pa*a;
pn=pn*i;
}
cout<<a<<" la puterea "<<n<<" este = "<<pa<<endl;
cout<<n<<" factorial este = "<<pn<<endl;
return 0;
}

18/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

Problema 14

#include <iostream>

/*
Se dă o matrice x, cu n linii și n coloane, cu elemente întregi.Să se determine
numărul elementelor din matrice care sunt < 24 și se găsesc deasupra diagonalei
principale pe linii pare.

*/

int x[10][10];
int n,i,j,nr_elem;

using namespace std;

19/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

int main()
{
cout<<"Dati numarul de linii si coloane = ";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cout<<"Dati elem "<<i<<" "<<j<<" ";cin>>x[i][j];
}
cout<<endl;
cout<<"Afisarea matricei x= "<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)cout<<x[i][j]<<" ";
cout<<endl;
}
nr_elem=0;
for(i=1;i<n;i++)
if(i%2==0)
{
for(j=i+1;j<=n;j++)
if(x[i][j]<24)
{
nr_elem++;
// cout<<x[i][j]<<" ";
}

}
cout<<"Au fost gasite "<<nr_elem;
return 0;
}

Problema 15

#include <iostream>

20/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

/*
Se dă un șir x de n elemente întregi. Să se caute ultimul element impar mai mare
decât 15.

*/
using namespace std;

int main()
{
int x[100];
int i,n,gasit;
cout<<"Dati valoarea lui n ";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"Dati valoarea elementului "<<i<<" ";cin>>x[i];
}
gasit=0;
i=n;
while((i>=1)&&(gasit!=1))
{
if((x[i]%2!=0)&&(x[i]>15))gasit=1;
if(gasit==0)i--;
}
if(gasit==0)cout<<" Nu exista elemente impare in vector cu valori > 15 !";
else cout<<"Am gasit elementul "<<x[i];
return 0;
}

Problema 16

#include <iostream>

/*
Se dă o matrice a, cu n linii și n coloane. Să se determine maximul elementelor
pare de pe coloana p.

21/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

*/
using namespace std;

int a[100][100];
int i,j,n,p,max_pare;
int gasit;
int main()
{
cout<<"Secventa de citire a matricei a ="<<endl;
cout<<"Dati numarul de linii si coloane = ";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cout<<"Dati elementul "<<i<<" "<<j<<" ";
cin>>a[i][j];
}
cout<<"Secventa de afisare a matricei a ="<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
cout<<"Dati indicele coloanei de pe care determin maximul ";cin>>p;
i=1;
gasit=0; // caut primul element par pe colaoana p
while((i<=n) && (gasit!=1))
{
if(a[i][p]%2==0)
{
max_pare=a[i][p];
gasit=1;
}
i++;
}
if(gasit==0)cout<<"Nu exista elemente pare pe coloana "<<p<<" "; // daca nu
exista , n-am ce calcula !
else
{
// am gasit primul element par , care presupun ca este si cel mai mare !!!
for(j=i;j<=n;j++) // incepind de la el in jos, pe coloana p , caut un alt elem.
par care sa fie mai mare decat cel gasit curent
if((max_pare<a[j][p])&&(a[j][p]%2==0))max_pare=a[j][p];
cout<<"Maximul elementelor pare de pe coloana "<<p<<" este "<<max_pare;
}
}

22/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

Problema 17

#include <iostream>
#include <string.h>

/*
Se citește de la tastatură un cuvânt.
Să se afișeze numărul inițial de caractere ale cuvântului și apoi să se șteargă
toate vocalele din cuvânt.

*/
using namespace std;
int main()
{

char cuvant[100];
char v[]="aeiouAEIOU";

cout<<"Introduceti cuvantul = ";cin.getline(cuvant,30,'\n');


cout<<"Numarul initial de caractere din text "<<strlen(cuvant)<<endl;
for(int i=0;i<strlen(cuvant);i++)
if(strchr(v,cuvant[i])!=0) // daca cuvantul de pe pozitia i este vocala
strcpy(cuvant+i,cuvant+i+1);//mut la stanga elementul de pe pozitia i+1
cout<<"Cuvantul fara vocale este "<<cuvant;
return 0;
}

Problema 18

23/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

#include <iostream>
#include <string.h>

/*

Se citesc de la tastatură 2 șiruri de caractere.


Să se verifice dacă sunt egale (la fel) fără a se face deosebire între literele
mari și literele mici.
*/
using namespace std;

int main()
{
char cuvant1[100],cuvant2[100];
cout<<"Dati cuvantul 1 =";cin.getline(cuvant1,30,'\n');
cout<<"Dati cuvantul 2 =";cin.getline(cuvant2,30,'\n');
//transformam ambele cuvinte in litere mari

for(int i=0;i<strlen(cuvant1);i++)cuvant1[i]=cuvant1[i]+'A'-'a';
for(int i=0;i<strlen(cuvant2);i++)cuvant2[i]=cuvant2[i]+'A'-'a';

cout<<"Cuvant 1= "<<cuvant1<<endl;
cout<<"Cuvant 2= "<<cuvant2<<endl;

int gasit=0;
//daca cuvintele sunt de lungime diferita , atunci sirurile sunt diferite
if(strlen(cuvant1)!=strlen(cuvant2))gasit=1;

for(int i=0;i<strlen(cuvant1) && gasit!=1;i++)


if(strchr(cuvant2,cuvant1[i])==0)gasit=1;

if(gasit==0)cout<<"Sirurile sunt egale ";


else
cout<<"Sirurile nu sunt egale ";
return 0;
}

24/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

Problema 19

#include <iostream>

/*
Se citește un număr natural n. Să se determine cifra maximă din număr.
Exemplu : Dacă n=7934 , atunci cifra maximă este 9.

*/

using namespace std;

int main()
{
int n;
cout<<"Dati n= ";cin>>n;
int max=n%10;
while(n!=0)
{
if(max<(n/10)%10)max=(n/10)%10;
n=n/10;
}
cout<<"Cifra maxima este "<<max;

return 0;
}

Problema 20

25/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

#include <iostream>

/*
Se consideră o matrice cu m linii și n coloane, elementele matricei sunt numere
întregi.
Să se determine elementul minim de pe o coloană c, dată de la tastatură.
*/

using namespace std;

int a[10][10];
int m,n;
int i,j;
int minim,c;

int main()
{
cout<<"Dati numarul de linii ";cin>>m;
cout<<"Dati numarul de coloane ";cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
cout<<"Dati elementul "<<i<<" "<<j<<" ";
cin>>a[i][j];
}

cout<<"Dati indicele coloanei c = ";cin>>c;


minim=a[1][c];
for(i=2;i<=m;i++)
if(a[i][c]<minim)minim=a[i][c];
cout<<"Cel mai mic element de pe coloana "<<c<<" este "<<minim;
return 0;
}

Problema 21

26/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

#include <iostream>

/*
Se citește un număr natural n. Să se creeze o matrice care conține:
- cifrele numărului pe diagonala principală;
- valoarea elementelor rămase în matrice, să conțină valoarea 0.

*/
using namespace std;

int n,n1,i,j;
int a[10][10];

int main()
{
cout<<"Dati valoarea numarului n = ";cin>>n;
n1=n;
int l=1;
while(n1!=0)
{
n1=n1/10;
l++;
}
l--; // chiar daca numarul devine zero , el tot mareste lungimea cu o unitate,
ceeace este incorect
// in acest caz scad o un unitate ....
n1=n;
for(i=1;i<=l;i++)
{
a[l-i+1][l-i+1]=n1%10;
n1=n1/10;
}
cout<<"Afisarea matricei este "<<endl;
for(i=1;i<=l;i++)
{
for(j=1;j<=l;j++)cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}

27/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

Problema 22

#include <iostream>

/*
Să se scrie un program care :
a) citește un vector cu n componente numere reale.
b) șterge un element din vector care se află pe o poziție dată k.
*/

using namespace std;

float v[100];
int n,i,k;

28/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

int main()
{
cout<<"Dati dimensiunea vectorului v ";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"Dati valoarea elementului "<<i<<" ";cin>>v[i];
}
cout<<"Afisarea initiala a vectorului "<<endl;
for(i=1;i<=n;i++)cout<<v[i]<<" ";
cout<<endl;
cout<<"Dati pozitia elementului de sters ";
cin>>k;
if((k<1)||(k>n))cout<<"Elementul de sters nu exista in vector !!!!";
else
{
for(int j=k;j<n;j++)v[j]=v[j+1];// deplasez la stanga toate elementele incepand
cu pozitia k+1 pina la n
n--; // am sters un element , deci scad si din dimensiune o unitate
cout<<"Afisarea finala a vectorului "<<endl;
for(i=1;i<=n;i++)cout<<v[i]<<" ";
cout<<endl;
}

return 0;
}

Problema 23

#include <iostream>

/*
Să se scrie un program care determină media aritmetică a elementelor pare dintr-
un vector folosind un subprogram.
*/

29/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

using namespace std;

int v[100];
int n;

void citeste_vector(int v[100],int &n)


{
int i;
cout<<"Dati dimensiunea vectorului ";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"Dati elementul "<<i<<" ";
cin>>v[i];
}
}

void afisare_vector(int v[100],int n)


{
int i;
for(i=1;i<=n;i++)cout<<v[i]<<" ";
cout<<endl;
}

float media_aritm(int v[100],int n)


{
int s=0;
int nr_pare=0;
int i;
for(i=1;i<=n;i++)
if(v[i]%2==0)
{
s+=v[i];
nr_pare++;
}
return (float)s/nr_pare;
}

30/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

int main()
{
citeste_vector(v,n);
afisare_vector(v,n);
cout.precision(3);
cout<<"Media aritmetica a elementelor pare este ="<<media_aritm(v,n)<<endl;
return 0;
}

Problema 24

#include <iostream>

/*
Se citește o matrice cu m linii și n coloane, cu elemente numere întregi. Să se
interschimbe
două linii l1 si l2 (date), între ele.

*/

using namespace std;

int a[10][10];
int i,j,n,m,t,l1,l2;

31/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

int main()
{
cout<<"Secventa de citire a matricei a ="<<endl;
cout<<"Dati numarul de linii = ";cin>>n;
cout<<"Dati numarul de coloane =";cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
cout<<"Dati elementul "<<i<<" "<<j<<" ";
cin>>a[i][j];
}
cout<<"Secventa de afisare a matricei a ="<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
cout<<"Dati indicele primei linii ";cin>>l1;
cout<<"Dati indicele celei de-a doua linii ";cin>>l2;
for(j=1;j<=m;j++)
{
t=a[l1][j];
a[l1][j]=a[l2][j];
a[l2][j]=t;
}
cout<<"Secventa de afisare a matricei modificate prin inversarea liniilor ="
<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
}

Problema 25

#include <iostream>

32/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

/*
Se introduce de la tastatură un număr întreg n. Se cere să se calculeze și să se
afișeze:
a) media aritmetică a cifrelor pare;
b) produsul cifrelor impare

*/
using namespace std;

int n,n1;
float ma;
int s,nr_cp;
int p;
int main()
{
cout<<"Dati numarul ";cin>>n;
n1=n;
s=0;
nr_cp=0;
p=1;
while(n1!=0)
{
if((n1%10)%2==0)
{
s+=n1%10;
nr_cp++;
}
else
p=p*(n1%10);
n1=n1/10;
}
ma=(float)s/nr_cp;
cout.precision(3);
cout<<"Media aritmetica a cifrelor pare este "<<ma<<endl;
cout<<"Produsul cifrelor impare este "<<p;
return 0;
}

Problema 26

33/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

#include <iostream>

/*
Se citește de la tastatură un număr întreg mai mare sau egal cu 1000. Se cere să
se stabilească dacă numărul dat este palindrom sau nu.

Ara
Atta
Esse
Illi
Iri
Massam
Oro
Senes
Seres
Sinis
Sitis
Sucus vel potius succus
Sumus
Taxat
Tenet
Usu

http://la.wikipedia.org/wiki/Palindromus

*/

using namespace std;

34/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

int main()
{
int n,n1,n2;
cout<<"Dati numarul n =";cin>>n;
n1=n;
n2=0;
while(n1!=0)
{
n2=n2*10+n1%10;
n1=n1/10;
}
if(n2==n)cout<<"Numarul este palindrom !";
else cout<<"Numarul nu este palindrom !";
return 0;
}

Problema 27

#include <iostream>

/*

Se citește de la tastatură un număr întreg. Se cere să se stabilească dacă este


perfect sau nu.
Un număr este perfect dacă este egal cu suma divizorilor săi proprii plus 1.
*/
using namespace std;

int main()
{

35/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

int n;
int s,i;
cout<<"n= ";cin>>n;
s=0;
for(i=1;i<=n/2;i++)
if(n%i==0)s+=i;
if(s==n)
cout<<"Numarul este perfect ";
else
cout<<"Numarul nu este perfect !";
return 0;
}

Problema 28

#include <iostream>

/*

Se citește de la tastatură un număr întreg . Se cere să se calculeze și să se


afișeze suma divizorilor
proprii precum și numărul acestora.

*/

using namespace std;

36/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

int main()
{
int n;
int i,s,nr;
cout<<"n= ";cin>>n;
s=0;
nr=0;
for(i=2;i<=n/2;i++)
if(n%i==0)
{
s+=i;
cout<<"Divizor propriu "<<i<<endl;
nr++;
}
cout<<"Suma divizorilor proprii este "<<s<<" iar numarul acestora este "<<nr;

return 0;
}

Problema 29

#include <iostream>
#include <iomanip>

/*
Se citește de la tastatură un număr natural nenul n și alte n numere întregi .
Se cere :
a) Suma elementelor pare de pe poziții impare
b) Media aritmetică a elementelor pozitive.

*/
using namespace std;

37/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

int main()
{
int i,n,sp,x;
int spoz,nrpoz;
float media_aritm;

cout<<"Dati numarul elementelor din sir = ";cin>>n;


sp=0;
spoz=0;
nrpoz=0;
for(i=1;i<=n;i++)
{
cout<<"Dati valoarea elementului ";cin>>x;
if((i%2!=0)&&(x%2==0))sp+=x;
if(x>0)
{
spoz=spoz+x;
nrpoz=nrpoz+1;
}
}
media_aritm=(float)spoz/nrpoz;
cout.precision(3);
cout<<"Media aritmetica a elementelor pozitive = "<<media_aritm<<endl;
cout<<"Suma elementelor pare de pe pozitii impare este = "<<sp;
return 0;
}

Problema 30

#include <iostream>

/*

38/39
11/8/2019 Bilete programare – rezolvari | Informatica si Tic

Se citește de la tastatură un număr natural nenul n și alte n numere întregi.


Se cere să se afișeze numărul de apariții în șir ale unui număr citit de la
tastatură.

*/

using namespace std;

int main()
{
int i,n,x,elem;
int nr;
cout<<"Dati elementul de cautat ";cin>>elem;
cout<<"Dati numarul valorilor din sir = ";cin>>n;
nr=0;
for(i=1;i<=n;i++)
{
cout<<"Dati valoarea de pe pozitia "<<i<<" ";
cin>>x;
if(elem==x)nr++;
}
if(nr==0)cout<<"Valoarea cautata nu exista in sir !";
else cout<<"Am gasit elementul "<<elem<<" de "<<nr<<" ori ";
return 0;
}

Tema: Parament de WordPress.com.

39/39