Documente Academic
Documente Profesional
Documente Cultură
LABORATORUL 12
Tablouri unidimensionale
INDICII DE REZOLVARE
1.Se citește un vector cu n elemente, numere naturale. Să se afișeze suma elementelor din vector.
int suma = 0;
for(int i = 0; i < n; i++)
suma = suma + V[i];
cout << suma;
#include <iostream>
int main()
{
int V1[10] = {4, 2, 1, 9, 6, 8};
int n = 6;
1
Programare structurată (Limbajul C++)
Profesor: Andrian Dascal
PROBLEME REZOLVATE
1. Problemă
#include <iostream>
using namespace std;
/*
Se citesc elementele unui tablou unidimensional cu n (n<=100) componente, numere
întregi din cel mult 4 cifre fiecare. Să se calculeze media aritmetica a componentelor
tabloului.
*/
int main()
{
int v[100];
int n,i,s;
float ma;
cout<<" Citirea vectorului v "<<endl;
cout<<"Dati dimensiunea vectorului (<=100) ";cin>>n;
for(i=0;i<n;i++)
{
cout<<"Dati valoarea elementului "<<i+1<<" ";
cin>>v[i];
}
s=0;
ma=0;
for(i=0;i<n;i++)
s=s+v[i];
ma=(float)s/n;
cout<<"Media aritmetica a componentelor vectorului = "<<ma;
return 0;
}
2. Problemă
#include <iostream>
using namespace std;
/*
Se citesc elementele unui tablou unidimensional cu n (n<=100) componente, numere
întregi din cel mult 4 cifre fiecare. Să se determine Valoarea minimă şi valoarea
maximă.*/
int main()
{
int v[100];
int n,i;
int min,max;
cout<<" Citirea vectorului v "<<endl;
cout<<"Dati dimensiunea vectorului (<=100) ";cin>>n;
for(i=0;i<n;i++)
{
cout<<"Dati valoarea elementului "<<i+1<<" ";
cin>>v[i];
}
min=max=v[0];
for(i=1;i<n;i++)
{
if(min>v[i])min=v[i];
if(max<v[i])max=v[i];
}
cout<<"Maximul este = "<<max<<" si minimul este "<<min;
return 0;
}
2
Programare structurată (Limbajul C++)
Profesor: Andrian Dascal
3. Problemă
#include <iostream>
using namespace std;
/*
Se citesc elementele unui tablou unidimensional cu n (n<=100) componente, numere
întregi din cel mult 4 cifre fiecare. Să se afişeze valoarea componentei cu număr
maxim de divizori. In cazul în care sunt mai multe astfel de componente se v-a
afişa cea cu valoarea cea mai mică. Exemplu. pentru a=(10, 49, 35, 25, 6, 3) se
afişează 6.
*/
int main()
{
int v[100];
int n,i;
cout<<" Citirea vectorului v "<<endl;
cout<<"Dati dimensiunea vectorului (<=100) ";cin>>n;
for(i=0;i<n;i++)
{
cout<<"Dati valoarea elementului "<<i+1<<" ";
cin>>v[i];
}
int min_div,elem;
elem=v[0];
min_div=0;
for(int j=1;j<=elem;j++)
if(elem%j==0)min_div++;
for(i=1;i<n;i++)
{
int nr_div=0;
for(int k=1;k<=v[i];k++)
if(v[i]%k==0)nr_div++;
if((nr_div>=min_div)&&(elem>=v[i]))
{
min_div=nr_div;
elem=v[i];
}
}
cout<<" Valoarea cu cei mai multi divizori este "<<elem;
return 0;
}
4. Problemă
#include <iostream>
using namespace std;
/*
Se citesc elementele unui tablou unidimensional cu n (n<=100) componente, numere
întregi din cel mult 4 cifre fiecare. Să se determine valoarea maximă şi de câte
ori apare aceasta în tablou.
*/
int main()
{
int v[100];
int n,i,max,nr;
cout<<" Citirea vectorului v "<<endl;
cout<<"Dati dimensiunea vectorului (<=100) ";cin>>n;
for(i=0;i<n;i++)
{
cout<<"Dati valoarea elementului "<<i+1<<" ";
cin>>v[i];
}
max=v[0];
nr=1;
for(i=1;i<n;i++)
3
Programare structurată (Limbajul C++)
Profesor: Andrian Dascal
{
if(max<v[i])
{
max=v[i];
nr=1;
}
else
if(max==v[i])nr++;
else ;
}
cout<<"Elementul maxim este "<<max<<" si apare de "<<nr<<" ori ";
return 0;
}
5. Problemă
#include <iostream>
using namespace std;
/*
Se citesc elementele unui tablou unidimensional cu n (n<=1OO) componente, numere
întregi din cel mult 4 cifre fiecare. Să se verifice dacă tabloul este ordonat
(crescător sau descrescător).
*/
int main()
{
int v[100];
int i,n,crescator;
cout<<"Dati dimensiunea vectorului ";cin>>n;
for(i=0;i<n;i++)
{
cout<<"Dati valoarea "<<i+1<<" ";cin>>v[i];
}
//presupunem ca vectorul este ordonat crescator !
crescator=1;
i=0;
while((i<n-1)&&(crescator!=0))
{
if(v[i]>v[i+1])crescator=0;
i++;
}
if(crescator==0)cout<<"Vectorul nu este ordonat crescator";
else cout<<"Vectorul este ordonat crescator !";
return 0;
}
Exerciții propuse
4
Programare structurată (Limbajul C++)
Profesor: Andrian Dascal
6. Se citeste un vector cu n elemente numere intregi, n fiind cel mult egal cu 1000. Parcurgeti si
afisati elementele vectorului astfel: intai elementele de pe pozitii pare in ordiena din vector,
iar pe linia urmatoare elementele de pozitii impare in ordine inversa din vector. Indexarea
elementelor din vector incepe cu 1.
Exemplu: Pentru n=7 si vectorul cu elementele {5, 3, 5, 2, 7, 6, 4} se vor afisa elementele
astfel:
326
4755
7. Se citeste un vector cu n elemente numere intregi, n fiind cel mult egal cu 1000. Parcurgeti si
afisati elementele vectorului astfel: primul, ultimul, al doilea, penultimul, ...
Exemplu: Pentru n=7 si vectorul cu elementele {5, 4, 5, 2, 7, 6, 5} se vor afisa numerele: 5 5
46572
8. Se citeste un vector cu n elemente numere intregi, n fiind cel mult egal cu 1000. Calculati si
afisati cate dintre elementele vectorului sunt egale cu diferenta dintre cel mai mare si cel mai
mic element din vector.
Exemplu: Pentru n=7 si vectorul cu elementele {5, 4, 5, 2, 7, 6, 5} se va afisa 3 (5 apare de 3
ori si e egal cu diferenta dintre 7 si 2).
9. Se citesc n numere naturale. Se presupune ca cele n numere naturale sunt asezate pe un cerc.
Afisati cei doi indici ai perechii de elemente alaturate care au diferenta in modul minima.
Exemple:
n=5
Elementele: 4 7 6 9 1
Se vor afisa 2 3 (7 si 6 formeaza perechea cu diferenta minima)
n=5
Elementele: 4 6 3 5 3
Se vor afisa 1 5 (4 si 3 formeaza perechea cu diferenta minima)