Sunteți pe pagina 1din 97

Laborator 1

Programarea interfetelor pentru instrumentatie virtuala

Introducere în Python

București 2023
Laborator 1

Programarea interfetelor pentru instrumentatie virtuala

1. Scopul lucrării
Scopul lucrării 1 este discutarea și rezolvarea următoarelor aspecte:
2. Informații generale

3. Alegerea versiunii, descărcarea și instalarea Python:


https://www.python.org/downloads/
4. Utilizarea IDLE pentru programarea în Python

5. Adaugarea caii catre executabilul Python la PATH:


https://geek-university.com/add-python-to-the-windows-path/
6. Realizarea unor programe de test
*Nota – în cadrul acestui laborator puteți folosi orice IDE (IDLE, Thonny, PyCharm, etc) dar
suportul va fi oferit doar pentru IDLE. Problemele aparute în utilizarea unui alt interpretor vor fi
rezolvate pe cont propriu (incompatibilități pachete, probleme în instalarea pachetelor, etc).
**Nota 2 – Problemele rezolvate în cadrul laboratorului vor fi salvate cu numele problemei. Spre
exemplu, rezultatul problemei de mai jos va fi salvat sub forma unei capturi cu numele
Problema_1_1.png.
Laborator 1

Programarea interfetelor pentru instrumentatie virtuala

1. Informații generale
Python este un limbaj de programare care a aparut prima oară în 1991. Este de nivel
înalt, interpretat , dinamically typed și include mecanisme de garbage collection. Mai multe
despre ideile care stau la baza acestui limbaj de programare ne spune chiar IDLE, interpretorul
default Python:

Mai multe informații despre limbajul de programare sunt oferite în materialul de curs.

1. Alegerea versiunii, descarcare și instalarea Python

Fiecare versiune de Python aduce modificări mai mult sau mai puțin importante asupra
felului în care limbajul de programare poate fi folosit, asupra modulelor care pot fi folosite cu
varianta curentă, etc, dar, în general, aceste modificari nu vor afecta un utilizator “obișnuit”.
Documentația referitoare la aceste schimbări poate fi consultată pe site-ul Python la adresa
https://www.python.org/doc/versions/.

În cadrul acestui laborator vor fi oferite porțiuni de cod sau programe testate pentru
versiunea 3.10.6 a Python.

Instalarea Python se face prin descărcarea pachetului Python relevant pentru sistemul de
operare și instalarea în mod obișnuit.
Laborator 1

Programarea interfetelor pentru instrumentatie virtuala

Este important ca la instalare să selectați Add to PATH.

Acest pas este esențial pentru instalarea ulterioară a modulelor folosite în cadrul
acestor lucrări de laborator. Puteți verifica dacă Python este adăugat corect la PATH prin
rularea din linie de comanda:
Laborator 1

Programarea interfetelor pentru instrumentatie virtuala

3. Utilizarea IDLE pentru programarea în Python


În cadrul acestei lucrări, pentru programarea în Python se va folosi interpretorul IDLE
(Python Integrated Development and Learning Enviroment). Acesta permite atât rularea unei
comenzi una câte una, precum și salvarea unei liste de comenzi într-un fișier .py și interpretarea
acesteia individual.

Figura 1 – Python IDLE 3.7.0

Figura 2 – Rulare shell


Laborator 1

Programarea interfetelor pentru instrumentatie virtuala

Figura 3 – Rulare fisier

Problema_1_1.png – Rulați comenzile de mai sus din consola IDLE. Realizați o captură de
ecran cu rezultatul obținut

Problema_1_2.py – Rulați comenzile de mai sus dintr-un fișier separat .py .

Câteva puncte importante din IDLE:

File > Path browser – permite vizualizarea pachetelor instalate

Figura 4 – Vizualizarea pachetelor instalate


Laborator 1

Programarea interfetelor pentru instrumentatie virtuala


Shell > Restart shell
Permite repornirea consolei și rularea unui nou program complet independent de
instrucțiunile/programele rulate anterior. În exemplul de mai jos se poate observa că după
repornirea IDLE variabilele a și b nu mai sunt stocate și deci, nu mai pot fi folosite.

Figura 5 – Restart shell


Shell > Interrupt execution
Echivalent cu CTRL-C, permite oprirea forțată a unui program. Este util atunci când este
generata accidental o buclă infinită sau nu dorim să așteptăm încheierea unui proces.
Laborator 1

Programarea interfetelor pentru instrumentatie virtuala


Figura 7 – Interrupt execution
Options > Configure options > Font si Intentation Width

Figura 8 - Configure options


Help > Version

Figura 9 - Version
Laborator 1

Programarea interfetelor pentru instrumentatie virtuala


Help > Turtle Demo

Figura 10 - Turtle Demo

2. Realizarea unor programe de test


Problema_1_3.py

a. Afișați în shell textul: Mecatronica


b. Afișați :

Mec
A
Tronica
c. Afișați punctul b într-o singură instrucțiune.

d. Adăugați comentarii pe fiecare rând al codului de la punctul c.

Problema_1_4.py
Laborator 1

Programarea interfetelor pentru instrumentatie virtuala


a. Afișați suma a două valori constante.

Problema_1.5.py

a. Adăugați comentarii pentru fiecare linie de cod de la punctul ”a” de la problema anterioară,
explicând ce reprezintă fiecare comandă.

Figura 11 – Comentarea liniilor de cod

Problema_1.6.py

a. Convertiți variabila “a” de la problema_1.4.py într-o variabilă de tip float.


b. Decrementați cu 0.5 noul tip de variabilă.

Figura 12 – Conversia unui tip de variabila

Problema_1.7.py
Laborator 1

Programarea interfetelor pentru instrumentatie virtuala


a. Afișați string-ul “python”.
b. Extrageți două substring-uri din acesta.

Figura 13 – Afișarea unui string și extragerea substring-urilor

Problema_1.8.py

a. Declarați și afișati variabila “a” .


a=”””Curs
Python
anul
III”””

Figura 14 – Declararea și afișarea elementelor dintr-o variabilă

Problema_1.9.py

a. Afișați și extrageți din stringul a=’Ana are mere’ indexul: a[0], a[4:7] și a[4:4].
Laborator 1

Programarea interfetelor pentru instrumentatie virtuala

Figura 15 – Afișarea și extragerea indexurilor dintr-un string

Problema_1.10.py

a. Declarați variabila “lista”.


b. Determinați tipul variabilei “lista”.

Figura 16 – Declararea și determinarea tipului de variabilă “lista”

Problema_1.11.py

a. Declarați lista “a” cu elementele din figura 17.

Figura 17 – Declararea unei liste


b. Afișați tipul elemetelor din listă.

Problema_1.12.py
Laborator 1

Programarea interfetelor pentru instrumentatie virtuala


a. Indexați următoarea listă:

b. Înlocuiți elementul corespunzător indexului 1 cu litera “D”.

Problema_1.13.py

a. Declarati și afisati urmatoarea listă:

b. Adăugați un element la capatul listei utilizând metoda “list.append()”.


c. Sortați în ordine crescătoare elementele din listă prin metoda “list.sort()”.
d. Sortați in ordine descrescătoare elementele din listă prin metoda “list.reverse()”.
e. Numărați de câte ori apare în listă elementul “2”, utilizând metoda “list.count”.

Problema_1.14.py

a. Declarați o colecție de variabile de tip tuplu:

b. Afișați tipul variabilei “tuplu”.


c. Afișați elementele din colecția de variabile “tuplu”.
d. Afișați lungimea tuplului utilizând metoda “len()”.

Problema_1.15.py

a. Declarați variabila de tip tuplu cu următoarele elemente:

