Sunteți pe pagina 1din 9

S4.

Exerciții și probleme cu vectori


Cuprins

1. Probleme rezolvate, explicații și discuții


- lucrul cu vectori
- exemple de utilizare a următoarelor structuri repetitive:
- DO-FOR
- WHILE-DO
- DO-UNTIL

2. Alte exemple (probleme)


1. Probleme rezolvate - 1
1. Să se determine suma elementelor unui vector
Fie X = (x1, x2,…, xn )
S0 = 0;
……………
S1 = S0 + x1 = 0 + x1 = x1;
S2 = S1 + x2 = x1 + x2;
……………
Sn = Sn-1 + xn = x1 + x2 + … + xn;
..………….
S = Sn.
Având în vedere că sumele parțiale S0, S1, … , Sn nu ne interesează și, în plus, se ocupă inutil
memorie internă, însumarea se va realiza în aceeași locație de memorie, cu adresa simbolică S.
Obs.: semnul = se transformă din operator relațional în operator de atribuire
S = 0;
…………..
S = S + x 1 = 0 + x 1 = x1 ;
S = S + x2 = x1 + x2;
……………
S = S + x n = x 1 + x2 + … + x n ;
Algoritmul recursiv poate fi descris cu ajutorul a două formule:
formula de start: S = 0;
formula recursivă: S = S + x(i), i= 1,n.
SLS: Pseudocod:
START
{
à n, (x(i), i=1,n) read n,(x(i),i=1,n);
s=0;
s=0 do for i=1,n,1
s=s+x(i)
i=1
enddo;
write s
DA }
i≤n

s=s+x(i)

NU
i=i+1

ßs
Exemplu -> utilizarea structurii DO-FOR

STOP
1. Probleme rezolvate - 2
2. Să se determine poziția primei apariții a unei valori date într-un vector
neordonat.

Vectorul se parcurge secvențial de la primul element, cu ajutorul structurii WHILE-


DO, până când se regăsește valoarea căutată sau până la ultimul element, caz în care
valoarea căutată nu se află în vector, afişându-se un mesaj corespunzător.

Exemplu -> utilizarea structurii WHILE-DO


SLS: Pseudocod:

{
read n,(x(i),i=1,n),a;
i=1;
while i≤n and x(i)≠a do
i=i+1
endwhile;
if i≤n then
write i
else
write "Valoare neregasita!"
endif
}
1. Probleme rezolvate - 3
3. Să se determine cel mai mare divizor comun dintre două numere
naturale, folosind teorema împărțirii cu rest (algoritmul lui Euclid).

Exemplu -> utilizarea structurii DO-UNTIL


SLS: Pseudocod:
START
{ read a,b;
à a, b d=a;
i=b;
d=a
do
i=b {r=rest(d/i);
if r=0 then
r=rest(d/i)
write i
NU DA else
r=0
if r=1 then
NU DA ßi
r=1 write "Nr. prime intre ele!"
d=i ß “Nr. prime
între ele !”
else
{d=i;
i=r
i=r }
endif
NU endif
r≤1
}
DA

STOP
until r<=1
}
2. Alte exemple (probleme)

1. Să se determine suma elementelor cu valoare impară dintr-un vector


X=(x1,x2,…,xn), xiϵN.
2. Să se determine produsul scalar între doi vectori.
3. Să se determine produsul vectorial între doi vectori.
4. Să se determine poziția ultimei apariții a unei valori date într ‑un vector
neordonat.
5. Să se determine pozițiile tuturor aparițiilor unei valori date într-un vector
neordonat.
6. Să se determine maximul dintre elementele unui vector.
7. Să se determine elementul maxim dintr-un vector și pozițiile tuturor
aparițiilor sale.
8. Să se determine amplitudinea elementelor dintr-un vector.
9. Să se calculeze valoarea unui polinom într-un punct dat.
10. Să se insereze o valoare dată într-un vector ordonat de dimensiune n (după
inserare vectorul va rămâne ordonat).

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