Documente Academic
Documente Profesional
Documente Cultură
Ap Curs1
Ap Curs1
2008 – 2009
Curs 1
• Nota finală:
– <= 4 dacă sunt îndeplinite condiţiile şi NU sunt
îndeplinite criteriile de promovare,
– = 10 dacă PF este în primii 10% din cei promovaţi (A)
– = 9 următorii 25% din cei promovaţi (B)
– = 8 următorii 30% din cei promovaţi (C)
– = 7 următorii 25% din cei promovaţi (D)
– = 6 următorii 10% din cei promovaţi (E)
– = 5 dacă criteriile nu sunt îndeplinite cu o eroare de 3%
şi activitatea generală justifică totuşi o promovare la
limită (max 5% din cei promovaţi)
• Instanţă a variabilei
adr
x int
– Pointeri
adr
adr
p int*
*p int
Algoritmi si programare 2008 19
Instrucţiuni
• Atribuirea
– Sintaxa:
<variabilă> ← <expresie>
– Sematica:
• Se evaluează <expresie> şi rezultatul
obţinut se memorează în locaţia desemnată
de <variabilă>
• Este singura instrucţiune cu ajutorul căreia
se poate modifica conţinutul memoriei
u int 40
v int 20
u int -800
v int 20
*p int 10
adr
p int* adr
if <expresie>
then <secvenţă-instrucţiuni1>
sau
min ← a
if (b < a) then min ← b
Algoritmi si programare 2008 26
Instrucţiuni
• while Expresie cu rezultat
boolean după evaluare
– Sintaxa:
while <expresie> do
<secvenţă-instrucţiuni>
– Semantica:
1. Se evaluează <expresie>
2. Dacă rezultatul este true atunci se
execută <secvenţă-instrucţiuni> după care
se reia procesul începând cu pasul 1. Dacă
rezultatul este false atunci execuţia
instrucţiunii while se termină
Algoritmi si programare 2008 27
Exemplu while
• cel mai mic k astfel încât 7k >= n
pentru un n dat
k ← 0
sapte_la_k ← 1
while (sapte_la_k < n)
k ← k+1
sapte_la_k ← sapte_la_k * 7
Expresie cu rezultat
boolean după evaluare
sau
swap(a, b)
swap(b, c)
Algoritmi si programare 2008 38
Subprograme
• Funcţii: Opţional
Variabile
– Sintaxa:
function <nume>(<lista-parametri-formali>)
begin
<secvenţă-instrucţiuni>
Conţine măcar o
end
instrucţiune
– Apel: return <expr>
<nume>(<lista-parametri-actuali>)
utilizat într-o expresie: valoarea întoarsă de
funcţie este cea obţinută prin evaluarea
<expr>
Algoritmi si programare 2008 39
Subprograme
• Funcţii:
function max3(x, y, z)
begin
temp ← x
if(y > temp) then temp ← y
if(z > temp) then temp ← z
return temp
end
function alpha(x)
begin
if(x > 0) /* testeaza x pozitiv */
then x ← x-1 /* decrementeaza x */
else x ← x+1 /* incrementeaza x */
return x
end
a[0] int
a[1] int
a[2] int
a[3] int
a[4] int
for i ← 0 to n – 1 do
c[i] ← a[i] + b[i]
a[0,0] int
a[0,1] int
a[0,2] int
a[1,0] int
a[1,1] int
a[1,2] int
a tab2d
a[0] tab1d
a[1] tab1d
for i ← 0 to m – 1 do
for j ← 0 to n – 1 do
c[i,j] ← 0
for k ← 0 to p – 1 do
c[i,j] ← c[i,j]+a[i,k]*b[k,j]
d data
d.z zi
d.ln luna
d.a an
d data*
*d data
dz zi
dln luna
da an