b. Afișați tuplul.
c. Inlocuiți elementul corespunzator indexului a[2] cu elementul “7” și observați ce se
întâmplă.

Problema_1.16.py

a. Declarați tuplul:

Concatenați cu următoarele elemente:


Laborator 1

Programarea interfetelor pentru instrumentatie virtuala


b. Afișați tuplul “a” și tuplul concatenat.
c. Afișați elementele din tuplu corespunzătoare indexurilor a[0], a[1] și a[-2].
d. Afișați elementele dintr-un tuplu nested,“a”.

e. Schimbati succesiv tipul variabilei “a=2” in: int(), float() si str()

Problema_1.17.py

a. Declarați setul :

b. Afișați setul “s”.


c. Se dă urmatorul set:

Să se apeleze setul și să se înlocuiască elementul .

Observați rezultatul.

d. Se dă lista:

Transformați lista în set și eliminați valorile duplicat.

Problema_1.18.py

a. Aplicați operațiile de: intersecție, uniune, diferență și diferență simetrică următoarelor


seturi:

b. Adăugați la setul ”s1” elementul “f”. Eliminați din setul ”s2” elementul “b”.
c. Parcurgeți setul “s3”.

Problema_1.19.py

a. Declarați variabila de tip dicționar “a”.


Laborator 1

Programarea interfetelor pentru instrumentatie virtuala


b. Parcurgeți “c” și afișați tipul fiecărui element din dicționar.
c={1:[1,2],2:(1,2),3:{1,2},4:(1:2)}
c. Utilizați metodele “c.keys()”, “c.values()”, “c.get()”, “c.pop()”, “del c[]”.

Afișați:

➢ elementele cheie (“keys”) din dicționar;


➢ valorile corespunzătoare elementelor cheie;
➢ valoarea elementului numărul 2 din dicționar;
➢ ștergeți din dicționar primul element.

Problema_1.20.py

a. Verificați siguranța datelor în următoarele bucle de ciclare:

Figura 18 – Ciclarea unui string

Figura 19 – Ciclarea unui tuplu


Laborator 1

Programarea interfetelor pentru instrumentatie virtuala


Figura 20 – Ciclarea unui dictionar

Figura 21 – Ciclarea unui set

Figura 22 – Ciclarea unei liste

Problema_1.21.py

a. Creați variabila “a” care să poată fi introdusă de la tastatură utilizând metoda input().
b. Afișați tipul de date introduse.

Figura 23 – Metoda input()


Laborator 1

Programarea interfetelor pentru instrumentatie virtuala

Exerciții nerezolvate

Problema_1_1.py

a. Afișați în shell textul: Laboratorulnr1.


b. Afișați :

Laboratorul
nr
1
c. Afișați punctul b într-o singură instrucțiune.

Problema_1_2.py

a. Afișați suma a două valori constante.


A=6
B=45
b. Indicați tipul celor două valori.
c. Schimbați tipul valorii rezultate din însumarea celor două constante în string.
d. Adaugați elementul “19” la string.
e. Afișați elementul adăugat utilizând indexul acestuia.
f. Parcurgeți string-ul și afișați elementele din acesta.

Problema_1.3.py

a. Introduceți de la tastatură vârsta și anul nașterii.


b. Adaugați comentarii pentru fiecare linie de cod de la punctul “a” explicând ce reprezintă
fiecare comandă.

Problema_1.4.py

a. Convertiți variabila “a” de la problema_1.2.py într-o variabilă de tip float.


b. Decrementați cu 3 noul tip de variabilă.

Problema_1.5.py

a. Afișați string-ul “Variabilă”.


b. Extrageți două substring-uri din acesta.
Laborator 1

Programarea interfetelor pentru instrumentatie virtuala


Problema_1.6.py

a. Declarați variabila “m” după cum urmează:


m=”””Departamentul de
Mecatronica
si
Mecanica de Precizie”””
b. Afișați “m” .
c. Schimbați “m” în variabilă de tip listă și afișați “m”.

Problema_1.7.py

a. Declarați și afișați urmatoarea listă:


h=[8,6,7,9,4,8]
b. Adăugați un element la capătul listei utilizând metoda “list.append()”.
c. Sortați în ordine crescătoare elementele din listă prin metoda “list.sort()”.
d. Sortați în ordine descrescătoare elementele din listă prin metoda “list.reverse()”.
e. Numărați de câte ori apare în listă elementul “7”, utilizând metoda “list.count()”.

Problema_1.8.py

a. Declarați o colecția de variabile de tip tuplu.


tuplu=(5,5,7,7,8,9,0)
b. Afișați tipul variabilei “tuplu”.
c. Afișați elementele din colecția de variabile “tuplu”.
d. Afișați lungimea tuplului utilizând metoda “len()”.
e. Creați un tuplu nested în tuplul de la punctul “a” și afișați elementele din acesta.
f. Concatenați tuplul de la punctul “a” cu următoarele elemente (3,2,4,).

Problema_1.9.py

a. Declarați setul de s={30,22,53,14}.


b. Afișați setul “s”.
c. Se dă următorul set: set1={Mere, “verde”, 0}. Să se apeleze setul și să se înlocuiască
elementul set1[2]=8. Observați rezultatul.
Laborator 1

Programarea interfetelor pentru instrumentatie virtuala


d. Se dă lista: q=[0,0,7,8,4,4,3,9]. Transformați lista în set și eliminați valorile duplicat.

Problema_1.10.py

a. Aplicați urmatoarele operații: intersecția, uniunea, diferența și diferența simetrică


următoarelor seturi:
s1={“verde”, “rosu”,”galben”,”albastru”,”alb”}
s2={“alb”,”rosu”}
b. Adaugați la setul s1 elementul “violet” și eliminați din setul s2 elementul “rosu”

Problema_1.11.py

a. Declarați variabila de tip dicționar “a”


a={1:”rosu”, 2:”verde”,3:”albastru”}
b. Utilizați metodele “c.keys()”, “c.values()”, “c.get()”, “c.pop()”, “del c[]”.

Afișați:

- elementele cheie (“keys”) din dicționar

- valorile corespunzătoare elementelor cheie

- valoarea elementului numărul 2 din dicționar

- ștergeți din dicționar primul element

Problema_1.12.py

a. Creați variabila “Nume” care să poată fi introdusă de la tastatură utilizând metoda input().
b. Afișați tipul de date introduse.

Problema_1.13.py

a. Realizați o listă cu minim 3 nume de persoane. Introduceți un nume de la tastatura și


verificați dacă acesta aparține listei. Dacă numele aparține listei, afișați mesajul „Numele
se regăsește în listă.”
Laborator 2
Programarea interfetelor pentru instrumentatie virtuala

Bucle și Funcții în Python

București 2023
Laborator 2
Programarea interfetelor pentru instrumentatie virtuala

1. Generalități
2. Scopul lucrării
Scopul lucrării 2 este discutarea și rezolvarea următoarelor aspecte:
3. Bucla repetitivă “while”
4. Bucla “for”
5. If
6. Break, pass și continue
7. Funcții
8. Realizarea unor programe de test
*Nota – în cadrul acestui laborator puteți folosi orice IDE (IDLE, Thonny, PyCharm, etc) dar
suportul va fi oferit doar pentru IDLE. Problemele aparute în utilizarea unui alt interpretor vor fi
rezolvate pe cont propriu (incompatibilități pachete, probleme în instalarea pachetelor, etc).
**Nota 2 – Problemele rezolvate în cadrul laboratorului vor fi salvate cu numele problemei. Spre
exemplu, rezultatul problemei de mai jos va fi salvat sub forma unei capturi cu numele
Problema_1_1.png.

