Sunteți pe pagina 1din 44

Bazele programării calculatoarelor

lect. univ. Victoria ALEXEI


Departament Informatică și Ingineria Sistemelor
Facultatea Calculatoare, Informatică și Microelectronică

victoria.alexei@iis.utm.md
Organizarea cursului:
Curs – 12 ore
Lucrari de laborator - 6 ore
Evaluare curentă – teste
Lucru Individual – referat
Examen
Programarea calculatoarelor
Calculatoarele se programează.
Dispozitivele electronice sunt o forță de calcul brută care inițial nu știe
nimic (hardware).
Microprocesorul (Central Processing Unit) este creierul calculatorului
și funcționează sub controlul unor instrucțiuni cod mașină, niște
succesiuni incredibile de 0 și 1, greu de înțeles fără cunoștințe
avansate.
Pentru a utiliza calculatorul folosim software, adică programe specializate care
se împart în patru mari categorii: sisteme de
operare, aplicații, compilatoare și interpretoare.

Spre exemplu, pentru a dezvolta o aplicație trebuie să cunoaștem un limbaj de


programare, cum ar fi: C++, C#, Java, Python, etc.
Limbajul de programare conține instrucțiuni care respectă anumite reguli de
sintaxă și putem programa calculatorul să efectueze o succesiune de
operații în vederea obținerii unui rezultat.

Instrucțiunile se redactează într-un limbaj aproape de cel natural, de cele mai


multe ori în limba engleză. Se obține astfel codul sursă.

În funcție de limbajul folosit, codul sursă este transformat în cod mașină


folosind un compilator sau un interpretor.
Ce este un algoritm?
Orice acțiune necesită o succesiune de instrucțiuni!

Un program cuantifică un algoritm.

Redactarea algoritmilor direct într-un limbaj de programare (obţinând imediat


programul) este avantajoasă prin faptul că putem verifica dacă algoritmul
este corect prin rularea codului.

Un algoritm să fie gândit corect


Un algoritm corect elaborat trebuie să prevadă toate situaţiile posibile!
Proprietățile algoritmilor
Pentru a putea spune despre o serie de acțiuni că formează un algoritm, avem nevoie
de trei condiții fundamentale: finitudinea, generalitatea și claritatea.

FINITUDINEA - Algoritmul trebuie să se termine după un număr finit de pași, oricât de


mulți ar fi.
GENERALITATEA - Algoritmul trebuie să rezolve o întreagă categorie de probleme, nu
doar una particulară.
CLARITATEA - Algoritmul trebuie să descrie cu exactitate și fără ambiguități pașii care
trebuie parcurși în rezolvarea problemei.

Algoritmii trebuie să fie EFICIENȚI


Numărul de pași efectuați de un algoritm trebuie să fie cât mai mic pentru a spune că
este OPTIM și există teoria complexității algoritmilor care se ocupă de acest aspect.
Modelul "black box"
Un program cuantifică un algoritm de calcul și are rolul de a prelua anumite
date de intrare (precum niște stimuli) pe care le prelucrează și le oferă ca date
de ieșire (un răspuns):

Acesta se numește modelul black-box, care abstractizează primar orice


element "viu" din jurul nostru. Motorul mașinii are o turație mai mare dacă
este apăsată mai tare pedala de accelerație; dacă ne este frig, mușchiul firului
de păr se contractă și ni se face "pielea de găină"; dacă apăsăm pe telefon o
anumită pictogramă, se deschide apoi programul asociat, ș.a.m.d.
Datele de intrare sunt "citite" cu ajutorul unui dispozitiv
periferic de intrare, cum ar fi: tastatura, mouseul, joystickul,
ecranul tactil, etc.

După prelucrare, rezultatul este "afișat" pe ecran ori trimis către


un alt periferic de ieșire: ecran, imprimantă, etc.
Python este un limbaj de scripting, ușor de învățat, care oferă
avantajul de a scrie foarte repede programe și de a învăța repede
programarea.

Python un limbaj perfect pentru începători, extrem de folosit în


zilele noastre, cu o sintaxă relativ ușoară.

Programele Python sunt cu adevărat portabile. Un program scris


corect poate fi executat direct în Windows, precum și în GNU/Linux,
de exemplu.
De ce alegem Python?
Deoarece Python este opțiunea numărul 1 pentru: Python are o comunitate foarte largă, și o
- Știința Datelor compatibilitate cros-platformă (mac OS,
- Învățarea Automată/ML /AI Windows, Android)
- Vizualizări
- diverse Aplicații pentru Date
Python este gratuit și are o sumedenie de
funcționalități implicite

Python este utilizat cu succes atât în


mediu Academic cât și în sectorul
Privat, fiind utilizat într-o gamă tot mai
largă de industrii.
Instalarea Python
https://www.python.org/downloads/
• Versiunea python 3.9 sau 3.10
Extensii fișiere obișnuite .py, .pyw, .pyc, .pyo, .pyd

Paradigmă multi-paradigmă: object-


