Mediu de dezvoltare: editare, rulare, depanare
Un mediu de programare (IDE) are trei functii principale: Editare (scrii codul), Rulare (executi programul) si Depanare/Debug (identifici erorile).
Exemple recomandate cls VII: Thonny sau Python IDLE (pentru Python).
Conform OMEN 3393/2017, domeniul cuprinde: mediu de dezvoltare, structura programelor, vocabular, date numerice, citire/afisare si structuri liniare/alternative/repetitive.
Structura programelor, vocabular si date numerice
Concepte fundamentale:
- Algoritm - secventa finita de pasi bine definiti care rezolva o problema (analogie: reteta de gatit)
- Program - algoritm scris intr-un limbaj executabil de calculator
- Variabila - zona de memorie cu un nume (ex: varsta = 13)
- Date numerice - numere intregi (5, -3) si reale (3.14, -0.5)
Vocabularul cuprinde: cuvinte rezervate, identificatori si operatori (+, -, *, /).
Citire si afisare
Citire (input) - preia valori introduse de utilizator. In Python: x = int(input("Nr: "))
Afisare (output) - tipareste pe ecran. In Python: print("Rezultatul:", r)
Analogie: citirea = intrebare, afisarea = raspuns.
Atentie: input() returneaza sir de caractere; pentru calcule numerice: int(input(...)) sau float(input(...)).
Structura liniara si structura alternativa
Structura liniara - instructiunile se executa una dupa alta (secvential).
Structura alternativa (if/else) - executa un bloc daca conditia e adevarata, altul daca e falsa:
if x > 0:
print("pozitiv")
else:
print("negativ sau zero")
Analogie: rascruce - mergi la stanga DACA conditia e adevarata, altfel la dreapta.
Structura repetitiva (while si for)
Structura repetitiva executa un bloc de mai multe ori, cat timp conditia e adevarata:
while i <= 5:
print(i)
i = i + 1
Ambele afiseaza 1, 2, 3, 4, 5. Analogie: spalatul vaselor - aceeasi operatie pentru fiecare vas.
Atentie: conditia din while trebuie sa devina falsa la un moment dat; altfel se obtine o bucla infinita.
Exercitii practice
Exercitiul 1 (Nivel minim) - Citeste programul si spune ce face
Mai jos ai doua programe scrise in Python. Citeste-le cu atentie, "executa-le" mental pas cu pas (pe hartie, notand valorile variabilelor) si raspunde la intrebari.
Programul A:
b = int(input("b = "))
s = a + b
print("Suma:", s)
Programul B:
while i <= 3:
print(i)
i = i + 1
- Ce afiseaza Programul A daca utilizatorul introduce a = 4 si b = 7?
- Cate variabile are Programul A si cum se numesc ele?
- Ce structura foloseste Programul A: liniara, alternativa sau repetitiva? Justifica in doua cuvinte.
- Ce afiseaza Programul B, pe randuri?
- Ce structura foloseste Programul B si care este conditia ei?
- Ce s-ar intampla daca stergem din Programul B linia
i = i + 1? Cum se numeste acest defect? - De ce scriem
int(input("a = "))si nu doarinput("a = ")atunci cand vrem sa adunam numere?
Raspunde numerotat: 1. ... 2. ... 3. ... 4. ... 5. ... 6. ... 7. ...
Sfat: deschide Thonny sau Python IDLE si scrie cele doua programe exact asa cum sunt. Ruleaza-le si compara rezultatul real cu ce ai scris tu pe hartie. Daca difera, urmareste inca o data pasii - asta inseamna depanare.
Vezi rezolvarea
Rezolvare model:
- Afiseaza
Suma: 11(adica 4 + 7). - Are trei variabile:
a,bsis. Fiecare este o zona de memorie cu un nume. - Structura liniara: instructiunile se executa una dupa alta, in ordinea scrierii, o singura data.
- Afiseaza, pe randuri separate: 1, apoi 2, apoi 3.
- Structura repetitiva (while). Conditia este
i <= 3: cat timp este adevarata, blocul se repeta. - Programul ar afisa la nesfarsit valoarea 1, pentru ca
iramane mereu 1 si conditia nu devine niciodata falsa. Defectul se numeste bucla infinita. - Pentru ca
input()intoarce un sir de caractere, nu un numar. Faraint(...)nu se face adunarea numerica. Pentru numere cu zecimale se folosestefloat(input(...)).
Exercitiul 2 (Nivel standard) - Trei programe scurte in Thonny
Deschide mediul de programare (Thonny sau Python IDLE) si scrie trei programe mici, fiecare salvat in fisierul lui. Fiecare program foloseste una dintre cele trei structuri invatate in aceasta lectie.
Cerinte obligatorii:
Bonus (pentru nota maxima):
- Rescrie Programul 3 folosind
for i in range(1, 11)si verifica faptul ca afiseaza acelasi lucru - La Programul 2, adauga un al treilea caz: afiseaza "zero" cand numarul este exact 0. Ai nevoie de doua lucruri noi, care nu apar in lectie:
elif(prescurtare de la "else if" - inca o conditie, verificata doar daca prima a fost falsa) si==(intreaba "sunt egale?", spre deosebire de=care ATRIBUIE o valoare). Ordinea conteaza:if x > 0, apoielif x == 0, apoielse. - La Programul 1, foloseste si o valoare reala (cu zecimale) citita cu
float(input(...)) - Foloseste depanarea din Thonny (rulare pas cu pas) si urmareste cum se schimba variabila
ila fiecare repetare
Atentie la indentare: liniile din interiorul unui if, else sau while se scriu decalate spre dreapta cu 4 spatii. Daca uiti decalajul, programul nu ruleaza.
Vezi rezolvarea
Rezolvare model - cele trei programe:
Program 1 (liniar):a = int(input("a = "))b = int(input("b = "))p = a * bprint("Produsul:", p)
Program 2 (alternativ):x = int(input("Nr: "))if x > 0: print("pozitiv")else: print("negativ sau zero")
Program 3 (repetitiv):i = 1while i <= 10: print(i) i = i + 1
Varianta bonus cu for: for i in range(1, 11): print(i) - afiseaza tot 1, 2, ..., 10.
Greseli frecvente: lipseste int(...) la citire (se aduna siruri, nu numere); lipsesc cele doua puncte de la finalul liniei if sau while; lipseste decalajul de 4 spatii; lipseste i = i + 1, deci bucla nu se opreste.
Bonus - al treilea caz la Programul 2:x = int(input("Nr: "))if x > 0: print("pozitiv")elif x == 0: print("zero")else: print("negativ")
De ce in ordinea asta: Python verifica de sus in jos si se opreste la prima conditie adevarata. Daca puneai else inaintea lui elif, ar fi prins si zeroul in ramura "negativ".
Exercitiul 3 (Nivel performanta) - Compunere: de la algoritm la program
Cerinta: Scrie un text de 8-10 randuri in care explici drumul de la o problema pana la un program care ruleaza. Porneste de la ce este un algoritm, arata cum devine el program intr-un mediu de programare si descrie cele trei structuri invatate (liniara, alternativa, repetitiva), spunand pentru fiecare cand se foloseste. Da cate un exemplu scurt pentru fiecare structura.
Indicii pentru structurarea raspunsului:
- Incepe cu definitia algoritmului: secventa finita de pasi bine definiti care rezolva o problema
- Explica diferenta dintre algoritm si program (programul e algoritmul scris intr-un limbaj pe care calculatorul il executa)
- Spune ce face un mediu de programare: editare, rulare, depanare
- Descrie citirea si afisarea si de ce este nevoie de conversia
int(input(...)) - Prezinta pe rand cele trei structuri si da un exemplu de problema potrivita pentru fiecare
- Incheie cu capcana buclei infinite si cum o eviti
Cuvinte cheie de folosit: algoritm, program, mediu de programare, depanare, variabila, date numerice, citire, afisare, structura liniara, structura alternativa, structura repetitiva, conditie, bucla infinita
Format: Scrie raspunsul in paragrafe coerente (nu liste!), intr-un document salvat cu numele "Compunere_Programare_NumeleTau". Exemplele de cod le poti scrie pe randuri separate.
Provocare: dupa compunere, alege o problema din viata ta de elev (de exemplu, calculul mediei la o materie) si scrie algoritmul ei in pasi numerotati, apoi transforma-l in program in Thonny.
Vezi rezolvarea
Nu primesti compunerea gata scrisa - iata schita de urmat si criteriile dupa care se evalueaza.
Schita in 6 idei (in aceasta ordine):
- Algoritmul = secventa finita de pasi bine definiti care rezolva o problema (analogia cu reteta de gatit).
- Programul = acelasi algoritm, scris intr-un limbaj pe care calculatorul il executa; se scrie intr-un mediu de programare (Thonny, Python IDLE) care ofera editare, rulare si depanare.
- Datele intra prin citire si ies prin afisare;
input()da un sir, deci pentru calcule se converteste cuint(...)saufloat(...). - Structura liniara - pasii se executa unul dupa altul, o singura data (exemplu potrivit: suma a doua numere).
- Structura alternativa - se alege intre doua variante in functie de o conditie (exemplu potrivit: numar pozitiv sau nu).
- Structura repetitiva - acelasi bloc se repeta cat timp conditia e adevarata (exemplu potrivit: afisarea numerelor de la 1 la 10); conditia trebuie sa devina falsa, altfel apare bucla infinita.
Capcane de evitat: text scris ca lista cu bullet-uri in loc de paragrafe; confundarea algoritmului cu programul; exemple care folosesc notiuni nepredate in aceasta lectie.
Criterii de evaluare: continut complet, toate cele 6 idei prezente - 4 puncte; cate un exemplu corect pentru fiecare din cele trei structuri - 3 puncte; folosirea corecta in context a cuvintelor cheie impuse - 2 puncte; text coerent, in paragrafe, de 8-10 randuri - 1 punct.