1. Generalități
Buclele sunt instrucțiunile utilizate în cadrul programelor pentru implementarea iterațiilor, ceea
ce înseamnă executarea aceleiași instrucțiuni sau secvență de cod de cele mai multe ori, până
când o condiție este indeplinită.
Buclele pot fi utilizate atunci când se lucrează cu obiecte iterabile precum: liste, tupluri, șiruri de
caractere,etc.
Funcțiile sunt foarte utile pentru reutilizarea codului. Acestea ne permit să definim un bloc de
cod care poate fi utilizat în mod repetat într-un program.

Python oferă mai multe funcții încorporate, cum ar fi print (), len () sau type (), dar putem defini
propriile funcții pe care să le utilizăm în cadrul programelor.

Funcția reprezintă un bloc de cod care cere un input, îl prelucrează, și-l returnează sub formă de
output.
Laborator 2
Programarea interfetelor pentru instrumentatie virtuala
3. Bucla repetitivă “while”
Repetă o instrucțiune sau un grup de instrucțiuni cât timp condiția este adevarată.

Figura 1. Utilizarea buclei repetitive “while”


Se inițializează variabila “i” cu 3, iar cât timp “i” este mai mare decât “0” execută instrucțiunea
“print” și îl decrementează pe “i” cu “1”.
4. Bucla “for”
Repetă o instrucțiune până când condiția acesteia este indeplinită.

Figura 2. Bucla de ciclare a unei liste

Figura 3. Parcurgerea unui string


Laborator 2
Programarea interfetelor pentru instrumentatie virtuala

Figura 4. Utilizarea range() pentru generarea a 5 valori

Figura 5. Setarea unui interval în care se vor genera valori utilizând range(start,stop)

Figura 6. Setarea incrementului range(start,stop,increment)


5. If
Funcție logică care permite compararea a unor valori și obținerea unui rezultat
boolean, (true sau false).

Figura 7. Sintaxa

Figura 8. Utilizarea instrucțiunii “elif” pentru o verificare suplimentară


Laborator 2
Programarea interfetelor pentru instrumentatie virtuala

Figura 9. Scrierea pe o singură linie a instrucțiunii

Figura 10. Scrierea pe o linie a unei înlănțuiri de instrucțiuni

Figura 11. Utilizarea operatorilor logici AND și OR

Figura 12. “If” în “if”


6. Break, pass și continue
a. Break – permite întreruperea funcționării unei bucle.

Figura 13. Utilizarea instrucțiunii “break”


Laborator 2
Programarea interfetelor pentru instrumentatie virtuala
b. Continue – permite blocarea execuției unei bucle doar în anumite condiții.

Figura 14. Utilizarea instrucțiunii “continue”

c. Pass – permite executarea unor bucle sau porțiuni de cod fără a avea impact asupra
rezultatului

Figura 15. Utilizarea instrucțiunii “pass”

7. Funcții
Funcția reprezintă o porțiune de cod care poate fi apelată în vederea rulării unui
anumit set de instrucțiuni în anumite condiții.

Figura 16. Definirea și apelarea unei funcții


Definirea unei funcții se face utilizând cuvântul cheie def .
Sintaxa este: def NumeFunctie():
8. Realizarea unor programe de test
Problema 2_1.py
Laborator 2
Programarea interfetelor pentru instrumentatie virtuala
a. Să se inițializeze variabila „n” cu 1.
b. Cât timp n este mai mic decât 10, să se afișeze mesajul ”N<10” și variabila curentă „n”.
c. Dacă n>10 să se afișeze mesajul ”N>10”.

Figura 17. Problema 2_1.py

Problema 2_2.py

a. Să se inițializeze variabila k cu 0.
b. Cât timp k este mai mic decât 10, să se incrementeze k cu 1.
c. Dacă k este egal cu 8 se va intrerupe execuția instrucțiunii, altfel se va continua execuția
acesteia.

Figura 18. Problema 2_2.py

Problema 2_3.py

a. Să se inițializeze variabila x cu 4.
b. Cât timp x este mai mic decât 10, să se execute instrucțiunile.
c. Dacă x este egal cu 4 se va incrementa cu 1, altfel dacă x este diferit de 4 se va incrementa
cu 2, altfel afișează x și incrementează cu 2.
Laborator 2
Programarea interfetelor pentru instrumentatie virtuala

Figura 19. Problema 2_3.py

Problema 2_4.py

a. Adaugați elemente în lista ”numere” utilizând bucla ”while”.


b. Să se inițializeze lista și variabila ”y”.
c. Cât timp lungimea listei este mai mică decât 7, să se incrementeze variabila y cu 1.
d. Să se afișeze lista.

Figura 20. Problema 2_4.py

Problema 2_5.py

a. Utilizați bucla ”while” pentru a afișa un șir de numere.


b. Să se inițializeze variabila ”a” cu 5.
c. Cât timp ”a” este mai mic decât 35, să se incrementeze variabila cu 5.
d. Să se afișeze șirul de numere.

Figura 21. Problema 2_5.py

Problema 2_6.py

a. Să se afișeze elementele unui tuplu utilizând bucla ”while”


Laborator 2
Programarea interfetelor pentru instrumentatie virtuala
b. Să se declare elementele tuplului și să se inițializeze variabila ”a” cu 0.
c. Cât timp lungimea tuplului este mai mică decât variabila ”a”, să se afișeze elementele
tuplului și să se incrementeze cu 1 variabila.
d. Să se afișeze elementele unui tuplu pe rând utilizând indexul acestuia.

Figura 22. Problema 2_6.py

Problema 2_7.py

a. Utilizați metoda pop() într-o buclă ”while”.


b. Să se declare lista ”electronica” cu elementele ”PCB,controller,robot”.
c. Să se afișeze elementul scos din listă și elementele listei pe rând.

Figura 23. Problema 2_7.py

Problema 2_8.py

a. Să se afișeze literele din cuvântul ”Python” cu excepția literelor ”P” și ”h”.


b. Se vor utiliza buclele ”while” și ”if”.
c. Să se utilizeze și funcția ”continue” în interiorul instrucțiunii ”if”.

Figura 24. Problema 2_8.py


Laborator 2
Programarea interfetelor pentru instrumentatie virtuala
Problema 2_9.py

a. Calculați media aritmetică a 3 numere utilizând instrucțiunile cunoscute.


b. Afișați rezultatul.

Figura 25. Problema 2_9.py

Problema 2_10.py

a. Introduceți de la tastatură un număr de tip integer.


b. Afișați numărul răsturnat.
c. Utilizați instrucțiunile și buclele cunoscute.

Figura 26. Problema 2_19.py

Problema 2_11.py

a. Afișați suma numerelor pare date de la tastatură.


b. Utilizați buclele și instrucțiunile cunoscute.
Laborator 2
Programarea interfetelor pentru instrumentatie virtuala
Figura 27. Problema 2_11.py

Problema 2_12.py

a. Să se calculeze suma numerelor pare utilizând instrucțiunea ”for”.


b. Afișați suma numerelor pare cuprinse între 20 și 60.

Figura 28. Problema 2_12.py

Problema 2_13.py

a. Calculați pătratul fiecărui număr din lista „numere”.


b. Afișați pătratul fiecărui număr.

Figura 29. Problema 2_13.py

Problema 2_14.py

a. Oprește bucla „for” dacă un număr este mai mare de 200.


b. Se dă lista din figura 30.
c. Afișați numerele din listă.

Figura 30. Problema 2_14.py

Problema 2_15.py

a. Se consideră ”n” o variabila introdusă de la tastatură.


