Documente Academic
Documente Profesional
Documente Cultură
Laborator 5
1. Fie vectorii X = (x1, x2, … , xn) și Y=(y1, y2, ... ,yn). Să se determine produsul scalar între doi vectori
(de aceeași lungime) unde ps = x1 × y1 + x2 × y2 + ... + xn × yn (o dată elementară sau scalară).
Algoritmul este recursiv, cu formula de start ps=0 și formula recursivă ps=ps+xi*yi , i=1,n.
ps=0;
for(i=1, n, 1)
ps=ps+x(i)*y(i);
scrie ps;
1
Seminar 5
2. Fie vectorii X = (x1, x2, … , xn) și Y=(y1, y2, ... ,yn). Să se determine produsul vectorial ce are ca rezultat
un vector, PV = (pv1, pv2, ..., pvn) și este un algoritm iterativ, în care formula iterativă este pv1=xi • yi
, i=1,n.
for(i=1, n, 1)
pv(i)=x(i)*y(i);
2
Seminar 5
3. Să se determine pozițiile tuturor aparițiilor unei valori date într-un vector neordonat. Vectorul se
parcurge secvențial cu ajutorul structurii DO-FOR, de la primul la ultimul element, reținând valoarea
curentă a indicelui în cazul identității elementului cu valoarea căutată, într-un vector (poz) de poziții
(vectorul poz se construiește). Dacă la sfârșitul ciclării vectorul poz este vid (indicele k al acestuia este
0), atunci valoarea căutată nu a fost regăsită și se afișează un mesaj corespunzător.
{
k=0;
for(i=1, n, 1)
if(x(i)=a)
k=k+1;
poz(k)=i;
x(i)=a }
if(k>0)
else
3
Seminar 5
}
citește n, (x(i), i=1,n);
max=x(1);
k=0;
for(i=1, n, 1)
if(x(i)>=max)
{
if(x(i)>max)
{
max=x(i);
k=1;
}
else
k=k+1;
poz(k)=i;
}
scrie max, (poz(i), i=1, k);
}
4
Seminar 5
5. Să se insereze o valoare dată într-un vector ordonat de dimensiune n (după inserare vectorul va rămâne
ordonat).
Fie vectorul X = (x1, x2, … , xn) și a valoarea care trebuie inserată în vectorul ordonat. Se
parcurge vectorul atâta timp cât valoarea curentă din vectorul x este mai mica decât valoarea a și mai
sunt și elemente în vector. La ieșirea din structura repetitive, indicele current reprezintă poziția din
vector unde trebuie inserată valoarea. Inserarea se realizează după ce glisează toate valorile din dreapta
cu o poziție.
Observație: în cazul programului, dimensiunea efectivă a vectorului (valoarea lui n citită de la
tastatură) trebuie să fie cu cel puțin o unitate mai mică decât dimensiunea alocată, pentru a permite
extinderea (de exemplu n ≤ 99).
i=1;
i=i+1;
for(j=n, i, -1)
x(j+1)=x(j);
j=j-1;
x(i)=a;
5
Seminar 5
3. Să se determine poziția primei apariții a unei valori date într-un vector neordonat.