Professional Documents
Culture Documents
Master GiS
lb
Ionut Ovejanu / 2014
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 de
calcul, ci numai indicaii care se dau compilatorului.
Instruciuni executabile, care reprezint descrierea unei aciuni pe care o va efectua sistemul de
calcul, 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 o
anumit aciune. Este executat numai atunci cnd este lansat (apelat), de ctre un obiect al
Aplicaiei. 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.
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 Desktop
Q: 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.
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 program
print ("Hello World!")
Exemplul 1:
#!/usr/bin/python3.1
# Hello world python program
print ("Hello World!")
Exemplul 2:
#!/usr/bin/python3.1
name=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?') -error
print('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 = 1
nume = 'Studentul'
print('{0} este in anul {1}.'.format(nume, an))
print('De ce invata {0} python?'.format(nume))
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 lucru
print\
(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)
Operatori
Op.
Nume
Explicaie
Exemple
Plus
Minus
Inmulire
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
4 // 3 fac 1.
Modulo
d restul mpririi
<<
Translaie la
stnga
2 << 2 da 8
2 este reprezentat prin 10 n bii. Prin
translaie la stnga cu doi bii se obine 1000
ceea ce reprezint numrul 8.
>>
Translaie la
dreapta
11 >> 1 d 5
11 este reprezentat n bii prin 1011 care
translatat la dreapta cu un bit d 101 ceea
ce reprezint numrul 5.
&
AND
5 & 3 da 1.
OR
5 | 3 d 7
**
Operatori
Op.
Nume
Explicaie
Exemple
XOR
5 ^ 3 fac 6
Complement
binar
~5 d -6.
<
Mai mic
(dect)
5 < 3 d False
3 < 5 d True.
Comparaiile pot fi nlnuite arbitrar: 3 < 5 <
7 d True.
>
Mai mare
(dect)
<=
x = 3; y = 6; x <= y d True.
>=
Mai mare
sau egal
(cu)
x = 4; y = 3; x >= 3 da True.
==
Egal (cu)
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)
x = 2; y = 3; x != y d True.
not
NU logic
Operatori
Op.
and
or
Nume
Explicaie
Exemple
I logic
SAU logic
Precedena operatorilor
Descriere
Operator
lambda
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
*, /, //, %
+x, -x
Pozitiv, negativ
~x
NU binar
Precedena operatorilor
Descriere
Operator
**
Exponeniere
x.atribut
Referin la atribut
x[index]
Referin la element
x[index1:index2]
Feliere
f(argumente ...)
Apel la funcie
(expresii, ...)
[expresii, ...]
{cheie:date, ...}
Precedena operatorilor
Descriere
Operator
**
Exponeniere
x.atribut
Referin la atribut
x[index]
Referin la element
x[index1:index2]
Feliere
f(argumente ...)
Apel la funcie
(expresii, ...)
[expresii, ...]
{cheie:date, ...}
Expresie
#!/usr/bin/python3.1
# Fiier: test.py
lungime = 7
lime = 5
aria = lungime * lime
print('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 = 23
ghici = 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 = 23
ciclu = 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.
Va mulumesc
OpenGiS.ro / 2014