b. Calculați factorialul unui număr introdus de la tastatură.
c. Utilizați instrucțiunile cunoscute.
Laborator 2
Programarea interfetelor pentru instrumentatie virtuala

Figura 31. Problema 2_15.py

Problema 2_16.py

a. Definiți funcția „Functie_1” care să afișeze mesajul „Prima funcție”.


b. Definiți o a doua funcție „Functie_2”, care să afișeze urmatoarele mesaje: „Incepe a doua
functie..”, „A doua functie!”.
c. Apelați a prima funcție în cadrul celei de-a doua.

Figura 32. Problema 2_16.py

Problema 2_17.py

a. Definiți o funcție care are doi parametri: nume și varsta.


b. Afișați cei doi parametri.

Figura 33. Problema 2_17.py


Laborator 2
Programarea interfetelor pentru instrumentatie virtuala
*Se poate observa că indiferent de ordinea parametrilor de intrare, funcția este executată. Soluția
la această problemă este apelarea funcției utilizând cuvinte cheie.

Figura 34. Problema 2_17.py

Problema 2_18.py

a. Adăugați funcției de la problema 2_17.py parametrul inaltime.


b. Apelați funcția și introduceți parametri utilizând cuvintele cheie.

Figura 35. Problema 2_18.py

*În momentul apelării, funcția va întoarce parametri marcați prin cuvintele cheie în ordine. A
doua apelare a funcției va întoarce o eroare, nu există o metodă sigură pentru a determina
parametrul caruiă i se adresează valoarea „George”.

Problema 2_19.py

a. Definiți o funcție ce are parametri impliciți: nume=”George”, varsta=20.


b. Afișați parametri.
c. Apelați funcția fără a introduce parametri
d. Apelați funcția si introduceți doar parametrul varsta=25.
e. Apelați funcția și introduceți parametri varsta=25 și nume=”Ionut”.
Laborator 2
Programarea interfetelor pentru instrumentatie virtuala
Figura 35. Problema 2_20.py

Problema 2_20.py

a. Definiți o funcție „Adunare” care să utilizeze parametri *args și **kwargs.


b. Să se adune un număr necunoscut de elemente.

Figura 36. Problema 2_20.py

*Se poate observa că funcția este apelată cu trei elemente deși aceasta a fost definită cu unul
singur, precedat însă de *.

c. Să se transmită informațiile sub forma de dicționar utilizând argumentul **kwargs.

Figura 37. Problema 2_20.py

Problema 2_21.py

a. Să se ruleze urmatoarea secvența de cod.


b. Observați faptul că programul întoarce o eroare.

Figura 38. Problema 2_21.py


Laborator 2
Programarea interfetelor pentru instrumentatie virtuala
*Eroarea este provocată de modificarea valorii variabilei a, deși aceasta nu a fost specificată ca
făcând parte din namespace-ul global.Rezolvarea vine sub forma:

Figura 39. Problema 2_21.py

*Mecanismul permite definirea unei variabile în namespace-ul global chiar din corpul unei
funcții și utilizarea noii variabile într-o altă funcție.

Figura 40. Problema 2_21.py

Problema 2_22.py

a. Definiți o funcție ”calcul”care acceptă doar două valori și le întoarce suma,produsul și


diferența.
b. Să se introducă de la tastatură cele două valori. Acestea sunt „x” și „y”.
c. Rezultatul afișat, să se separe prin bară verticală.
Laborator 2
Programarea interfetelor pentru instrumentatie virtuala
Figura 41. Problema 2_22.py

Problema 2_23.py

a. Definiți o funcție care acceptă 4 valori și întoarce maximul dintre cele 4.


b. Valorile variabilelor x,y,z,k se vor introduce de la tastatură.
c. Utilizați instrucțiunile cunoscute pentru realizarea codului.

Figura 42. Problema 2_23.py

Problema 2_24.py

a. Definiți o funcție care contorizează vocalele și consoanele dintr-un cuvânt introdus de la


tastatură.
b. Se vor utiliza instrucțiunile și buclele cunoscute.

Figura 43. Problema 2_24.py


Laborator 2
Programarea interfetelor pentru instrumentatie virtuala
Problema 2_25.py

a. Definiți o funcție care acceptă cuvinte cu litere de tipar și întoarce aceleași cuvinte scrise
cu litera mică.
b. Utilizați instrucțiunile cunoscute.

Figura 44. Problema 2_25.py

Exercitii nerezolvate

Problema 2_26.py

a. Definiți o funcție care calculează factorialul unui număr introdus de la tastatură.


b. Afisați rezultatul.
c. Utilizați instrucțiunile și buclele cunoscute.

Problema 2_27.py

a. Definiți o funcție care calculează aria cercului.


b. Se va introduce de la tastatură raza cercului.
c. Afișați aria cercului.

Problema 2_28.py

a. Definiți o funcție care afișează numele și vârsta unui student.


b. Introduceți de la tastatură numele și vârsta.

Problema 2_29.py

a. Definiți o funcție care să afișeze cel mai mare număr dintr-o listă.
b. Se definește lista x cu elementele: ”3,6,9,23,45,56,12”.
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala

Utilizarea fisierelor în Python

București 2023
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala

1. Scopul lucrării
Scopul lucrării 4 este discutarea și rezolvarea următoarelor aspecte:
2. Elemente de baza
3. Utilizarea fisierelor in Python
4. Realizarea unor programe de test
*Nota – în cadrul acestui laborator puteți folosi orice IDE (IDLE, Thonny, PyCharm, etc) dar
suportul va fi oferit doar pentru IDLE. Problemele aparute în utilizarea unui alt interpretor vor
fi rezolvate pe cont propriu (incompatibilități pachete, probleme în instalarea pachetelor, etc).
**Nota 2 – Problemele rezolvate în cadrul laboratorului vor fi salvate cu numele problemei.
Spre exemplu, rezultatul problemei de mai jos va fi salvat sub forma unei capturi cu numele
Problema_1_1.png.

1. Elemente de baza
În cadrul acestei lucrări va fi tratat lucrul cu fișiere de tip plain text sau binar, precum și
câteva dintre metodele de parsare a acestora. Atunci când se face referire la fișiere de tip plain
text ne referim la acele fișiere care conțin doar caractere din setul ASCII, sunt astfel
independente de sistemul de operare și pot fi deschise de foarte multe aplicații.
Fișierele binare în schimb pot conține caractere non-ASCII și pot fi în general procesate doar
de o aplicație care cunoaște structura fișierelui. În cel mai simplu sens, deschiderea unui fișier
se face cu ajutorul metodei open().
Sintaxa acesteia este: Obiect_fisier=open(“Cale fisier”, “mode”) ; unde:
- “Cale fișier” poate fi calea relativă sau absolută către fișierul care se dorește a fi deschis.
- “mode” este modul în care va fi accesat fișierul, conform cu tabelul de mai jos:
Mod Funcție Observații
r Exclusiv citire Fișierul trebuie să existe în
prealabil
w Doar scriere Dacă fisierul nu exista va fi
creat iar daca exista deja
continutul va fi suprascris
a Doar scriere Daca fisierul nu exista va fi
creat. Daca exista noul
continut va fi adaugat la
finalul fisierului deja existent
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala
r+ Scriere si citire Fisierul trebuie sa existe in
prealabil
w+ Scriere si citire Daca fisierul nu exista va fi
creat iar daca exista deja
continutul va fi suprascris
a+ Scriere si citire Daca fisierul nu exista va fi
creat. Daca exista noul
continut va fi adaugat la
finalul fisierului deja existent

