Sunteți pe pagina 1din 6

Algoritmi ramificai

1. S se scrie un algoritm pentru soluionarea ecuaiei de gradul I:


0 = + b x a
Date de intrare: a, b
Date de ieire: x
START

Eroare
x := -b/a
a = 0
STOP
a, b
x


Tem:
2. S se scrie un algoritm pentru evaluarea funciei :
( )

> +
+
=
0 3
0 2
2
x x
x x x
x f
3. S se scrie un algoritm pentru evaluarea funciei :
( )

< < +
+
=
1 2
1 0 3
0 2
2
x x
x x
x x x
x f
Algoritmi ciclici cu numr cunoscut de pai
4. S se scrie un algoritm pentru calculul factorialului unui numr n.
Date de intrare: n
Date de ieire: factorialul lui n
START

fact := 1
i n
STOP
n
fact
i := 1
fact := fact i
i := i + 1


Tem:
5. S se scrie un algoritm pentru calculul sumei elementelor unui vector de dimensiune n.
6. S se scrie un algoritm pentru determinarea maximului dintr-un vector.
7. S se scrie un algoritm pentru sortarea unui vector folosind algoritmul bubble sort.
Date de intrare: A(i), i = 1, n
Date de ieire: A(i) sortat
Nota: Algoritmul bubble sort (pentru vector cu baza 1) este descris mai jos
START
i := 1
j := i + 1

temp := A(j)
A(j) := A(i)
A(i) := temp
j := j+1
A(i) > A (j)

j n
i := i + 1

i n - 1
STOP


Test
S se ordoneze vectorul avnd n= 4 elemente: 5, 7, 2, 3
Execuie i Execuie j Obinem Vector
1 2 5 7 2 3
3 2 7 5 3
4 2 7 5 3
2 3 2 5 7 3
4 2 3 7 5
3 4 2 3 5 7

Programul surs n Visual Basic este redat mai jos:
Sub BubbleSort(A() As Integer)
Dim i As Integer
Dim j As Integer
Dim temp As Integer

For i = 1 To UBound(A) - 1
For j = i + 1 To UBound(A)
If A(i) > A(j) Then
temp = A(j)
A(j) = A(i)
A(i) = temp
End If
Next j
Next i
End Sub
8. S se scrie un algoritm pentru adunarea elementelor de deasupra diagonalei principale a unei
matrice ptrate
Tem:
9. S se scrie algoritmul pentru produsul a doua matrice.
Pont: Observaii pentru calculul produsului a doua matrice sunt date mai jos.
Daca matricele care se nmulesc sunt A(m,n) si B(n,p), matricea rezultant C=AB va fi de rang
(m,p).
(
(
(
(
(

=
(
(
(
(
(
(

(
(
(
(

p m m m
p
p
p n n n
p n n n
p
p
n m n m m m
n n
n n
c c c
c c c
c c c
b b b
b b b
b b b
b b b
a a a a
a a a a
a a a a
, 2 , 1 ,
, 2 2 , 2 1 , 2
, 1 2 , 1 1 , 1
, 2 , 1 ,
, 1 2 , 1 1 , 1
, 2 2 , 2 1 , 2
, 1 2 , 1 1 , 1
, 1 , 2 , 1 ,
, 2 1 , 2 2 , 2 1 , 2
, 1 1 , 1 2 , 1 1 , 1
L
M O M M
L
L
L
L
M O M M
L
L
L
M M O L M
L
L

Un element c
i,j
al matricei C va fi obinut prin relaia:

=

= + + + + =
n
k
j k k i n n i j n n i j i j i j i
b a b a b a b a b a c
1
, , , 1 , , 1 1 , , 2 2 , , 1 1 , ,
K
Algoritmi ciclici cu numr necunoscut de pai
10. S se scrie un algoritm pentru determinarea valorii numrului e cu precizia cerut de utilizator.
Date de intrare:
Date de ieire: e
Pont: Pentru calculul numrului e putem folosi dezvoltarea:
!
1
! 3
1
! 2
1
! 1
1
1
n
e + + + + + = L
START
i := 1, e
old
:= 0
fact := 1
fact := fact i

dif
e := e + 1/fact
STOP

i := i + 1
dif :=(e - e
old
(
e
old
:= e
e


Tem:
11. S se scrie algoritmul pentru determinarea valorii lui sin(x) cu precizia cerut de utilizator.
Date de intrare: x,
Date de ieire: sin(x)
Pont: Pentru calculul sinusului unui numr x putem folosi dezvoltarea:
( ) ( )
( )! 1 2
1
! 7 ! 5 ! 3
sin
1 2 7 5 3
+
+ + + =
+
n
x x x x
x x
n
n
L
12. S se scrie algoritmul pentru determinarea valorii lui cos(x) cu precizia cerut de utilizator.
Date de intrare: x,
Date de ieire: cos(x)
Pont: Pentru calculul sinusului unui numr x putem folosi dezvoltarea:
( ) ( )
( )! 2
1
! 6 ! 4 ! 2
1 cos
2 6 4 2
n
x x x x
x
n
n
+ + + = L