oriented, imperativă,
funcțională, procedurală

Apărut în 1991

Dezvoltat de Guido van Rossum

Dezvoltator actual Python Software Foundation


Exemplu de program
name = input('Enter file:')
handle = open(name, 'r')
text = handle.read() Enter file:cuvinte.txt
de
words = text.split()
13

counts = dict()
for word in words:
counts[word] = counts.get(word,0) + 1
bigcount = None
bigword = None

for word,count in counts.items():


if bigcount is None or count > bigcount:
bigword = word
bigcount = count
print (bigword, bigcount)
Ariile în care limbajul de programare Python este foarte des întâlnit sunt:

Automatizare – Aceasta este des întâlnită în partea de rețelistică prin scripturi pentru
administrarea a mai multe device-uri.
Cyber-Security – Python ajută la principiile de Pen-Testing prin realizarea automată de
diferite atacuri asupra unui target.
Web Development – Aici Python poate fi utilizat cu ajutorul framework-urilor precum
Pyramid sau Django pentru realizarea Backend-ului unui website.
Quality Assurance (QA – Controlul Calitatii) – Poate fi realizata testarea modulelor software
ce urmeaza sa fie lansate pe piata, in vederea functionarii corecte si a vulnerabilitatii
feature-urilor.
GUI (Graphical User Interface) – In Python pot fi create meniuri interactive pentru diferite
programe. Un program foarte cunoscut pentru simularea retelelor creat in Python este
GNS3.
Embedded și Internet of Things (IoT) – Un bun exemplu sunt placutele de tip Raspberry Pi si
programarea senzorilor si sistemelor de securitate din industria automotiva.
• 3D CAD/CAM
• Audio/Video Applications
• Console Applications
▪ Internet Applications (BitTorrent, Jogger Publishing Assistant, TheCircle,
• Enterprise Applications TwistedMatrix)
• File Formats ▪ 3D CAD/CAM (FreeCAD, Fandango, Blender, Vintech RCAM)
▪ Enterprise Applications (Odoo, Tryton, Picalo, LinOTP 2, RESTx)
• Image Applications ▪ Image Applications (Gnofract 4D, Gogh, imgSeek, MayaVi, VPython)
• Internet Applications ▪ Mobile Applications (Aarlogic C05/3, AppBackup, Pyroute)
▪ Office Applications (calibre, faces, Notalon, pyspread)
• Mobile Applications
▪ Personal Information Managers (BitPim, Narval, Prioritise, Task Coach,
• Office Applications WikidPad)
• Personal Information Managers
• Science and Education Applications
• Software Development
• System Administration Applications
• X-Window Manager
• Unclassified Source: https://wiki.python.org/moin/PythonProjects
Este omniprezent - oamenii folosesc zilnic numeroase aplicații scrise în Python,
indiferent dacă își dau seama sau nu.
Există miliarde de linii de cod scrise în Python, ceea ce înseamnă oportunități
aproape nelimitate de reutilizare a codului și de învățare din exemple bine
elaborate.
Este ușor de învățat - timpul necesar pentru a învăța Python este mai scurt decât
pentru multe alte limbaje.
Este ușor de utilizat pentru scrierea de aplicații noi - este adesea posibil să scrieți
cod mai repede atunci când utilizați Python.
Este ușor de obținut, instalat și implementat - Python este gratuit, deschis și
multiplatform.
Există o comunitate Python mare și foarte activă.
Va fi distractiv!
Să începem
Instalare python
Exemplu de execuție
Primele programe
Programele Python pot fi scrise într-un editor de text specializat care
permite executarea codului și afișarea rezultatului în consolă. Astfel, putem
realiza programe elaborate pe mai multe linii.

În acest caz nu putem scrie operații aritmetice direct, ci este necesar să


afișăm rezultatul folosind funcția print().

Mediul oficial de programare în Python se