Pentru listarea continutului fisierului pot fi folosite patru metode: ciclarea fisierului sau una
dintre metodele read(),readline() sau readlines(). Aceste metode sunt descrise in tabelul
urmator:
Metoda Descriere Exemplu
Ciclare Liniile sunt extrase si
printate una cate
una, in functie de
caracteru l EOL.

read() Intoarce tot continut


ul fisierului intr-un
singur sir de
caractere

readline() La fiecare apelare


intoarce inca un rand
din fisier.

readlines( ) Intoarce tot continut


ul fisierului sub
forma unei liste

Atunci cand vine vorba despre citirea din fisiere putem folosi una dintre metodele din tabelul
de mai jos:
Metoda Descriere Exemplu
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala
write() Permite scrierea
rand cu rand a
fisierului . Este
obligatorie
incheier ea fiecarui
rand cu “\n”, in
caz contrar toate
datele se vor scrie
pe un singur rand.
writelines() Permite scrierea
sub forma unei
liste compusa din
randurile ce se
doreste a fi scrise,
incheiate cu “\n”.

Utilizarea modulului CSV


Utilizarea fisierelor de tip CSV (comma separated values) este utila intr-o multitudine de
operatiuni – cum ar fi exportul si importul de date din baze de date sau foi de calcul. In cazul
Python, implementarea se face prin intermediul modulului csv, care trateaza in mod automat
particularitatile lucrului cu astfel de fisiere. Pentru citirea unui fisier csv se poate folosi
metoda .reader(cale fisier, dialect, **param). Acesta va parcurge rand cu rand fisierul csv si
va intoarce o lista cu randurile extrase. Un exemplu de utilizare este:

Se poate observa instantierea unui obiect csvfile prin intermediul caruia se poate apela metoda
reader() iar rezultatul este stocat in variabila date. Scrierea unui fisier presupune apelarea
metodei writer(cale fisier, dialect, **param). In figura urmatoare este prezentat un exemplu de
utilizare:

Modulele sys si os
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala
Modulele ofera o serie de capabilitati legate de lucrul cu sistemul de operare, cea mai simpla
dintre acestea fiind determinarea sistemului de operare – sys.plaform , acesta fiind intors sub
forma unui string:

Alte valori posibile sunt:


Sistem de operare Valoare intoarsa
Windows win32
Linux Linux
AIX aix
macOS darwin

O alta functie este metoda sys.exit() – utila in inchiderea unei aplicatii curent. Este folosit in
cadrul buclelor infinite intalnite in general in cadrul programarii interfetelor grafice.

Listarea elementelor dintr-un folder specificat se poate face cu os.listdir:

Verificarea caracterului separator sau pentru indicarea caii in directoare in functie de sistemul
de operare utilizat poate fi accesat prin utilizarea comenzilor
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala
Unirea unei cai cu un nume de fisier poate fi realizata prin utilizarea os.path.join() – are ca
intrari calea si numele fisierului.
Poate fi folosit aici si os.sep pentru a determina separatorul in functie de sistemul de operare
utilizat.

Putem verifica daca o cale exista, este director sau fisier prin utilizarea metodelor
os.path.exists(“cale”), os.path.isdir(“cale”) sau os.path.isfile(“cale”)

Listarea tuturor folderelor si fisierelor dintr-o cale data se poate realiza cu ajutorul
os.walk(“cale”). Acesta intoarce un tuplu de trei elemente sub forma (cale,director,lista
fisiere).

Stergerea unui fisier sau folder se poate face prin utilizarea urmatoarelor comenzi:
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala

Modulele pentru timp


Python permite administrarea functiilor de timp cu ajutorul modului time. Acesta permite
efectuarea operatiunilor comune in programare atunci cand vine vorba de administrarea datei
curente, calculul timpului scurs intre doua evenimente, formatarea timpului, etc. Un exemplu
este reprezentat mai jos, unde metoda time.time() intoarce timpul in epoch, iar time.ctime()
face conversia intr-un format mai usor de inteles:

O posibilitate interesanta este cea de a astepta o perioada de timp, impusa prin intermediul
metodei time.sleep(). Metoda de mai jos va astepta o secunda dupa fiecare iteratie a buclei
for, insa trebuie retinut ca in acest timp programul doar asteapta si nu poate face alte
operatiuni.

Time.localtime() permite accesarea unui tuplu de 9 elemente:


Laborator 4
Programarea interfetelor pentru instrumentatie virtuala

Acestea sunt:
Camp Valori posibile Atribut
Anul 2020 tm_year
Luna 1 – 12 tm_mon
Ziua 1 – 31 tm_mday
Ora 0 – 23 tm_hour
Minut 0 – 59 tm_min
Secunda 0 – 59 tm_sec
Ziua saptamanii 0–6 tm_wday
Ziua anului 1 – 366 tm_yday
Ora de vara tm_isdst

Modulul time permite si formatarea timpului conform cu necesitatile (vezi tabelul de mai jos):

Unde:
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala

Mai poate fi mentionat aici si modulul Calendar, care poate fi util in manipularea datelor
legate de timp in formatul unui calendar:

4.Realizarea unor programe de test


Problema 4_1.py
a. Creați un fișier txt.
b. Scrieți în fișier cuvântul “help”.
c. Închideți fișierul.

Figura 1. Problema 4_1.py


Laborator 4
Programarea interfetelor pentru instrumentatie virtuala
*Metoda close() închide fișierul deschis. Un fișier închis nu mai poate fi citit sau scris. Orice
operație, care necesită ca fișierul să fie deschis, va genera ValueError după închiderea
fișierului.
Problema 4_2.py
a. Afișați fișierele din directorul de lucru.
b. Verificați existenta fișierului ”test1.txt”.
c. Afișați fișierul ”test1.txt”.

Figura 2. Problema 4_2.py


Problema 4_3.py
a. Definiți funcția “read”, care primește ca argument “numefisier”.
b. Deschideți fișierul “numefisier”.
c. Citiți conținutul fișirerului și afișati-l.
d. Apelați funcția “read”.

Figura 3. Problema 4_3.py


Problema 4_4.py
a. Definiți funcția “read”, care primește ca argument “numefisier”.
b. Declarați lista “sir”, fără elemente.
c. Deschideți fișierul “numefisier”.
d. Populați lista cu liniile din fișier.
e. Afișați lista “sir”.
f. Apelați funcția, care citește linie cu linie conținutul fișierului txt.
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala

Figura 4. Problema 4_4.py


Problema 4_5.py
a. Definiti functia “nr_linii”, care primește ca argument “numefisier”.
b. Deschideți fișierul “numefisier”.
c. Parcurgeți liniile din fișier și numarati-le.
d. Afișați numarul de linii din fișier.

Figura 5. Problema 4_5.py


Problema 4_6.py
a. Definiți funcția “contor_cuvant”, care primește ca argument “numefisier”.
b. Deschideți fișierul “numefisier”.
c. Contorizați numărul de apariții ale cuvintelor în fișier.
d. Afișați numărul de apariții ale cuvintelor din fișier.

Figura 6. Problema 4_6.py


*Modulul collections oferă mai multe tipuri de “containere”. Un “container” este un obiect,
utilizat pentru a stoca diferite obiecte, care asigură o cale pentru obiectele stocate pentru a
putea fi iterate. “Containere” predefinite sunt:Counter, List,Dictionary,etc.
*În cazul de față s-a utilizat “Counter”. Acesta este o subclasa a dicționarului, utilizat pentru a
contoriza elementele dintr-un iterabil sub forma unui dicționar neorganizat, unde cheia este
reprezentată de elementul din iterabil, iar valoarea reprezintă contorul elementului din iterabil.
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala
*Metoda split() este utilizată pentru a împărții stringul (textul din fisier) în mai multe
substring-uri, pentru identificarea cuvintelor care se repeată. Substring-urile identice sunt
numărate.
Problema 4_7.py
a. Definiți funcția “marime_fisier”, care primește ca argument “numefisier”.
b. Funcția returnează mărimea în bytes a fișierului.
c. Afișați mărimea în bytes a fișierului.

