Professional Documents
Culture Documents
Master GiS
lb
Binar / Zecimal
20=1
21=2
22=4
23=8
24=16
25=32
26=64
27=128
Binar / Zecimal
2 8=256
2 9=512
210=1024
211=2048
212=4096
213=8192
214=16348
215=32768
Operatii in binar:
Adunarea:
0+0=0
0+1=1
1+0=1
1 + 1 = 0, retine 1 bit pentru operatia cu urmatoare
Scaderea:
0-0=0
0 - 1 = 1, imprumuta 1 bit pentru operatia cu urmatoare
1-0=1
1-1=0
Inmultirea:
0x0=0
0x1=0
1x0=0
1 x 1 = 1, nu retine si nu imprumuta biti
Impartirea in binar:
- procese succesive de scadere
OpenGiS.unibuc.ro / 2012
Translatii:
<< Translaie la stnga 2<<2 =8
10 --> 10 00 --> (1*23)+(0*22)+(0*21)+(0*20) = 8+0+0+0 =8
>> Translaie la dreapta 11>>1=5
11=8+2+1 = (1*23)+(0*22)+(1*21)+(1*20) = 1011
101(1) --> 101 --> (1*22)+(0*21)+(1*20) = 4+0+1 =5
Binary shift
Arithmetic Shift
Stanga
Dreapta
Logical Shift
Stanga
Dreapta
Exemplu
1029 = 10000000101 == 2**10 + 2**2 + 2**0 == 1024 + 4 + 1
Functiile
- poriuni de program reutilizabile;
- permit alocarea de nume unui bloc de declaratii si puteti rula acel bloc de declaratii n
program de cate ori vreti (apel al funciei)
- functiile sunt definite folosind cuvantul cheie def nume_functie ( ) ;
- accepta parametri (ca valori furnizate functiei) care sunt specificati ntr-o pereche de
paranteze n definitia functiei, separate prin virgule;
!!! terminologie - numele date n functie se numesc parametri n timp ce valorile
furnizate n apelul functiei se numesc argumente.
- variabile n interiorul definitiei funciei nu au nici un fel de legtur cu variabilele din
afara definitiei functiei, chiar dac au avea acelai nume si se numaesc variabile
locale ale functiei;
- atribuirea de valoare nume definit la nivelul cel mai nalt al programului (adic nu n
interiorul domeniului funciei sau clasei), va trebui s-i spunei lui Python c acel nume
nu este local ci este global si folosim declaratia global.
- este imposibil ca n interiorul unei funcii s atribui o valoare unei variabile definite n
afara funciei fr declaraia global;
-exist un domeniu specific funciilor, numit "nonlocal" i care se afl ntre cele dou
(definirea de functii in interiorul functiilor);
- parametri opionali pot fi folositi ca valori implicite n cazul n care nu este furnizata o
valoare pentru parametrul respectiv (specificarea valorilor implicite ale argumentelor n
definitia functiei se face punnd operatorul de atribuire (=) urmat de valoarea implicit);
- valoarea implicit a argumentului trebuie sa fie o constant.
- se pot da valori parametrilor prin numele lor (argumente cuvnt cheie - in locul
pozitiei pentru a specifica argumentele functiei)
- se poate defini o funcie care s ia orice numr de parametri folosind (*);
- facilitate numit documentation strings (docstrings)
Exemplu:
#!/usr/bin/python3.1
# Fiier: functii.py
def sayHello():
print('Hello World!') # blocul funciei
# Sfritul funciei
sayHello() # apel la funcia sayHello()
sayHello() # din nou apel la funcia sayHello()
Parametrii funciilor
O funcie poate accepta parametri; sunt ca variabilele numai c valorile acestor
variabile sunt definite n momentul apelului funciei i deja le sunt atribuite valori la
momentul executrii blocului funciei. Specificai ntr-o pereche de paranteze n definiia
funciei, separate prin virgule.
#!/usr/bin/python3.1
# Fiier: functii.py
def printMax(a, b):
if a > b:
print(a, 'este cel mai mare')
elif a == b:
print(a, 'este egal cu', b)
else:
print(b, 'este cel mai mare')
printMax(6,8) # argumente date prin literali
x = 5
y = 12
printMax(x, y) # argumente date prin variabile
Variabile locale
Variabile n interiorul definiiei funciei nu au nici un fel de legtur cu variabilele din
afara definiiei funciei, nici chiar dac ar avea acelai nume, de aceea se numesc
variabile locale funciei.
Variabilele au ca domeniu blocul n care sunt declarate, ncepnd cu punctul n care a
fost definit numele ei.
#!/usr/bin/python3.1
# Fiier: functii.py
x = 115
def func(x):
print('x este', x)
x = 6
print('Am schimbat x local n ', x)
func(x)
print('x este tot ', x)
Parametri VarArgs
Se poate defini o funcie care s ia orice numr de parametri, folosind asteriscul (*).
#!/usr/bin/python3.1
# Fiier: functii.py
def total(initial=5, *numere, **keywords):
numarator = initial
for numar in numere:
numarator += numar
for cheie in keywords:
numarator += keywords[cheie]
return numarator
print(total(11, 5, 7, 10, caiete=50, pixuri=100))
Declaraia return
Declaraia return este folosit pentru a ne ntoarce dintr-o funcie.
#!/usr/bin/python3.1
# Fiier: functii.py
def maximul(x, y):
if x > y:
return x
else:
return y
print(maximul(2, 3))
DocStrings
Python are o facilitate numit documentation strings, (docstrings).V ajut s documentai
programele mai bine i le face mai uor de neles.
Ex: Poate s extraga irurile de documentare ale unei funcii chiar n timp ce programul
ruleaz. Putem accesa docstringul funciei printMax folosind atributul __doc__ (observai
dublu underscore) al funciei.
#!/usr/bin/python3.1
# Fiier: functii.py
def printMax(x, y):
'''Tiprete pe ecran cel mai mare din dou numere.
Cele dou numere trebuie s fie ntregi.'''
x = int(x) # convertete n integer, dac este posibil
y = int(y)
if x > y:
print(x, 'este cel mai mare')
else:
print(y, 'este cel mai mare')
print(printMax.__doc__)
printMax(7, 8)
Va mulumesc
OpenGiS.ro / 2014