Sunteți pe pagina 1din 6

Lucrarea 6. Structuri repetitive. Utilizarea instrucțiunii while.

Utilizarea instrucțiunii range. Utilizarea instrucțiunii for.

Aspecte teoretice

În orice limbaj de programare, pe lângă structurile condiționale prezentate


în laboratorul anterior, extrem de importante sunt structurile repetitive.
Aceste permite crearea unei bucle ce conține un grup de instrucțiuni și care
se repetă atâta timp cât condițiile verificate sunt îndeplinite. În limbajul
Python sunt utilizate cu precădere în crearea unei bucle instrucțiunile while
și for. Prima dintre acestea are sintaxa prezentată în continuare și conduce
la executarea buclei atât timp cât expresia verificată are valoare Boolean
True.

while expresie:
Instrucțiuni

Se observă că sintaxa seamănă din punct de vedere structural cu


instrucțiunea if, dar grupul de instrucțiuni se execută ori de câte ori este
adevărată și nu doar o singură dată ca în cazul structurii condiționale.

Aplicații de realizat în timpul laboratorului

AL.1. Să se scrie un program in Python care urmărește procesul de încărcare


a unui camion și afișează numărul de operații de încărcare necesare pentru
încărcarea completă a acestuia.

1 Capacitatea_de_incarcare=40
2 Unități_incarcate_la_o_operatie=2
3 Marfa_in_camion=0
4 Numar_operatii=0
Florin Valentin Ruscă, Eugen Roșca, Mircea Augustin Roșca

5 while Marfa_in_camion <= Capacitatea_de_incarcare:


