documentlb

Upload: ni

Post on 02-Nov-2015

217 views

Category:

Documents


0 download

DESCRIPTION

cv

TRANSCRIPT

  • Universitatea din Bucureti Facultatea de GeografieMaster GiS

    Ionut Ovejanu / 2014

    lb

  • Limbajele de programare sunt alcatuite dintr-un set de instruciuni care constituie lista complet a posibilitilor de care dispune programatorul pentru a determina rezolvarea unei probleme (aplicaie) pe un sistem de calcul.

    Instruciunile unui limbaj de programare sunt de dou feluri:

    Instruciuni declarative, care nu determin executarea unei aciuni de ctre sistemul decalcul, ci numai indicaii care se dau compilatorului.

    Instruciuni executabile, care reprezint descrierea unei aciuni pe care o va efectua sistemul decalcul, n special privind datele aplicaiei

    Execuia unei instruciuni reprezint efectuarea operaiei specificate de codul instruciunii, interpretate la un moment dat de unitatea central a unui sistem de calcul sau de un procesor. Ca exemplu de operaii pe care le face unitatea central a sistemului de calcul sunt operaiile de adunare, scdere, citire, scriere, comparaie, etc.

    Rutina este o structur de sine stttoare, asemntoare unui program, prin care se efectueaz oanumit aciune. Este executat numai atunci cnd este lansat (apelat), de ctre un obiect alAplicaiei. Rutina poate fi apelat de un numr nelimitat de ori din diferite locuri iar execuie, controlul revine obiectului care a provocat apelarea rutinei.

  • Sistem de numeraie:Sistem (Baz): Binar(2), Ternar (3), Cuaternar (4), Octal (8), Zecimal (10), Duodecimal (12), Hexazecimal (16), Vigesimal (20), Sexazecimal (60).

    Sistem binar:- cel mai natural mod de stocare a informaiei n domeniul calculatoarelor;- se pot efectua toate operaiunile aritmetice i algebrice;- 0 i 1;- o cifr binar conine cantitatea de informaie de 1 bit.

    Sistemul zecimal:- este un sistem de numeraie poziional, avnd baza 10;

    Sistemul hexazecimal:- sistemul hexazecimal are baza 16 i utilizeaz 16 cifre hexazecimale, care se noteaz astfel: 0 1 2 3 4 5 6 7 8 9 A B C D E F.

    - 1 octet (byte) = 8 bit (bits) => poate stoca 256 valori, se pot reprezenta toate numerele naturale ntre 0 i 255 (28=256);

  • Imagine: collegeteacher.org

  • Imagine: ibm.com

  • Visual Basic pentru Aplicaii (VBA), este o implementare a Microsoft Visual Basic, un limbaj de programare construit n majoritatea aplicaiilor Microsoft Office, n unele alte aplicaii Microsoft, i n cteva alte aplicaii sig, cum ar fi AutoCAD i ESRI ArcGIS.

    Pentru a nelege esenta VBA, trebuie s nelegei c, fiecare parte a unui program de MS Office este compusa din obiecte. Aceste obiecte au proprietati, care pot fi configurate sau modificate, ca rspuns al unui utilizator care initiaza un eveniment, cum ar fi un "click de mouse" sau o "apsare de tast".

    Toate aceste obiecte au proprietati. Unele dintre aceste proprieti sunt fie adevarate sau false (o selecie de text ar putea avea de ingrosarea, setata ca true).

    Unele dintre aceste proprieti ar putea avea o valoare numerica (o selecie de text ar putea avea dimensiunea setat la 36 ).

    Toate aceste obiecte pot reaciona la Evenimente. Folosind un mouse sau o tastatur, utilizatorul iniiaz un eveniment.

    VBA controleaza interactiunea dintre obiecte si proprietatile lor ca raspuns la un eveniment initiat de utilizator.

  • Tipuri de date pot fi: - predefinite (standard), cum ar fi cele pentru numerele ntregi, numerele reale, caractere sau booleene (logice); - proprii (definite de programator) cu ajutorul instruciunii Type.

    Tipurile de date pot fi: - elementare (simple) o variabil de acest tip va conine o singur valoare; - structurate o variabil de acest tip va conine mai multe valori elementare.

    Expresiile in VBA.O expresie este format din termeni asupra crora se efectueaz anumite operaii.O expresie a crei evaluare este o valoare logic (True sau False) se numete condiie.Termenii pot fi: variabile, constante, literali (valori date direct) sau funcii (proprii sau dinbiblioteci). Operatorii sunt de trei tipuri: aritmetici, relaionali si logici.

    Structurile de control.- secvenial (execuia secvenial a instruciunilor, n ordinea n care au fost scrise si nu

    necesit folosirea unei instruciuni);- alternativ (simpla sau multipla) (execuia din mai multe grupuri de instruciuni introduse

    numai a unui singur grup, n funcie de evaluarea unor condiii);- repetitiv (execuia repetat a unui anumit grup de instruciuni, numit ciclu sau bucl, pn

    cnd o condiie ia o anumit valoare).

  • Rutine in VBA.Rutinele sunt de dou feluri: proceduri (sau subrutine) i funcii. Diferena dintre ele const n

    faptul c:- Funciile au un parametru implicit de ieire care este chiar numele funciei.- Procedurile sunt apelate prin instruciuni, iar funciile sunt apelate prin introducerea numelui

    acesteia ntr-o expresie (ca i cum ar fi o variabil sau constant).

    ArcGIS DesktopQ: Is VBA supported with ArcGIS Desktop 10?

    Yes, arcgis desktop 10 does support Microsoft VBA. However Arcgis 10 is the last version with VBA support, so we encourage you to start the migration process. PYTHON is an integral part of arcgis desktop for automating tasks and the new add-in capabilities allow developers to easily create and deploy arcmap customizations. An important change at version 10 is that VBA is not part of the arcgis Desktop install. If you need VBA, you need to install the arcobjects VBA SDK, which will setup the VBA Runtime, Editor, and Help. Please note that an additional authorization file is required for VBA. This is a no charge license that can be requested from esri customer service.

  • ' Un "Hello, World!" program in Visual Basic.Module Hello Sub Main() MsgBox("Hello, World!") ' Afiseaza mesajul pe ecranul calculatorului. End SubEnd Module

    Compilare:> vbc Hello.vb> vbc Hello.vb /imports:Microsoft.VisualBasic> Hello

  • C + + este al treilea limbaj de programare dup Java i C.C este utilizat pentru a scrie compilatoare si sisteme de operare. Aproape toate aplicatiile proiectate pentru a usura comunicatiile pe Internet sunt scrise in C. C++ Este un limbaj de programare compilat, multi-paradigm, cu verificarea static a tipului variabilelor ce suport programare procedural, abstractizare a datelor, programare orientat pe obiecte.

    Program care afiseaza textul "Hello World":

    #include using namespace std;int main() { cout

  • Imagine: collegeteacher.org

  • Python este un limbaj de programare foarte bun pentru incepatori, deoarece prezinta o curb de nvare extrem de superficiala, i seamn cu limba englez

    Python este un limbaj de programare cu scop general, folosit pentru o mare varietate de sarcini. Variabilele n Python pot avea, de asemenea, operaiuni efectuate catre o parte, indiferent dac acestea sunt aceleai tip de date sau nu. Aceast proprietate de limbaje de programare se numete dactilografiere slaba.

    De ce Python 3?

    Python 2 a oferit un limbaj de programare clar i concis, Python 3 este imbunatatit si curat in acelasi limbaj.

    Python 3 ofera mai multe elemente de performan, fr a schimba limbajul n ntregime. Un alt beneficiu de nvare Python 3 fa de 2 este c Python 3 are un mod curat de a privi la datele.

    $ joe test.py

    #!/usr/bin/python3.1# Hello world python programprint ("Hello World!")

  • Exemplul 1:

    #!/usr/bin/python3.1# Hello world python programprint ("Hello World!")

    Exemplul 2:#!/usr/bin/python3.1name=input("Care este numele tau? ")colour=input("Salut" + name + ", care este culoarea favorita? ")print (name + ", culoarea favorita este " + colour + "!")print()print("Multumesc " + name + ", pentru atentie!")

  • Numerele n Python:- integer: 2,3 - float (floating point): 54.3E-4 (54.3 * 10-4) - complex: 10+3j

    iruri (secvente de caractere)Ghilimele simple: 'Sunt masterand'Ghilimele duble: "Cum te cheam?" Ghilimele triple: """ sau ''' '''Acesta este un ir multi-linie. Aceasta este prima linie. Aceasta este a doua linie. 'Cum te numeti?', l-a intrebat. El a zis "Gheorghe". '''

    Tipuri de date: numere i iruri.Python consider c tot ce se folosete n program este obiect.

  • Secvente de scapare:

    print('What's your name?') -errorprint('What\'s your name?')

    Concatenarea literalilor sir:print('What\'s ' 'your name?')

    Construirea de iruri din alte informaii prin metoda metoda format().

    #!/usr/bin/python3.1# Fiier: test.py an = 1nume = 'Studentul' print('{0} este in anul {1}.'.format(nume, an))print('De ce invata {0} python?'.format(nume))

  • Folosirea variabilelor i a literalilor

    #!/usr/bin/python3.1# Fiier : test.py i = 7print(i)i = i + 3print(i) s = '''Sir de caractere multi-linie.Llinia a doua.'''print(s)

  • Linii logice i linii fizice

    #!/usr/bin/python3.1# Fiier : test.py i = 5print(i)

    j = 5;print(j);

    k = 5; print(k);

    l = 5; print(l)

    Specificarea a mai mult de o linie logic pe linie fizic, trebuie sa se faca folosind la ncheierea liniei logice semnul (;).

    * recomand folosirea unei singure linii logice pe linia fizic (rnd).

  • Linie logic ntins pe mai multe linii fizice, se numete reunire explicit a liniilor.

    s = 'Acesta este un ir \ care continu pe a doua linie.'print(s)#acelasi lucruprint\ (s)

    Indentarea

    Spaiul alb la nceputul liniei este important, el poarta numele de indentare. Este folosit pentru a determina nivelul de indentare al liniei logice, care la rndul lui este folosit pentru a determina gruparea declaraiilor.Se recomanda folosirea unui singur TAB sau patru spaii pentru fiecare nivel de indentare.

    j = 100 print('Valoarea este ', j) # Eroare! Spaiu la nceputul liniei.print('Repet, valoarea este ', j)

  • Op. Nume Explicaie Exemple+ Plus adun dou obiecte 3 + 5 fac 8 / 'a' + 'b' fac 'ab'.

    - Minus fie face un numr s fie negativ fie d diferena ntre dou numere

    -5.2 face negativ numrul 5.2

    * Inmulire d produsul a dou numere sau repetarea unui ir de numrul specificat de ori

    2 * 3 fac 6 / 'la' * 3 d 'lalala'.

    ** Putere d x la puterea y 3 ** 4 d 81 / (adic 3 * 3 * 3 * 3)

    / mprire mparte x la y 4 / 3 d 1.3333333333333333.

    // mprire ntreag

    d partea ntreag a ctului 4 // 3 fac 1.

    % Modulo d restul mpririi 8 % 3 fac 2 / -25.5 % 2.25 fac 1.5.

    Translaie la dreapta

    Translateaza biii numrului la dreapta cu numrul specificat de bii.

    11 >> 1 d 511 este reprezentat n bii prin 1011 care translatat la dreapta cu un bit d 101 ceea ce reprezint numrul 5.

    & AND I binar ntre numere 5 & 3 da 1.

    | OR SAU binar ntre numere 5 | 3 d 7

    Operatori

  • Op. Nume Explicaie Exemple^ XOR SAU exclusiv binar ntre numere 5 ^ 3 fac 6

    ~ Complement binar

    complementul lui x este -(x+1) ~5 d -6.

    < Mai mic (dect)

    Valoarea de adevr a propoziiei x este mai mic dect y. Toi operatorii de comparaie iau valorile logice True sau False. Observai c aceste nume ncep cu majuscul.

    5 < 3 d False3 < 5 d True. Comparaiile pot fi nlnuite arbitrar: 3 < 5 < 7 d True.

    > Mai mare (dect)

    Valoarea de adevr a propoziiei x este mai mare dect y.

    5 > 3 d True. Dac ambii operanzi sunt numere, acetia sunt convertii nti la un tip comun. n caz contrar operaia ar avea mereu valoarea False.

    = 3 da True.

    == Egal (cu) Verific dac dou numere sunt egale x = 2; y = 2; x == y d True. x = 'str'; y = 'stR'; x == y d False. x = 'str'; y = 'str'; x == y d True.

    != Diferit (de) Verific dac dou numere sunt diferite x = 2; y = 3; x != y d True.

    not NU logic dac x este True, d False. Dac x este False, d True.

    x = True; not x d False.

    Operatori

  • Op. Nume Explicaie Exempleand I logic x and y d False dac x este False, altfel d

    valoarea lui y x = False; y = True; x and y d False ntruct x este False. n acest caz, Python nu va evalua pe y fiindc tie c partea stng a expresiei 'and' este False ceea ce d ntregii expresii valoarea False indiferent de celelalte valori. Acest fapt se numete evaluare n circuit scurt.

    or SAU logic dac x este True, d True, altfel d valoarea lui y

    x = True; y = False; x or y d True. i aici se aplic evaluarea n circuit scurt.

    Operatori

  • Operator Descrierelambda Expresie lambda

    or SAU logic

    and I logic

    not x NU logic

    in, not in Teste de apartenen

    is, is not Teste de identitate

    =, !=, ==

    Comparaii

    | SAU binar

    ^ SAU-exclusiv binar

    & I binar

    Translaii

    +, - Adunare i scdere

    *, /, //, % nmulire, mprire, mprire ntreag, modulo

    +x, -x Pozitiv, negativ

    ~x NU binar

    Precedena operatorilor

  • Operator Descriere** Exponeniere

    x.atribut Referin la atribut

    x[index] Referin la element

    x[index1:index2] Feliere

    f(argumente ...) Apel la funcie

    (expresii, ...) Legtura sau afiarea unui cuplu

    [expresii, ...] Afiarea unei liste

    {cheie:date, ...} Afiarea unui dicionar

    Precedena operatorilor

  • Operator Descriere** Exponeniere

    x.atribut Referin la atribut

    x[index] Referin la element

    x[index1:index2] Feliere

    f(argumente ...) Apel la funcie

    (expresii, ...) Legtura sau afiarea unui cuplu

    [expresii, ...] Afiarea unei liste

    {cheie:date, ...} Afiarea unui dicionar

    Precedena operatorilor

  • Expresie

    #!/usr/bin/python3.1# Fiier: test.py lungime = 7lime = 5 aria = lungime * limeprint('Aria este', aria)print('Perimetrul este', 2 * (lungime + lime))

  • Declaraia if, este folosit pentru a testa o condiie i, dac aceasta este adevrat, s ruleze un bloc de declaraii (numit 'blocul if'), iar n caz contrar s ruleze alt bloc de declaraii (blocul 'else'). Clauza 'else' este optional.

    #!/usr/bin/python3.1# Fiier: test.py numr = 23ghici = int(input('Introducei un ntreg : ')) if ghici == numr: print('Felicitri, ai ghicit,') # Noul bloc ncepe aici print('(dar nu ctigai niciun premiu!)') # Noul bloc se ncheie aici elif ghici < numr: print('Nu, e un pic mai mare.') # Alt bloc # Poti face ce vrei ntr-un bloc ...else: print('Nu, e un pic mai mic.') # Ca s ajungei aici e sigur ca ghici > numr print('Gata')# Aceasta ultim declaraie este executat ntotdeauna, dup declarai if

  • Declaraia while ne permite s executm repetat un bloc de declaraii att timp ct o condiie rmne adevrat. O declaraie while este un exemplu de instruciune de ciclare. Poate avea i clauza else.

    #!/usr/bin/python3.1# Fiier: test.py numr = 23ciclu = True while ciclu: ghici = int(input('Introducei un ntreg : ')) if ghici == numr: print('Felicitri, ai ghicit!') ciclu = False # asta face ciclul s se ntrerup elif ghici < numr: print('Nu, este puin mai mare.') else: print('Nu, este puin mai mic..')else: print('Bucla s-a ncheiat.') # Aici putei face ce prelucrri vrei print('Gata')

  • Bucla for (declaraia for)..in este o declaraie de ciclare care itereaz elementele unei secvene de obiecte. O secven este pur i simplu o colecie ordonat de elemente.

    #!/usr/bin/python3.1# Fiier: test.py for i in range(1, 5): print(i)else: print('Bucla s-a terminat')

    Declaraia break, este folosit pentru a ntrerupe executarea unei declaraii de ciclare, chiar i dac condiia testat nu a devenit nc False sau secvena nu a fost parcurs complet. Dac se ntrerupe o bucla for sau while, nici clauza else nu va fi executat.

    #!/usr/bin/python3.1# Fiier: test.py while True: s = (input('Introducei ceva:')) if s == 'quit': break print('Lungimea irului introdus este', len(s))print('Gata')

    *elif - verifica expresii multiple pentru valoare de adevar si executa un bloc de cod imediat ce conditia este evaluata ca adevarata.

  • Declaraia continue, se folosete pentru a trece la urmtoarea iteraie fr s execute instruciunile rmase din blocul declaraiei de ciclare. Declaraia continue funcioneaz i cu bucla for.

    #!/usr/bin/python3.1# Fiier: test.py while True: s = input('Introducei ceva: ') if s == 'quit': break if len(s) < 3: print('Prea puin') continue print('irul introdus are lungime suficient') # Facei alte procesri aici...

    * folosim funcia len pentru a obine lungimea.

  • 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 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32