Sunteți pe pagina 1din 7

Laborator 3 Algoritmi Fundamentali 1

Structura repetitivă cu număr cunoscut de pași. Instrucțiunea For.


Instrucțiunea for se folosește pentru a executa repetitiv o instrucțiune sau o
secvență de instrucțiuni, implementând de obicei structura ciclică cu număr cunoscut de
pași.
Instrucțiunea for este condiționată anterior, fiind o instrucțiune particulară „while”.
For contor = 1 to n do

Instructiuni

End for.

Modul de funcționare:
Pasul 1. Se inițializează contorul (contor = variabila care numără pașii)
Pasul 2. Se testeaza conditia astfel: se verifică dacă valoarea contorului este mai
mică sau egală cu valoarea finală
Pasul 3. Dacă DA , atunci se executa pachetul de instructiuni
Pasul 4. Se executa incrementarea si se revine la pasul 2
Pasul 5: Dacă NU, se oprește execuția instrucțiunii FOR.

Schema logică – FOR (http://lbi.ro/~bella/5/cap%2005%20Elemente%20de%20baza/7_1%20Structura


%20repetitiv%E3%20de%20tip%20FOR.pdf)
Laborator 3 Algoritmi Fundamentali 2

Aplicații de laborator
1. Sa se calculeze suma numerelor naturale divizibile cu 3 mai mici sau egale decat o
valoare data n.
Algoritm divizibil (n, s)
s=0;
for i=3 to n
if ( i % 3 = 0 )
s= s + i;
else
return 0; // se iese din if si intra in alta iteratie a ciclului for
end if.
End for.
return s;
end alg.
2. Se dă un număr natural n. Să se scrie un algoritm care calculează si returnează
produsul numerelor impare cuprinse între 1 și n, altfel calculeaza suma numerelor
divizibile cu 5.
Algoritm produs (n, p, s)
p=1; s=0;
for i=1 to n
if ( i % 2 = 1 )
p= p * i;
if ( i % 5 = 0 )
s=s+i
end if.
end if.
end for.
return s; return p;
end alg.
Laborator 3 Algoritmi Fundamentali 3

3. Se dă un număr natural n. Să se scrie un algoritm care returnează numărul divizorilor


lui n si calculează suma acestora.
Exemplu: pentru n=6, se va returna nr = 4 si s=12 (12=1+2+3+6)
Algoritm divizori (n, nr, s)
nr = 1; s = n;
for i = 2 to n / 2
if (n % i = 0)
nr = nr + 1;
s = s + i;
end if.
End for.
return nr; return s;
end alg.

4. Se dă un vector v, cu n numere. Să se scrie un algoritm care calculează si returnează


media aritmetică a numerelor divizibile cu 2.
algoritm medie ( n, v, ma )
s= 0; nr=0
for i = 1 to n // i = indicele numerelor din vectorul v
if ( v[i] % 2 = 0)
s = s+v[i];
nr = nr + 1;
end if.
end for.
ma = s / nr;
return ma;
end alg.
Laborator 3 Algoritmi Fundamentali 4

5. Să se scrie un algoritm care calculează suma S = 1*2+2*3+3*4+...+n*(n+1), n fiind un


număr dat.
algoritm suma (n, s)
s = 0;
for i = 1 to n
s = s + (i* (i+1));
end for.
return s;
end alg.

6. Se dau n valori întregi. Să se scrie un algoritm care returnează cea mai mică valoare
impară dintre aceste valori.
Varianta 1
Algoritm valmin (n, min)
min=v[1];
For i=2 to n
If (v[i]<min) and (v[i] mod 2=1)
min=v[i];
end if.
If (min mod 2=0)
Cod = 1 // write („nu exista element impar in vector”)
Else
return min;
end if. end for.
end alg.
Laborator 3 Algoritmi Fundamentali 5

Varianta 2
Algoritm valmin (n, min)
min=MAXINT; // MAXINT este o constantă globală, egală cu limita superioară a tipului întreg
For i=1 to n
If (v[i] mod 2 !=0) and (v[i]<min)
min=v[i];
end if.
end for
return min;
end alg.
7. Se dau n valori întregi. Să se scrie un algoritm care returnează numărul de valori pare
aflate în intervalul [a,b].
algoritm interval(a, b, n, nr)
nr=0;
For i=1 to n
If (v[i]>=a) and (v[i]<=b) and (v[i]%2=0)
nr=nr+1;
end if.
end for.
return nr;
end alg
8. Să se scrie un algoritm care determină și returnează numerele de două cifre care au
cifre distincte.
algoritm distincte ( v[30] )
k=0 //contorul pentru vectorul format din numerele de 2 cifre distincte
For i = 10 to 98
cz = i/10; // cz = cifra zecilor
cu = i%10; // cu = cifra unitatilor
Laborator 3 Algoritmi Fundamentali 6

if (c1 != c2)
v[k] = i; //adaugam intr-un vector v numerele de 2 cifre distincte gasite
k = k + 1;
end if.
end for.
end alg.
9. Să se scrie un algoritm care calculează și returnează suma numerelor de trei cifre
divizibile cu 5.
algoritm numere ( v[30] )
s=0;
For i = 100 to 995 Step 5
s = s + i;
end for;
return s;
end alg.
Laborator 3 Algoritmi Fundamentali 7

Tema de laborator

1. Se dă un număr natural n>3. Să se scrie un algoritm care calculează şi returnează


suma numerelor mai mici decât n care au ultima cifră 7 şi sunt divizibile cu 3.
2. Se dau două numere naturale a şi b (a<b). Să se scrie un algoritm care calculează
şi returnează produsul numerelor impare şi suma numerelor pare cuprinse între
intervalul a şi b.
3. Să se scrie un algoritm care verifică dacă un număr n este prim.
4. Se dă un număr natural nenul n. Să se scrie un algoritm care returnează în ordine
descrescătoare toate numerele impare mai mici decât n.
5. Se dă un număr natural n > 5. Să se scrie un algoritm care returnează toate
numerele pătrate perfecte mai mici decât n, dar impare.

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