6 Marfa_in_camion= Marfa_in_camion + Unități_incarcate_la_o_
operatie
7 Numar_operatii= Numar_operatii+1
8 print ('Camionul este incarcat complet in', Numar_operatii-1,'operatii
de incarcare')
! Se observă că pentru a afișa valoarea corectă a numărului de încărcări a
fost nevoie ca această să fie redusă cu o unitate deoarece în expresia
verificată de instrucțiunea while apare și semnul =.

Teme

T1. Să se rescrie programul din aplicația anterioară astfel încât să nu fie


necesar ca valoarea variabilei Numar_operatii să fie redusă cu o unitate.

T2. Să se rescrie programul din laboratorul anterior din aplicația de


laborator 4 utilizând instrucțiunea while.

T3. Să se scrie un program în limbajul Python ce afișează numerele mai mari


decât 10 citite din următoarea listă: [ 10 , 3 , 24 , 25 , 23 , 2 , 10 , 2 , 3 ]
utilizând instrucțiunea while.

Aspecte teoretice

A doua instrucțiune utilizată pentru crearea unei structuri repetitive este


for. Pentru a o putea utiliza este necesar să se specifice atributul în raport
cu care se rulează grupul de instrucțiuni din buclă, respectiv domeniul din
care acesta face parte. Acesta din urmă poate fi o listă, un tuplu, un șir de
caractere sau numere după anumită regulă. Pentru a definii un domeniu
format din numere se utilizează funcția range. Sintaxa acesteia este
prezentată în continuare. Prima literă a reprezintă prima valoare
considerată (poate să lipsească, caz în care 0 este prima valoare), a doua

4
Programarea Calculatoarelor
-Îndrumar de laborator-

literă b este valoarea limită ce nu trebuie atinsă (valorile returnate sunt mai
mici decât această limită, care nu va apărea între ele), ultima literă c
reprezintă pasul (în cazul în care lipsește pasul este de o unitate).

range (a,b,c)

Aplicații de realizat în timpul laboratorului

AL.2. Să se scrie un program in Python care face suma numerelor mai mici
ca 10 și o afișează.

1 numar_initial=1
2 limita_superioara=10
3 pas=2
4 suma=0
5 for i in range(numar_initial,limita_superioara,pas):
6 suma=suma+i
7 print ('Suma numerelor impare mai mici ca 10 este',suma)

AL.3. Să se scrie un program in Python care să afișeze principalele stații


feroviare pe ruta București Nord-Constanța aflate într-un obiect de tip listă.
Să verifice dacă stația Medgidia apare în listă și să afișeze un mesaj cu
rezultatul căutării.

1 statii=('Bucuresti_Nord','Ciulnita','Fetesti','Medgidia','Constanta')
2 for statie in statii:
3 print (statie)
4 contor=False #se introduce o variabilă martor de tip Boolean
5 for statie in statii:
6 if statie==['Medgidia']:
7 contor=True
8 break #se iese din buclă
9 if contor:
1 print('Statia Medgidia nu se regaseste in lista')
0 else:

5
Florin Valentin Ruscă, Eugen Roșca, Mircea Augustin Roșca

1 print('Statia Medgidia se regaseste in lista cu principalele statii')


1
1
2

AL.4. Să se scrie un program in Python care să permită gestionare unei baze


de date cu componente de infrastructură feroviară prezentată în tabelul
următor.

Nr. Produs Cod produs Nr bucăți


crt
.
1 Buloane 1001 100
2 Tirfoane 1002 200
3 Piulite 2001 200
4 Macazuri 2009 300
5 Mecanisme 3001 100
manevrare
6 Elemente din 3005 50
cauciuc
7 Ace 5468 100

Comenzile primite, pentru livrare, în ultimele zile sunt prezentate în tabel în


raport cu codul produsului:

Nr. 1001 1002 2001 2009 3001 3005 5468


comanda
1 10 0 5 10 0 0 16
2 3 3 4 5 0 10 0
3 0 25 40 3 2 45 23
4 5 10 0 10 25 0 30

Se cere să se afișeze stocul disponibil după fiecare comandă.

1 #este creata o baza de date cu informatiile din tabele

6
Programarea Calculatoarelor
-Îndrumar de laborator-

2 coduri=[('Buloane',1001), ('Tirfoane',1002), ('Piulite',2001),


('Macazuri',2009),('Mecanisme_manevrare',3001),
('Elemente_din_cauciuc',3005),('Ace',5468)]
3 stoc=[(1001,100), (1002,200), (2001,200),(2009,300),(3001,100),
(3005,50),(5468,100)]
4 #este verificata corespondenta dintre cele doua tabele
5 for cod in coduri:
6 for nume in stoc:
7 if cod[1]==nume[0]:
8 print (cod[1],nume[1])
9 #sunt introduse valorile cerute in cele 4 comenzi
10 comenzi=[(10,0,5,10,0,0,16),(3,3,4,5,0,10,0),(0,25,40,3,2,45,23),
(5,10,0,10,25,0,30)]
11 stoc_actual=list()
12 for stocuri in stoc:
13 stoc_actual.append(list(stocuri)[1])
14 print ('Stocul initial este',stoc_actual)
15 #valorile din fiecare comanda sunt scazute din stocul existent
16 for comanda in comenzi:
17 print ('Comanda',comenzi.index(comanda), comanda)
18 for i in range (len(comanda)):
19 #este verificat daca exista valorile cerute in stoc
20 if stoc_actual[i]>=comanda[i]:
21 stoc_actual[i]=stoc_actual[i]-comanda[i]
22 else:
23 stoc_actual[i]=0
24 print ('Lipsa stoc pentru produsul',list(coduri[i])
[0])
25 print('Stocul de produse este',stoc_actual)

Teme

T4. Să se rescrie programul din aplicația anterioară astfel încât sa fie


introduse suplimentar încă două produse (ex. cupoane șină, inductori de
cale, elemente de siguranță, etc.)

7
Florin Valentin Ruscă, Eugen Roșca, Mircea Augustin Roșca

T5. Să se rescrie programul din laboratorul anterior din aplicația de


laborator 4 utilizând instrucțiunea for.

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