lb2

23
  Universitatea din București – Facultatea de Geografie Master GiS Ionut Ovejanu / 2014 lb2

description

vb

Transcript of lb2

  • Universitatea din Bucureti Facultatea de GeografieMaster GiS

    Ionut Ovejanu / 2014

    lb2

  • Binar / Zecimal 20=1 21=2 22=4 23=8 24=16 25=32 26=64 27=128

    Reprezentarea numerelor in binar:1011=(1*23)+(0*22)+(1*21)+(1*20) = (1*8) + (0*4) + (1*2) + (1*1) = 11 (sistem zecimal)

    Conversie din binar in zecimal:11110 = (1*24) + (1*23) + (1*22) + (1*21) + (0*20) = 16 + 8 + 4 + 2 + 0 =30 (sistem zecimal)

    Binar / Zecimal 2 8=256 2 9=512 210=1024 211=2048 212=4096 213=8192 214=16348 215=32768

  • OpenGiS.unibuc.ro / 2012

    Operatii in binar:Adunarea: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0, retine 1 bit pentru operatia cu urmatoareScaderea: 0 - 0 = 0 0 - 1 = 1, imprumuta 1 bit pentru operatia cu urmatoare 1 - 0 = 1 1 - 1 = 0 Inmultirea: 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1, nu retine si nu imprumuta biti Impartirea in binar:- procese succesive de scadere

  • Translatii:

    > Translaie la dreapta 11>>1=511=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

  • Arithmetic Shift

    Stanga

    Dreapta

    Logical Shift

    Stanga

    Dreapta

    Binary shift

    LSB cel mai putin semnificativ bitMSB cel mai semnificativ bit (high-order bit)

  • 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 = 5y = 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)

  • Folosirea declaraiei global

    Atribuirea de valoare unui 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 global . (declaraia global). Este imposibil ca n interiorul unei funcii s atribui o valoare unei variabile definite n afara funciei fr declaraia global.

    #!/usr/bin/python3.1# Fiier: functii.py x = 50 def func(): global x print('x is', x) x = 2 print('Am schimbat x global n ', x) func()print('Valoarea lui x este', x)

  • Folosirea declaraiei nonlocal

    Exist un domeniu specific funciilor, numit "nonlocal" i care se afl ntre cele dou. Domeniile nonlocal se observ cnd definii funcii n interiorul funciilor.

    #!/usr/bin/python# Fiier: functii.py def func_out(): x = 3 print('x este', x) def func_in(): nonlocal x x = 7 func_in() print('x local a devenit ', x) func_out()

  • Valori implicite ale argumentelor

    Pentru unele funcii, puteti face unii parametri opionali i s folosii valori implicite n cazul n care nu se furnizeaz o valoare pentru parametrul respectiv (valoare implicita ale parametrilor). Se pot specifica valorile implicite ale argumentelor n definiia funciei, punnd operatorul de atribuire (=) urmat de valoarea implicit (valoarea implicit a argumentului trebuie s fie o constant)Numai parametrii de la sfritul listei de parametri pot avea valori implicite deci nu putei avea un parametru cu valoare implicit naintea altuia fr valoare implicit n lista de parametri a functiei deoarece valorile sunt atribuite parametrilor prin pozitie

    #!/usr/bin/python3.1# Fiier: functii.py def spune(mesaj, ori = 1): print(mesaj * ori) spune('Cucu Bau')spune('Hau', 7)

  • Argumente cuvnt cheie

    In cazul unor funcii cu muli parametri specificarea numai a unora, se realizeaza prin atribuirea de valori parametrilor prin numele lor. Se pot da valori numai unor parametri selectati, cu conditia ca toi ceilalti sa aib n definitia functiei valori implicite.

    #!/usr/bin/python3.1# Fiier: functii.py def func(a, b=10, c=20): print('a este', a, 'i b este', b, 'i c este', c) func(6, 8)func(250, c=240)func(c=500, a=200)

  • 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))

  • Parametri exclusiv cuvnt cheie

    Specificarea anumitor parametri cuvnt cheie pentru a fi disponibili numai n forma cuvnt cheie i niciodat ca parametri poziionali, se realizeaza prin declarare dup un parametru cu asterisc.

    #!/usr/bin/python3.1# Fiier: functii.py def total(initial=5, *numere, caiete): numarator = initial for numar in numere: numarator += numar numarator += caiete return numarator print(total(10, 1, 2, 3, caiete=50))print(total(10, 1, 2, 3))# Ridic o eroare pentru c nu am furnizat o valoare implicit pentru 'caiete'

  • 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)

  • Universitatea din Bucureti Facultatea de GeografieMaster GiS

    Va mulumesc

    OpenGiS.ro / 2014

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23