În lucru: lecțiile se refac de la capăt. Lecțiile noi ale clasei: lecțiile noi ale clasei a V-a →
Invatare Atomica - Domeniu 4 cls VII (OMEN 3393/2017)

Limbaj de programare - introducere

Citeste fiecare concept, apoi raspunde la intrebari pentru a continua

Progres lectie:
0%
🎯

Obiectivul lectiei

"Vei invata ce este un mediu de programare, structura unui program, citire si afisare, structuri liniare, alternative si repetitive."

Competente vizate (OMEN 3393/2017, cls VII):

  • VII-1.4 - Utilizarea unui mediu de programare pentru implementarea algoritmilor
  • VII-2.1 - Analizarea enuntului unei probleme simple in vederea rezolvarii printr-un algoritm
  • VII-2.2 - Construirea unor algoritmi elementari cu structuri secventiale, alternative si repetitive
  • VII-3.3 - Implementarea algoritmilor intr-un mediu de programare
1

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.

Ce este un mediu de programare (IDE)?
AUn program pentru desenat
BUn program in care scrii, rulezi si depanezi cod
CUn browser de internet
2

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 (+, -, *, /).

Ce este un algoritm?
AUn tip de calculator
BO secventa finita de pasi bine definiti care rezolva o problema
CUn limbaj de programare
3

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(...)).

Ce face instructiunea de citire?
AAfiseaza text pe ecran
BPreia o valoare de la utilizator si o stocheaza intr-o variabila
CTermina executia programului
4

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:

x = int(input("Nr: "))
if x > 0:
    print("pozitiv")
else:
    print("negativ sau zero")

Analogie: rascruce - mergi la stanga DACA conditia e adevarata, altfel la dreapta.

Ce structura executa cod DOAR DACA o conditie e adevarata?
AStructura liniara
BStructura alternativa (if/else)
CStructura repetitiva (while/for)
5

Structura repetitiva (while si for)

Structura repetitiva executa un bloc de mai multe ori, cat timp conditia e adevarata:

i = 1
while i <= 5:
    print(i)
    i = i + 1
for i in range(1, 6): print(i)

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.

Ce structura repeta instructiuni?
AStructura alternativa (if/else)
BStructura repetitiva (while sau for)
CStructura liniara

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:

a = int(input("a = "))
b = int(input("b = "))
s = a + b
print("Suma:", s)

Programul B:

i = 1
while i <= 3:
    print(i)
    i = i + 1
  1. Ce afiseaza Programul A daca utilizatorul introduce a = 4 si b = 7?
  2. Cate variabile are Programul A si cum se numesc ele?
  3. Ce structura foloseste Programul A: liniara, alternativa sau repetitiva? Justifica in doua cuvinte.
  4. Ce afiseaza Programul B, pe randuri?
  5. Ce structura foloseste Programul B si care este conditia ei?
  6. Ce s-ar intampla daca stergem din Programul B linia i = i + 1? Cum se numeste acest defect?
  7. De ce scriem int(input("a = ")) si nu doar input("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:

  1. Afiseaza Suma: 11 (adica 4 + 7).
  2. Are trei variabile: a, b si s. Fiecare este o zona de memorie cu un nume.
  3. Structura liniara: instructiunile se executa una dupa alta, in ordinea scrierii, o singura data.
  4. Afiseaza, pe randuri separate: 1, apoi 2, apoi 3.
  5. Structura repetitiva (while). Conditia este i <= 3: cat timp este adevarata, blocul se repeta.
  6. Programul ar afisa la nesfarsit valoarea 1, pentru ca i ramane mereu 1 si conditia nu devine niciodata falsa. Defectul se numeste bucla infinita.
  7. Pentru ca input() intoarce un sir de caractere, nu un numar. Fara int(...) nu se face adunarea numerica. Pentru numere cu zecimale se foloseste float(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, apoi elif x == 0, apoi else.
  • 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 i la 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 * b
print("Produsul:", p)

Program 2 (alternativ):
x = int(input("Nr: "))
if x > 0:
    print("pozitiv")
else:
    print("negativ sau zero")

Program 3 (repetitiv):
i = 1
while 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):

  1. Algoritmul = secventa finita de pasi bine definiti care rezolva o problema (analogia cu reteta de gatit).
  2. 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.
  3. Datele intra prin citire si ies prin afisare; input() da un sir, deci pentru calcule se converteste cu int(...) sau float(...).
  4. Structura liniara - pasii se executa unul dupa altul, o singura data (exemplu potrivit: suma a doua numere).
  5. Structura alternativa - se alege intre doua variante in functie de o conditie (exemplu potrivit: numar pozitiv sau nu).
  6. 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.

Ce ai invatat astazi

  • Ce este un mediu de programare (IDE) si cele trei functii ale lui: editare, rulare, depanare - de exemplu Thonny sau Python IDLE
  • Ce este un algoritm (secventa finita de pasi bine definiti) si prin ce difera el de un program
  • Ce este o variabila si ce sunt datele numerice: numere intregi si numere reale
  • Din ce e format vocabularul unui limbaj: cuvinte rezervate, identificatori si operatori
  • Citirea si afisarea: int(input(...)) preia o valoare de la utilizator, print(...) o afiseaza; input() singur intoarce un sir de caractere
  • Structura liniara si structura alternativa (if/else), care alege un bloc in functie de o conditie
  • Structura repetitiva (while si for), care repeta un bloc cat timp conditia e adevarata, si capcana buclei infinite

Urmatoarea lectie

Ai terminat ultima lectie a modulului. Intoarce-te la pagina modulului pentru a relua orice lectie si a-ti verifica progresul.

Continua →