Figura 7. Problema 4_7.py


Problema 4_8.py
a. Scrieti intr-un fisier pe linii separate urmatoarele elemente din lista:
“Surub cu cap hexagonal”, “Surub cu cap inecat”.
b. Afisati continutul fisierului.

Figura 8. Problema 4_8.py


*%s\n – fiecare string este asezat pe o alta linie.
Problema 4_9.py
a. Definiti functia “sterge_linie”, care primește ca argument “numefisier”.
b. Functie sterge din fisier linii.
c. Afisati continutul fisierului.

Figura 9. Problema 4_9.py


*s.rstrip () – metoda prin care se sterg liniile din fisier, poate sterge
linii,caractere,spatii,virgule,etc.
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala
Problema 4_10.py
a. Definiti functia “linie_la_intamplare”, care primește ca argument “numefisier”.
b. Functia returneaza din fisier o linie random..
c. Afisati o linie random din fisier.

Figura 10. Problema 4_10.py


Problema 4_11.py
a. Definiti functia “citire_fisier”, care primește ca argument “Parametri”.
b. Functia citeste si scrie in fisierul txt urmatoarele informatii: “Umiditate”,
“Temperatura”.
c. Apelati functia“citire_fisier”.
d. Afisati continutul fisierului “Parametri”..

Figura 11. Problema 4_11.py


Problema 4_12.py

a. Scrieti o functie “citire_fisier”, care citeste si scrie intr-un fiser txt.


b. Sa se utilizeze “itertools.islace”.
itertools.islace – este un iterator care returneaza elementele din iterabil
iterabilul – este orice obiect Python capabil sa-si returneze elementele pe rand.
c. Scrieti pe linii separate urmatoarele componente: Rezistor, Condensator,
Tranzistor, Bobina.
d. Apelati functia “citire_fisier”.
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala

Figura 12. Problema 4_12.py


Problema 4_13.py
a. Scrieti o functie “citeste_de_la_sfarsit”, care primește urmatoarele argumente:
“Parametri”,”linii”.
b. Functia citeste de la sfarsit liniile din fisierul txt.
c. Apelati functia “citeste_de_la_sfarsit”.

Figura 13. Problema 4_13.py


Problema 4_14.py
a. Definiti functia “citire_fisier”, care primește ca argument “Componente”.
b. Stocati intr-o variabila “data” elementele din fisierul “Componente”.
c. Afisati continutul variabilei “data”.
Laborator 4
Programarea interfetelor pentru instrumentatie virtuala
d. Apelati functia “citire_fisier” .

Figura 14. Problema 4_14.py


Problema 4_15.py
a. Definiti functia “cauta”, care primește ca argument “Componente”.
b. Functia cauta cuvantul cu lungimea cea mai mare din fisierul “Componente”.
c. Afisati cuvantul cu lungimea cea mai mare din fisier.

Figura 15. Problema 4_15.py

Problema 4_16.py
a. Scrieți un program care sa citeasca fiecare linie dintr-un fisier csv dat.
b. Afisati continutul fisierului sub forma unei liste de string-uri.

Figura 16. Problema 4_16.py


Laborator 4
Programarea interfetelor pentru instrumentatie virtuala
Figura 17. Problema 4_16.py
Problema 4_17.py
1. Definiți o clasă care sa citeasca si sa scrie fisiere text.
2. Definiti o metoda care sa scrie fisiere text.
3. Definiti o metoda care sa citeasca fisiere text.
4. Definiți o metoda care sa afiseze continutul fisierului.
Problema 4_18.py
1. Creați un fișier csv.
2. Citiți linie cu linie conținutul fișierului csv.
3. Afișați continutul fisierului csv.
Problema 4_19.py
1. Creați un fișier CSV cu date generate aleatoriu pe baza a trei liste care conțin:
componente electronice, caracteristicile acestora și numărul de pini..
Se dau listele:
Componenta=[rezistor, condensator, cablu, tranzistor, limitator,dioda,bec, stabilizator,
motor, buton]
Caracteristica=[variabil, ceramic, carbon, bipolar, zener, PNP, tensiune, NPN, LED,
unipolar]
Numar_pini=[2, 3, 0, NAN, 4,5,10,1,7,9]
2. Creati o functie care sa elimine din fisier datele parazit.
3. Creati o functie care sa contorizeze numarul de apartii a fiecarei caracteristici (astfel se
identifica numarul de componente ce au o caracteristica comuna).
4. Creati o functie care adăuga noi rânduri în fișierul CSV existent, permitând
utilizatorului să introducă manual informațiile pentru o noua componenta și sa salveze
acele informații în fișier.

Problema 4_20.py
1. Pentru problema 4_19.py creati o functie care să permită modificarea informațiilor
unei componente existente în fișierul CSV.
2. Creati o functie care șterge o componenta din fișierul CSV, pe baza numelui de
furnizat de utilizator.
3. Adăugați o coloană suplimentară în fișierul CSV pentru a stoca data la care a fost
adăugat fiecare componenta și actualizați programul pentru a afișa această informație.
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Afisarea graficelor în Python

București 2023
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala
1. Scopul lucrării
Scopul lucrării 5 este discutarea și rezolvarea următoarelor aspecte:
2. Afisarea graficelor in Python
3. Realizarea unor programe de test
*Nota – în cadrul acestui laborator puteți folosi orice IDE (IDLE, Thonny, PyCharm, etc) dar
suportul va fi oferit doar pentru IDLE. Problemele aparute în utilizarea unui alt interpretor vor
fi rezolvate pe cont propriu (incompatibilități pachete, probleme în instalarea pachetelor, etc).
**Nota 2 – Problemele rezolvate în cadrul laboratorului vor fi salvate cu numele problemei.
Spre exemplu, rezultatul problemei de mai jos va fi salvat sub forma unei capturi cu numele
Problema_1_1.png.

2. Afisarea graficelor in Python


Cea mai raspandita dintre variantele utilizate pentru vizualizarea datelor sub forma grafica in
limbajul de programare orientat obiect Python este Matplotlib. Una dintre primele module
aparute cu acest scop, a fost creat sa lucreze intr-o modalitate cat mai asemenatoare cu cea
intalnita in cadrul limbajului MATLAB. La momentul scrierii acestei lucrari, alte variante
care mai pot fi utilizate sunt Seaborn,ggplot, Bokeh, pygal sau Leather.
Pentru instalarea matplotlib se poate utiliza comanda: python -m pip install -U matplotlib sau
se pot folosi oricare dintre modalitatile listate pe pagina matplotlib.org.
In cadrul acestei lucrari se va folosi in mare parte pyplot, parte a modulului matplotlib care
dupa cum s-a mentionat anterior este familiara celor care au mai lucrat in MATLAB.

Figura 0.1
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala
In graficul anterior se poate observa ca deoarece datele pentru axa X nu au fost transmise ca
argument catre metoda plot acestea au fost inlocuite cu variabile implicite [0,1,2,3]. Pentru
obtinerea figurii de mai jos au fost transmise metodei plot si valori diferite pentru axa X – sub
forma plt.plot( X, Y).