numește IDLE (Integrated Development and Learning Environment). De
asemenea, există IDE-uri specializate pentru a putea lucra în limbajul
Python
Redactarea corectă a codului
Definiția 1. Sintaxa limbajului este dată de totalitatea regulilor de
scriere corectă (în sensul acceptării sale de programul traducător
(interpretor, în cazul Python), care are rolul de a îl executa.

Definiția 2. Prin semantica unui limbaj se înțelege semnificația


construcțiilor sintactice corecte (ce anume realizează
instrucțiunile, etc).
Limbajul Python este foarte sensibil la sintaxă si este orientat puternic spre o
redactare care să permită înțelegerea ușoară a codului altui programator căruia îi
parvine programul, așadar este de preferat ca pe fiecare linie să fie scrisă o singură
instrucțiune.

De exemplu, pe aceeași linie nu putem scrie două instrucțiuni fără a le separa prin
";", iar interpretorul Python ne anunță imediat!

Python face diferența dintre literele mari (majuscule) și cele mici.


Această instrucțiune obține o eroare de sintaxă: priNt("Salut!") deoarece nu cunoaște
comanda priNt.
Indentarea este foarte importantă și vom mai discuta despre ea. Pe moment, nu
lăsați spații goale la începutul liniei.
Vocabularul oricărui limbaj de programare este format din:
• set de caractere;
• identificatori;
• separatori;
• comentarii.
Setul de caractere
•Setul de caractere reprezintă ansamblul de caractere cu ajutorul cărora se poate
realiza un program în Python, iar acesta este alcătuit din:litere mari și mici ale
alfabetului englez (A - Z, a - z);
•cifrele sistemului de numerație în baza 10 (0 - 9);
•caractere speciale (+, -
, *, /, =, ^, <, >, (, ), [, ], {, }, ., ,, :, ;, #, $, @, _ și blank (spațiu)).
Python 3 ne oferă direct reprezentarea caracterelor folosind
standardul Unicode, mai exact în formatul UTF-8.
Putem introduce și caractere care nu sunt pe tastatură, dar le putem
prelua de pe Internet.
Putem introduce caractere speciale: emoji sau smileys.
Identificatori

Prin identificatori vom înțelege o succesiune de litere, cifre sau


caracterul special "_", cu condiția ca prima să nu fie cifră.

Cu ajutorul identificatorilor se asociază nume variabilelor, funcțiilor,


etc.
Reguli de scriere a variabilelor
• Trebuie să înceapă cu o literă sau caracterul
underscore _
• Poate să conțină doar litere și numere și
caracterul underscore
• Case sensitive

• De ex:
•Bune: spam eggs spam23 _speed
•Rele: 23spam #sign var.12
•Diferite: spam Spam SPAM
Exemple
Cuvinte rezervate
• Nu puteți utiliza cuvinte rezervate ca nume de
variabile
Instrucțiuni
Instrucțiuni de atribuire

Vom atribui o valoare unei variabile folosind


instrucțiunea de atribuire (=)
O declarație de atribuire constă dintr-o expresie de pe
partea dreaptă și o variabilă pentru a stoca rezultatul

x = 3.9 * x * ( 1 - x )
Atribuire multiplă
Variabilele a și b iau valorile 2 și respectiv 4.
Evaluarea expresiilor din partea dreaptă a
unei atribuiri se face înainte de orice
atribuire.
Evaluarea se face de la stânga la dreapta.
Expresiile numerice

Operator Operația
+ Adunare

- Scădere

* Înmulțire

/ Împărțire
Ridicarea la
**
putere

% Restul împărțirii
Expresiile numerice
Operatorul // Operator Operația
+ Adunare

- Scădere

* Înmulțire

/ Împărțire
Ridicarea la
**
putere

% Restul împărțirii
Principalele tipuri de date

În Python există șase tipuri standard de date principale:


1. Numerice
2. Șiruri de caractere
3. Liste
4. Tupluri
5. Seturi
6. Dicționare
Tipuri de date numerice
Tipurile de date numerice sunt int (numere întregi
cu semn), float (numere reale, cu zecimale) și
complex (numere complexe).
Exemple
Conversii
Funcția type()

Oricând putem afla tipul de date reținut de o anumită variabilă la un


anumit moment dat folosind funcția type(variabilă).

Funcția type primește ca argument valoarea variabilei x și întoarce ca și


rezultat tipul de date reținut.
Python este dinamic

Unul dintre avantajele utilizării limbajului Python este faptul că


orice variabilă poate reține dinamic, pe parcursul unui
program, valori de tipuri diferite, fără a impune tipul la
declarare
Expresiile condiționate și buclele în Python

În acest curs vom învăța:

- Să comparăm două sau mai multe variabile


- Să scriem instrucțiuni if/elif/else pentru a controla fluxul programului
- Să scriem bucle for și while
- Să aplicăm logica condiționată și buclele pentru a crea simulări simple
Expresiile condiționate și buclele în Python

Operatorii relaționali (operatorii Booleeni)

Operator Boolean Exemplu Semnificația


> a > b a mai mare ca b
< a < b a mai mic ca b
>= a >= b a mai mare sau egal cu b
<= a <= b a mai mic sau egal cu b
!= a != b a nu este egal cu b
== a == b a egal cu b
Operatorii logici: AND și OR

AND OR
True and True True True or True True
True and False False True or False True
False and True False False or True True
False and False False False or False False
Operatorul not și prioritatea evaluării operatorilor
not Prioritatea
not True False <, <=, ==, >=, >
not False True not
and
or
Instrucțiunile if/elif/else în Python
Sintaxa declarației if Sintaza declarației if/else Sintaxa declarației if/elif/esle
if condiție 1: if condție 1: if codiție 1:
instrucțiune 1 instrucțiune 1 instrucțiune 1
else: elif condiție2:
instrucțiune 2 instrucțiune 2

elif condiție n:
instrucțiune n
else:
instrucțiune n+1
Bucla for în Python

for val in secvență:


instrucțiune 1
Bucla while în Python

while condiția 1:
instrucțiune 1

while condiția 1:
instrucțiune 1
else:
isntrucțiune 2
Exemple

S-ar putea să vă placă și