Documente Academic
Documente Profesional
Documente Cultură
unui vector. Programul scris mai jos citeste un vector de la tastatura dupa care verifica daca o
anumita valoare introdusa de utilizator este sau nu memorata in vectorul deja citit.
Algoritmul de mai jos verifica de cate ori apare o anumita valoare (in cazul nostru valoarea
memorata in variabila x) in interiorul unui vector citit de la tastatura.
Algoritm C++:
#include <iostream>
using namespace std;
int v[100],i,n,x,nr;
int main()
{
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
cin>>x;
1
for(i=1;i<=n;i++)
{
if(v[i]==x)
nr++;
}
cout<<x<<" apare de "<<nr<<" ori in vector";
}
sortarea prin interschimbare a unui vector cu N elemente citite de la tastatura. N-ul este, de
asemenea, citit de la tastatura. In josul paginii puteti gasi de asemenea videoul de pe canalul
nostru de YouTube in care explicam cum functioneaza algoritmul.
Sortare crescatoare:
#include <iostream>
using namespace std;
int main(){
int N;
cin>>N;
int v[100];
int i;
for (i = 1; i <= N; i++)
cin>>v[i];
int j;
for (i = 1; i <= N-1; i++){
for (j = i+1; j <= N; j++){
if (v[i] > v[j]){
int aux = v[i];
v[i] = v[j];
v[j] = aux;
}
}
}
for (i = 1; i <= N; i++)
cout<<v[i]<<" ";
return 0;
}
Sortare descrescatoare:
2
#include <iostream>
using namespace std;
int main(){
int N;
cin>>N;
int v[100];
int i;
for (i = 1; i <= N; i++)
cin>>v[i];
int j;
for (i = 1; i <= N-1; i++){
for (j = i+1; j <= N; j++){
if (v[i] < v[j]){
int aux = v[i];
v[i] = v[j];
v[j] = aux;
}
}
}
for (i = 1; i <= N; i++)
cout<<v[i]<<" ";
return 0;
}
Fiind dat un vector v de N elemente, atat N, cat si vectorul v, fiind citite de la tastatura, se cere sa
se gaseasca minimul si maximul dintre elementele vectorului.
#include <iostream>
using namespace std;
int main(){
int N;
cin>>N;
int v[100];
int i;
for (i = 1; i <= N; i++)
cin>>v[i];
int maxim = v[1];
for (i = 2; i <= N; i++)
if (maxim < v[i])
maxim = v[i];
3
cout<<maxim;
return 0;
}
Programul de mai jos insereaza un nou element pe prima pozitie a vectorului nostru (nota: prima
pozitie a vectorului in cazul nostru este v[1], intrucat incep citirea elementelor de la i=1).
Algoritmul de mai jos se preda de obicei in clasa a 10-a, facand parte din problemele
introductorii legate de vector pe care profesorii le fac impreuna cu elevii.
#include <iostream>
using namespace std;
int v[100],i,n,x;
int main()
{
cin>>n;
for(i=1;i<=n;i++) //citire
cin>>v[i];
n=n+1; //creare "loc" nou
for(i=n;i>=2;i--) //mutare elemente la dreapta
{
v[i]=v[i-1];
}
cin>>x; // citire element nou
v[1]=x; // inserarea pe prima pozitie
for(i=1;i<=n;i++)//afisare
cout<<v[i]<<" ";
}
#include <iostream>
using namespace std;
int main(){
int N;
cin>>N;
4
int v[100];
int i;
for (i = 1; i <= N; i++)
cin>>v[i];
int pozitie,valoare;
cin>>valoare>>pozitie;
for (i = N; i >= pozitie; i--)
v[i + 1] = v[i];
N = N + 1;
v[pozitie] = valoare;
for (i = 1; i <= N; i++)
cout<<v[i]<<" ";
return 0;
}
#include <iostream>
using namespace std;
int main(){
int N;
cin>>N;
int v[100];
int i;
for (i = 1; i <= N; i++)
cin>>v[i];
int pozitie;
cin>>pozitie;
for (i = pozitie; i <= N - 1; i++)
v[i] = v[i+1];
N = N - 1;
for (i = 1; i <= N; i++)
cout<<v[i]<<" ";
return 0;
}
Cel mai mare divizor comun (cmmdc) al unui vector:
5
#include <iostream>
using namespace std;
int main(){
int N;
cin>>N;
int v[100];
int i;
for (i = 1; i <= N; i++)
cin>>v[i];
int cmmdc = v[1];
for (i = 2; i <= N; i++){
int copieEL = v[i];
while (copieEL != cmmdc){
if (copieEL > cmmdc)
copieEL = copieEL - cmmdc;
else if (copieEL < cmmdc)
cmmdc = cmmdc - copieEL;
}
}
cout<<cmmdc;
return 0;
}
#include <iostream>
using namespace std;
int main(){
int N;
cin>>N;
int v[100];
int i;
for (i = 1; i <= N; i++)
cin>>v[i];
int cmmmc = v[1];
for (i = 2; i <= N; i++){
int copieCmmmc = cmmmc,copieEL = v[i];
while(copieCmmmc != copieEL){
if (copieCmmmc > copieEL)
copieCmmmc = copieCmmmc - copieEL;
else if (copieEL > copieCmmmc)
copieEL = copieEL - copieCmmmc;
6
}
cmmmc = cmmmc*(v[i]/copieEL);
}
cout<<cmmmc;
return 0;
}
Enunt: Sa se afiseze elementele pare ale unui vector citit de la tastatura. Programul de mai jos
parcurge vectorul element cu element iar atunci cand intalneste un element care este par, il
afiseaza pe ecran, in caz contrar, pur si simplu continua citirea pana la gasirea unui viitor element
par.
#include <iostream>
using namespace std;
int main(){
int N;
cin>>N;
int v[100];
int i;
for (i = 1; i <= N ; i++)
cin>>v[i];
for (i = 1; i <= N; i++)
if (v[i] % 2 == 0)
cout<<v[i]<<" ";
return 0;
}
Enunt: Sa se afiseze elementele impare ale unui vector citit de la tastatura. Programul de mai jos
citeste si memoreaza elemente in interiorul unui vector. Pentru a afisa elementele impare din
vector, acesta este parcurs element cu element si in cazul in care un element este impar (adica
daca trece testul if(v[i]%2==1)) atunci elementul respectiv este afisat pe ecran.
Rezolvare:
#include <iostream>
using namespace std;
int main(){
int N;
7
cin>>N;
int v[100];
int i;
for (i = 1; i <= N ; i++)
cin>>v[i];
for (i = 1; i <= N; i++)
if (v[i] % 2 == 1)
cout<<v[i]<<" ";
return 0;
}
Se afiseaza elementele de pe pozitiile pare ale unui vector, dupa care, in continuarea lor, cele de
pe pozitii impare.
#include <iostream>
using namespace std;
int main(){
int N;
cin>>N;
int v[100];
int i;
for (i = 1; i <= N; i++)
cin>>v[i];
for (i = 2; i <= N; i = i + 2)
cout<<v[i]<<" ";
for (i = 1; i <= N; i = i + 2)
cout<<v[i]<<" ";
return 0;
}
Se citeste un numar foarte mare de elemente cu doua cifre de la tastatura (retinerea lor intr-un
vector devine imposibila din cauza spatiului ocupat). Se doreste afisarea elementului care apare
de cele mai multe ori in sir. Stiind ca numerele citite sunt intre 10 si 99, putem folosi vectorul
frecventa, pentru a retine numarul de aparitii al fiecarui numar – frecv[a] retine de cate ori apare
numarul a in sir.
#include <iostream>
using namespace std;
int frecv[100];
8
int main(){
int element;
while(cin>>element){
frecv[element]++;
}
int maxim = 0,el = 0, i;
for (i = 10;i < 100; i++)
if(frecv[i] > maxim){
maxim = frecv[i];
el = i;
}
cout<<el<<" "<<maxim;
return 0;
}