Figura 0.2
Linia utilizata pentru reprezentarea datelor poate fi formatata prin transmiterea unui parametru
suplimentar catre metoda plot, sub forma plt.plot(X,Y, “r^“), unde “r-“ reprezinta un string
compus din prima litera a culorii de reprezentat (red) si simbolul utilizat pentru reprezentarea
punctelor (un triunghi).
Rezultatul rularii acestei comenzi este prezentat in figura de mai jos:
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 0.3
Utilizarea normala a acestui modul se face alaturi de modulul numpy pentru procesare
numerica. In acest scop datele pot fi generate automat sau obtinute sub forma de numpy array.

Figura 0.4
Este posibila adaugarea a mai multe seturi de date in acelasi grafic:
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 0.5
Este posibila de asemenea stivuirea graficelor pe verticala, prin utilizarea subplots, dupa cum
urmeaza:

Figura 0.6
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala
Stivuirea graficelor pe orizontala se face prin modificarea instructiunii subplots, in cazul de
fata cu parametrii subplots(1,3) – 1 rand, 3 coloane:

Figura 0.7
Scalarea axelor (pentru a putea compara grafice diferite din acelasi subplot) se poate realiza
cu ajutorul instructiunilor sharex respectiv sharey. In exemplul de mai jos se poate observa ca
desi graficele au un numar diferit de valori acestea sunt afisate in paralel si la o prima vedere
sunt identice.
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 0.8
Adaugarea parametrului sharex=True, respectiv sharey=True la metoda subplots permite
alinierea celor doua grafice, dupa cum urmeaza:

Figura 0.9
Adaugarea parametrului subplot_kw = dict(projection='polar') la instructiunea subplots de mai
devreme permite obtinerea graficelor in coordonate polare:
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 0.10
3. Realizarea unor programe de test

Problema 5_1.py
a. Trasati graficul care descrie dreapta ce trece prin doua puncte de coordonate, punctul
a(2,9) si b(5,10).
b. Se dau punctele:
xpoints = 2,9;
ypoints = 5,10;
c. Utilizati functia plot() pentru a crea graficul.
d. Afisati graficul utilizand functia show().
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 1. Problema 5_1.py


Problema 5_2.py
a. Trasati graficul cu dreapta care trece prin punctele (1,5), (2,6), (6,1) si (7,10).
b. Se dau punctele:
xpoints = 1,2,6,7;
ypoints = 5,6,1,10;
c. Utilizati functia plot() pentru a crea graficul.
d. Afisati graficul utilizand functia show().

Figura 2. Problema 5_2.py


Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Problema 5_3.py
a. Trasati graficul descris de valorile de pe axa y fara a specifica valorile de pe axa x.
b. Se dau elementele pentru y:
ypoints = 1,7,3,10,4,8,6;
c. Utilizati functia plot() pentru a crea graficul.
d. Afisati graficul utilizand functia show().

Figura 3. Problema 5_3.py

Problema 5_4.py
a. Marcati pe grafic punctele de cordonate rezultate in urma trasarii graficului pentru
valori pe axa y.
b. Se dau elementele pentru y:
ypoints = 5,7,2,9;
c. Utilizati functia plot() pentru a crea graficul si marker-ul “.” pentru reprezentarea
punctelor de coordonate.
d. Afisati graficul utilizand functia show().
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 4. Problema 5_4.py

Problema 5_5.py
a. Trasati graficul pentru punctele date prin axa y cu linie punctata rosie.
b. Se dau elementele pentru y:
ypoints = 3,6,8,10,14;
c. Utilizati functia plot() pentru a crea graficul si marker-ul “*” pentru reprezentarea
punctelor de coordonate.
d. Afisati graficul utilizand functia show().
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 5. Problema 5_5.py

Problema 5_6.py
a. Trasati graficul pentru punctele date prin axa y si mariti dimensiunea markerilor.
b. Se dau elementele pentru y:
ypoints = 3,6,8,10,14;
c. Utilizati functia plot() pentru a crea graficul si marker-ul “.” pentru reprezentarea
punctelor de coordonate.
d. Marirea dimensiunii markerilor se face utilizand ms (marker size).
e. Afisati graficul utilizand functia show().
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala
Figura 6. Problema 5_6.py

Problema 5_7.py
a. Trasati graficul pentru punctele date prin axa y si mariti dimensiunea markerilor.
b. Se dau elementele pentru y:
ypoints = 3,6,8,2,10,7,14;
c. Utilizati functia plot() pentru a crea graficul si marker-ul “.” pentru reprezentarea
punctelor de coordonate.
d. Marirea dimensiunii markerilor se face utilizand ms (marker size).
e. Schimbarea culorii markerilor se face utilizand mfc (marker font color).
f. Afisati graficul utilizand functia show().
g. Schimbati culoarea markerului in albastru.

Figura 7. Problema 5_7.py


Problema 5_8.py
a. Trasati graficul pentru punctele date prin axa y si mariti dimensiunea markerilor.
b. Se dau elementele pentru y:
ypoints = 3,6,8,2,10,7,14;
c. Utilizati functia plot() pentru a crea graficul si pentru a reprezentarea acestuia sub
forma unei linii intrerupte.
d. Schimbarea stilului de linie se face astfel: linestyle=”dashed”. Exista mai multe stiluri,
acesta este unul dintre ele.
e. Afisati graficul utilizand functia show().
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 8. Problema 5_8.py


Problema 5_9.py
a. Trasati graficul pentru punctele date prin axa y si mariti dimensiunea markerilor.
b. Se dau elementele pentru y:
ypoints = 3,6,8,2,10,7,14;
c. Utilizati functia plot() pentru a crea graficul si pentru a reprezentarea acestuia sub
forma unei linii ingrosate.
d. Schimbarea grosimii liniei se face astfel: linewidth=”15.3”.
e. Suplimentar a fost adaugata si culoarea liniei “g” (green).
f. Afisati graficul utilizand functia show().
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 9. Problema 5_9.py


Problema 5_10.py
a. Reprezentati pe acelasi grafic doua seturi de date y si y1.
b. Se dau seturile:
y = 2,5,8,1,12;
y1=1,7,3,9,6;
c. Utilizati functia plot() pentru a crea graficul pentru y si pentru y1. Cele doua seturi de
date se vor plota separate.
d. Afisati graficul utilizand functia show().

Figura 10. Problema 5_10.py


Laborator 5
Programarea interfetelor pentru instrumentatie virtuala
Problema 5_11.py
a. Reprezentati pe acelasi grafic doua seturi de date (x,y) si (x1,y1).
b. Se dau seturile:
Setul 1
x = 0,2,5,8,10;
y = 2,5,8,1,12;
Setul 2
x1 = 1,7,3,9,6;
y1=1,7,3,9,6;
c. Utilizati functia plot() pentru a crea graficul pentru cele doua seturi de date.
d. Afisati graficul utilizand functia show().

Figura 11. Problema 5_11.py


Problema 5_12.py
a. Realizati un grafic prin care sa reprezentati variatia vitezei in functie de timp.
b. Se da urmatorul set de valori pentru x si y:
x = 2,6,8,10,12,17,23;
y = 5,10,15,20,25,30,35;
c. Se vor eticheta axele x si y cu urmatoarele etichete: Timp, Viteza.
d. Utilizati functia xlabel() si ylabel().
e. Afisati cu functia show() graficul.
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 12. Problema 5_12.py


Problema 5_13.py
a. Realizati un grafic prin care sa reprezentati variatia vitezei in functie de timp.
b. Se da urmatorul set de valori pentru x si y:
x = 2,6,8,10,12,17,23;
y = 5,10,15,20,25,30,35;
c. Se vor eticheta axele x si y cu urmatoarele etichete: Timp, Viteza.
d. Titlul graficului este “Variatia in timp a vitezei”.
e. Utilizati functia xlabel(), ylabel() si title().
f. Afisati cu functia show() graficul.
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 13. Problema 5_13.py

Problema 5_14.py
a. Realizati un grafic prin care sa reprezentati variatia vitezei in functie de timp.
b. Se da urmatorul set de valori pentru x si y:
x = 2,6,8,10,12,17,23;
y = 5,10,15,20,25,30,35;
c. Se vor eticheta axele x si y cu urmatoarele etichete: Timp, Viteza.
d. Titlul graficului este “Variatia in timp a vitezei”.
e. Utilizati functia xlabel(), ylabel() si title().
f. Utilizati functia grid() pentru a imbunatatii vizibilitatea graficului.
g. Afisati cu functia show() graficul.
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 14. Problema 5_14.py

Problema 5_15.py
a. Realizati un grafic cu doua subgrafice pentru a reprezenta pe scari diferite doua seturi
de valori.
b. Cele doua seturi de valori sunt:
Setul 1
x = 0,2,5,7,8,11;
y = 4,6,8,1,9,2;
Setul 2
x = 0,2,5,7,8,11;
y = 40,60,80,10,90,20;
c. Subgraficele se vor dispune pe coloane.
d. Utilizati functia subplot() pentru a crea cele doua subgrafice.
e. Utilizati functia grid() pentru a imbunatatii vizualizarea subgraficelor.
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 15. Problema 5_15.py


Problema 5_16.py
a. Realizati un grafic cu doua subgrafice pentru a reprezenta pe scari diferite doua seturi
de valori.
b. Cele doua seturi de valori sunt:
Setul 1
x = 0,2,5,7,8,11;
y = 4,6,8,1,9,2;
Setul 2
x = 0,2,5,7,8,11;
y = 40,60,80,10,90,20;
c. Subgraficele se vor dispune pe linii.
d. Utilizati functia subplot() pentru a crea cele doua subgrafice.
e. Utilizati functia grid() pentru a imbunatatii vizualizarea subgraficelor.
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 16. Problema 5_16.py


Problema 5_17.py
a. Realizati un grafic in care sa reprezentati doua seturi de masuratori sub forma unor
puncte.
b. Setul 1 de variabile este compus din:
x = 2,3,6,8,12,1,16,6,10;
y = 50,45,99,80,120,112,160,65,100;
c. Setul 2 de variabile este compus din:
x1 = 1,3,9,4,16,8,1,6,10;
y1 = 50,45,99,80,120,112,160,65,100;
d. Utilizati functia scatter() pentru a realiza graficul.
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 17. Problema 5_17.py


Problema 5_18.py
a. Reprezentati sub forma unui grafic de tip “bare verticale” evolutia numarului de viroze
pe luni din urmatorii ani: 2020,2021,2022,2023.
b. Declarati variabilele x si y. Variabila x are elementele: 2020,2021,2022,2023.
Variabila y reprezinta durata in luni a virozelor, iar elementele acesteia sunt: 4,8,91.
c. Utilizati functia bar() pentru a crea reprezentarea sub forma de bare orizontale a
graficului.
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 18. Problema 5_18.py

Problema 5_19.py
a. Reprezentati sub forma unui grafic de tip “bare orizontale” evolutia numarului de
viroze pe luni din urmatorii ani: 2020,2021,2022,2023.
b. Declarati variabilele x si y. Variabila x are elementele: 2020,2021,2022,2023.
Variabila y reprezinta durata in luni a virozelor, iar elementele acesteia sunt: 4,8,91.
c. Utilizati functia bath() pentru a crea reprezentarea sub forma de bare orizontale a
graficului.
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 19. Problema 5_19.py

Problema 5_20.py
a. Realizati o histograma care arata frecventa distributiei vitezei pentru un dispozitiv.
b. Pentru a simplifica procesul se va utiliza functia random.normal(), care genereaza un
sir de 200 de valori, unde valorile se vor concentra in jurul valorii de 120, iar deviatia
standard este 10.
c. Utilizati functia hist() pentru a crea histograma.
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Figura 20. Problema 5_20.py


Problema 5_21.py
a. Creati un grafic tip “felie de placinta”.
b. Declarati variabila y cu urmatoarele elemente: 20, 60, 20.
c. Utilizati functia pie() pentru a trasa graficul.

Figura 21. Problema 5_21.py


Laborator 5
Programarea interfetelor pentru instrumentatie virtuala

Problema 5_22.py
a. Creati un grafic tip “felie de placinta”.
b. Declarati variabila “y” cu urmatoarele elemente: 20, 60, 20.
c. Creati variabila “etichete” cu urmatoarele elemente: Robotica, Mecanica, Electronica.
d. Utilizati functia pie() pentru a trasa graficul si creati o legenda cu elementele din
variabila “etichete”.

Figura 22. Problema 5_22.py

Exercitii nerezolvate
Pb.1
a. Realizati un grafic prin care sa reprezentati variatia vitezei in functie de timp.
b. Alegeti cate 1 set de valori pentru x si y.
c. Sa se eticheteze axele x si y cu urmatoarele etichete: Timp, Viteza.
Laborator 5
Programarea interfetelor pentru instrumentatie virtuala
d. Sa se scrie un titlul pentru grafic.
e. Sa se utilizeze functia xlabel(), ylabel() si title(). Sa se utilizeze functia grid() pentru a
imbunatatii vizibilitatea graficului. Sa se afiseze cu functia show() graficul.
Pb.2
Realizați un grafic care prezintă evoluția temperaturii în funcție de timp:
a) Construiti o functie care genereaza aleatoriu 10 de valori de temperatura (y). Alegeți
un set de valori pentru timp (x), corespunzatoare unei variatii normale a temperaturii
pe parcursul unei zile.
b) Etichetați axele x și y cu "Timp" și "Temperatură".
c) Adăugați un titlu graficului.
d) Utilizați xlabel(), ylabel(), title(), și grid() pentru etichete și aspect vizual.
e) Afișați graficul cu show().
Pb.3
Reprezentați un grafic care arată modul în care nivelul apei dintr-un bazin variază în funcție
de temperatura:
a) Determinati rata de evaporare a apei din bazin. Consideram că nivelul apei scade
liniar, odată cu creșterea temperaturii. Se vor genera valori ale temperaturii pe baza
unei relatii matematice liber aleasa.
b) Etichetați axele x și y cu "Temperatura" și "Nivelul apei".
c) Adăugați un titlu graficului.
d) Utilizați xlabel(), ylabel(), title(), și grid() pentru etichete și aspect vizual.
e) Afișați graficul cu show().
Pb.4
Creați o histograma care prezintă variatia gradului de coroziune a metalului expus unui mediu
umed în functie de lunile anului:
a) Generati aleatoriu (random) datele necesare realizarii histogramei
b) Etichetați axele x și y cu "Intervalul de referinta – 12 luni" și "Gradul de coroziune".
c) Adăugați un titlu graficului.
d) Utilizați xlabel(), ylabel(), title(), și grid() pentru etichete și aspect vizual.
e) Afișați graficul cu show().
Pb.5
Ilustrați variația intensității luminii în decurs de 24 de ore:
a) Generati seturi de valori pentru ore (x) și intensitatea luminii (y). Se pot prelua valorile
de pe internet, cu precizarea sursei. Se pot folosi toate librariile cunoscute, precum si
optimizari de cod, cu explicatiile aferente.
b) Etichetați axele x și y cu "Timp" și "Intensitate lumină".
c) Adăugați un titlu graficului.
d) Utilizați xlabel(), ylabel(), title(), și grid() pentru etichete și aspect vizual.
e) Afișați graficul cu show().

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